19

Как текстовый файл с нулевым байтом может генерировать хеш при хэшировании с помощью sha1sum, sha256sum и т.д.? Какие данные хешируются программами для генерации хеш-значения?

Ta

QuickHash в Linux

Терминальные команды

3 ответа3

20

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

Подводя итог, можно сказать: da39a3ee5e6b4b0d3255bfef95601890afd80709 - это sha1-хэш для пустого файла везде, то же самое верно и для нулевых хэшей других алгоритмов.

14

Все алгоритмы хеширования в Quick Hash являются конструкциями Меркля – Дамгарда. Таким образом, они дополняют сообщение кратным размеру блока.

Алгоритмы Быстрый хэш - функции по достижению этого путем добавления 1 бит, так как многие 0 бит по мере необходимости, и , наконец, длина сообщения.

Это позволяет хэшировать сообщения произвольной длины, включая сообщения нулевой длины.

1

(Дополнение к ответу Денниса и fixer1234?)

Сжато:

$ shasum -a 256 /dev/null e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null

Все 0-байтовые файлы будут иметь одинаковую контрольную сумму.

$ shasum -a 512 /dev/null cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null

$ shasum /dev/null da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null

$ md5 /dev/null MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e (примечание: MD5 не работает; это не «безопасный хеш»). Это задокументировано в записи MD5 в Википедии.)

Так, например, если вы пытаетесь проверить безвредность файлов на virustotal.com с помощью одного из перечисленных здесь значений безопасного хеша, например, da39a3ee5e6b4b0d3255bfef95601890afd80709 то вы можете быть уверены, что файл действительно был 0 байтов (или был папкой, который virustotal, сбивает с толку, хэширует, как будто это 0-байтовый файл.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .