#hash #cryptography
#хэш #криптография
Вопрос:
Очень просто, как получить «второй раунд» ниже?
здравствуйте
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 (первый раунд sha-256)
9595c9df90075148eb06860365df33584b75bff782a510c6cd4883a419833d50 (второй раунд sha-256)
Я зашел в онлайн-калькулятор хэша, ввел «привет», получил первый раунд, а затем взял этот хэш и поместил его в калькулятор и получил результат, отличный от второго раунда. Как тогда это делается дважды?
Комментарии:
1. Если вы просто скопировали / вставили первый результат, скорее всего, в его конце был добавлен один или несколько пробелов, что полностью удалит хэш.
2. Я просто ввел это, чтобы посмотреть, изменится ли это, и этого не произошло. Я продолжаю получать d7914fe546b684688bb95f4f888a92dfc680603a75f23eb823658031fff766d9
3. Эта цитата, которую я тогда вытащил, неверна?
4. должен ли он хэшировать необработанные байты, а не байты, закодированные в base64?
Ответ №1:
Когда вы вставляли первый вывод хэша обратно в хэш-калькулятор для второго раунда, вы хэшировали его как строку ASCII из букв и цифр, а не как фактическую последовательность байтов, выраженную этими шестнадцатеричными числами. Другими словами, первый байт строки, которую вы вставляете в хэш-калькулятор, на самом деле должен быть 0x2C, а не 0x32 (что является значением ASCII символа «2» в начале «2cf2 …»)
Комментарии:
1. Хорошо, тогда моя логика верна. Он хэширует выходные данные первого хэша. Большое спасибо.
2. @joslinm, конечно. SHA не волнует, является ли ввод, который вы ему даете, результатом другого вызова SHA. Это просто байты.
Ответ №2:
echo -n hello | openssl dgst -sha256 -binary | openssl dgst -sha256