Как дважды кодировать SHA-256?

Очень просто, как получить «второй раунд» ниже?

Hello
2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E730C1FA7425E73043362938B9824 (первый раунд SHA-256)
9595C9DF90075148EB06860365BF03584B75BFF782A510C6CD4883A419833D50 (второй раунд SHA-256)

Я пошел к онлайн-калькулятору хэшей, ввел «привет», получил первый раунд, а затем взял этот хеш и ввел его в калькулятор и получил другой результат, чем второй раунд. Как тогда это сделать дважды?


person joslinm    schedule 02.05.2011    source источник
comment
Если вы просто скопировали/вставили первый результат, скорее всего, к его концу был добавлен один или несколько пробелов, что полностью отбросит хэш.   -  person Marc B    schedule 02.05.2011
comment
Я просто набрал его, чтобы посмотреть, изменится ли он, и он не изменился. Я продолжаю получать d7914fe546b684688bb95f4f888a92dfc680603a75f23eb823658031fff766d9   -  person joslinm    schedule 02.05.2011
comment
Эта цитата, которую я вытащил, неверна?   -  person joslinm    schedule 02.05.2011
comment
должен ли он хэшировать необработанные байты, а не байты, закодированные в base64?   -  person sbridges    schedule 02.05.2011


Ответы (1)


Когда вы вставляли первый вывод хэша обратно в хэш-калькулятор для второго раунда, вы хешировали его как строку букв и цифр ASCII, а не как реальную последовательность байтов, выраженную этими шестнадцатеричными числами. Другими словами, первый байт строки, которую вы вставляете в хеш-калькулятор, должен быть на самом деле 0x2C, а не 0x32 (что является значением ASCII символа «2» в начале «2cf2...»).

person Wyzard    schedule 02.05.2011
comment
Хорошо, тогда моя логика верна. Он хеширует вывод первого хэша. Большое спасибо. - person joslinm; 02.05.2011
comment
@joslinm, конечно. SHA не волнует, если введенные вами данные являются результатом другого вызова SHA. Это просто байты. - person Wyzard; 02.05.2011