1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Скрыть объявление

Привет посетитель! У нас на форуме тебе откроются дополнительные разделы, которые скрыты от гостей! А так же ты найдёшь много полезной информации.

Получение MD5 строки C#

Тема в разделе "C++ / C# / .NET", создана пользователем kick, 1 апр 2017.

  1. kick

    kick Магистр Йода Администратор

    Регистрация:
    20 янв 2015
    Сообщения:
    4.919
    Симпатии:
    3.500
    Баллы:
    6.235
    Код:
           
            public string GetMd5Hash(string input)
            {
                MD5 md5Hasher = MD5.Create();
    
                byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
    
                StringBuilder sBuilder = new StringBuilder();
    
                for (int i = 0; i < data.Length; i++)
                {
                    sBuilder.Append(data.ToString("x2"));
                }
    
                return sBuilder.ToString();
            }
    

    Далее используем так:
    Код:
                string source = "MMO-DEVELOP.RU";
                using (MD5 md5Hash = MD5.Create())
                {
                    string hash = GetMd5Hash(source);
                    MessageBox.Show(hash);
                }
    
     
    Angelika нравится это.
  2. Zubastic

    Zubastic Знающий Проверенный

    Регистрация:
    24 апр 2016
    Сообщения:
    793
    Симпатии:
    373
    Баллы:
    380
    Лютая хрень. Зачем using вообще?
    Используется так:
    string source = "MMO-DEVELOP.RU";
    string hash = GetMd5Hash(source);
     
  3. Zubastic

    Zubastic Знающий Проверенный

    Регистрация:
    24 апр 2016
    Сообщения:
    793
    Симпатии:
    373
    Баллы:
    380
    А это можно переписать так:
    Код:
            public string GetMd5Hash(string input)
            {
                using (MD5 md5Hasher = MD5.Create());
                {
                  byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
                  StringBuilder sBuilder = new StringBuilder();
                  for (int i = 0; i < data.Length; i++)
                  {
                      sBuilder.Append(data.ToString("x2"));
                  }
                  return sBuilder.ToString();
              }
            }
    
     
    Последнее редактирование: 4 апр 2017
    kick нравится это.
  4. Mifesto

    Mifesto Свой человек Проверенный

    Регистрация:
    2 июл 2015
    Сообщения:
    342
    Симпатии:
    172
    Баллы:
    464
    Если на то пошла пляска, то sBuilder.Append(data.ToString("x2")); как вообще это работает? Что то поменяли в С#, что не нужно обращаться к массиву без индекса?
     
    kick нравится это.
  5. Zubastic

    Zubastic Знающий Проверенный

    Регистрация:
    24 апр 2016
    Сообщения:
    793
    Симпатии:
    373
    Баллы:
    380
    Обычный string.Format. Да и копипаста, там data должно быть.
     
  6. Zubastic

    Zubastic Знающий Проверенный

    Регистрация:
    24 апр 2016
    Сообщения:
    793
    Симпатии:
    373
    Баллы:
    380
    лоль нельзя написать data[ i]