.Net SHA256Managed производит некорректное хеширование - PullRequest
1 голос
/ 28 января 2011

Я пишу функцию для создания хэша SHA256 для файла.Вот код, который я использую

public string ComputeHash(Byte[] inputBytes)
    {
        Byte[] hashedBytes = new SHA256Managed().ComputeHash(inputBytes);
        return BitConverter.ToString(hashedBytes);
    }

Очень просто.Дело в том, что производимое хэширование, по-видимому, является недопустимым, согласно нескольким инструментам, которые я пробовал, и, по сути, отличается от любой другой строки sha256, которую я когда-либо видел (и даже не 256 байт).Например, один результат -

12-10-B2-60-24-75-11-95-B5-F7-F6-64-39-C3-22-9F-E7-E7-D4-13-69-18-99-C5-A7-C5-EC-2F-E2-D6-09-19

Даже если я обрежу каждый символ - все будет в верхнем регистре, в то время как я всегда видел представление в нижнем регистре.(Это тоже проблема) Мне интересно, правильно ли я использую библиотеку.пожалуйста помогите

1 Ответ

5 голосов
/ 28 января 2011

SHA-256 означает 256 бит , иначе 32 байт , что вы видите.

Здесь не имеют значения строчные и прописные буквы -это просто представление байтов в виде строки.Так же, есть ли дефисы между байтами.Разные инструменты создают разные представления шестнадцатеричных строк, вот и все ... поэтому я ожидаю, что «1210B2» будет эквивалентно «12-10-b2» и т. Д.

...