2010-09-28 2 views
0

Я понимаю, что System.Security.Cryptography имеет метод хеширования MD5 в MD5.ComputeHash. Однако метод принимает и возвращает байты. Я не понимаю, как работать с этим методом с помощью строкового ключа и хэшей. Я стараюсь обходиться, делая это,генерация MD5-хэша текста с C#

var hash = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(@"text".ToCharArray())); 
foreach(byte h in hash) 
{ 
    Console.Write((char)h); 
} 

Однако результирующий результат - строка тарабарщины. Для сравнения, в this website, введя «текст» приведет к «1cb251ec0d568de6a929b520c4aed8d1»

+0

oops упускает из виду, что хэш обычно форматируется с шестнадцатеричным. Заинтересованные лица, пожалуйста, см. Мой ответ ниже: –

ответ

1

писать этот код даст тот же результат, что и веб-сайт:

var hash = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(@"text".ToCharArray())); 
foreach(byte h in hash) 
{ 
    Console.Write(h.ToString("x2")); 
} 

Хитрость заключается в том, чтобы напечатать каждый байт в виде 2-х шестнадцатеричных цифр (следовательно, x2)

Смежные вопросы