проблема шестнадцатеричного представления - PullRequest
0 голосов
/ 04 января 2012

Если я хочу следующий результат:

RIPEMD-160("The quick brown fox jumps over the lazy dog") =
 37f332f68db77bd9d7edd4969571ad671cf9dd3b

Я пробовал это:

string hash11 = System.Text.Encoding.ASCII.GetString(RIPEMD.ComputeHash(Encoding.ASCII.GetBytes("The quick brown fox jumps over the lazy dog")));

но это не дает мне предыдущий результат!

Ответы [ 2 ]

1 голос
/ 04 января 2012

То, что вы хотите получить - это шестнадцатеричное представление байтового массива: каждый байт должен быть представлен своим двухсимвольным шестнадцатеричным значением.

Вы можете проверить этот поток за несколько разных примеров того, как это сделать.

1 голос
/ 04 января 2012

Функция ComputeHash дает вам байтовый массив со значениями в нем (0x37, 0xF3, ...).Если вы используете GetString, он будет принимать каждое значение в байте и использовать символ с этим значением, он не будет конвертировать значение в строку.1005 * Как будто у вас есть старший байт в начале.С

hash11 += curByte.ToString("X2")

у вас есть самый младший байт в начале.

...