2011-06-16 1 views
0

Я работаю над написанием функции SHA512. Когда я проверяю файл, который я шифрую в разных источниках, инструмент Linux SHA512SUM, пару веб-сайтов и запускаю его через старый исходный код для SHA512, все они дают разные значения хэширования. Моя мысль в этом проекте заключается в том, что все алгоритмы Hash выдадут одно и то же значение хеширования, если будут реализованы правильно, для использования в качестве контрольной суммы. Неужели я ошибаюсь в этом? Если я ошибаюсь, как бы я действительно проверял, правильно ли работает моя работа?Должны ли все реализации SHA512 давать один и тот же хэш?

Заранее спасибо.

ответ

3

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

Остерегайтесь интерпретации: результат SHA-2 (512) хеш представляет собой блок из 512 бит, а не строковое значение, поэтому он сначала будет закодирован для потребления человеком, и поэтому возможно, что вы видите что выглядит как визуально разные результаты, когда речь идет просто об использовании разных кодировок.

+0

Для хэширования строки «Привет там» инструмент Linux дает первые три номера в виде «526», а на веб-сайте http://hash.online-convert.com/sha512-generator есть начало как " 523" . Эта тенденция продолжается только с согласия двух веб-сайтов. Исходный код, с которым я работаю, использует форму двоичного кода для фактического отображения хэша. Как узнать, с каким инструментом по-настоящему работать? – Matt

+0

Хеширование работает с битами и байтами, а не с текстом, поэтому вам нужно учитывать декодированную версию вашего ввода. Во-первых, попробуйте его с некоторыми из более релевантных тестовых векторов. Как правило, пустая строка является хорошим тестовым вектором, но вы можете найти много других с помощью простого веб-поиска. – Stephane

+0

О, и «Привет там», когда он закодирован как прямая 8-битная ASCII-строка, возвращает следующий хэш (с шестнадцатеричным кодированием): 523df363aa22c25478a478d25e6945f842509df8b77b0c755a40538a9a239ae178b3225f516bdb9e29f6d1cb7de4f2cf74e67fd85f6d9817c48890d686d51838 – Stephane

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