Как файлы размером в ноль байт могут генерировать хэш-значение?

Как файлы размером в ноль байт могут генерировать хэш-значение?

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

Та

QuickHash в Linux

Команды терминала

решение1

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

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

решение2

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

Алгоритмы Quick Hash достигают этого путем добавления бита , необходимого 1количества битов и, наконец, длины сообщения.0

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

решение3

(Дополнение к ответу Денниса и 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 байт).

Связанный контент