Я вычислил sha1 хеш файла '/etc/mtab' с hashdeep на Ubuntu 16.04. Затем я вычислил sha1 хеш того же файла с sha1sum. И я получил другой хеш!
При вычислениях хешей для других файлов обе программы, кажется, создают тот же хеш. Наконец, я скопировал файл в другой компьютер и запустил эти две программы там. На втором компьютере они оба вычислили тот же хеш, который был вычислен на первом компьютере sha1sum. Наконец, я проверил файл '/etc/mtab' на втором компьютере, не скопированном, с hashdeep и sha1sum, и я также получил различные результаты снова.
То же идет для sha256 при использовании hashdeep и sha256sum.
Я звоню hashdeep -c sha256 /etc/mtab
и sha256sum /etc/mtab
Кто-либо знает, как это может произойти? Существует ли кэширующаяся реализация для hashdeep, таким образом более старые хеши хранятся?
Я просто выполнил это в своей системе, и она подходила, они были моими результатами:
Работал: hashdeep -c sha256 Xwrapper.config
%%%% HASHDEEP-1.0
%%%% size,sha256,filename
## Invoked from: /home/george/Documents/askubuntu
## $ hashdeep -c sha256 Xwrapper.config
##
630,c53eb030a8f9a2f7c08dd04e3611c9470f840d90d1261ef3e6643b1d1aff8608,/home/george/Documents/askubuntu/Xwrapper.config
Работал: sha256sum Xwrapper.config
c53eb030a8f9a2f7c08dd04e3611c9470f840d90d1261ef3e6643b1d1aff8608 Xwrapper.config
Хорошо позвольте, объясняют настолько лучше всего, как я могу после проверки нескольких вещей, я вижу некоторую вещь о как hashdeep
и sha256sum
посмотрите symbolic links
. Когда я делаю stat /etc/mtab
Я вижу, что размер 19
, но когда я работаю (с l
, опция ссылки):
hashdeep -o l /etc/mtab
Это возвращается только, если я делаю:
hashdeep -o f /atc/mtab
Это возвращает хеш ниже, но обратите внимание, что размер 0
отличающийся, от какой stat /ec/mtab
дал ранее:
%%%% HASHDEEP-1.0
%%%% size,md5,sha256,filename
## Invoked from: /etc
## $ hashdeep -o lf /etc/mtab
## 0,d41d8cd98f00b204e9800998ecf8427e,e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,/etc/mtab
Это рассматривает файл как регулярный файл, так как я использовал f
опция и следовательно сообщает или вычисляет sha256
из пустого файла, тогда как sha256sum
рассматривает его как a symbolic link
и размера 19
. Так просто помещенный, когда файл является регулярным файлом, он дает подобные результаты, но не, итак, когда a link
.
Обратите внимание, что тот файл является ссылкой на proc/self/mounts
который hashdeep
все еще видит как 0
в размере, но замечен stat
как 19
размер, таким образом, hashdeep
переходит по той ссылке, но, кажется, не может считать содержание или видеть содержание того файла. Это действительно однако видит /etc/vtrgb
как непустой файл, таким образом, я предполагаю /etc/mtab
ссылка на /proc/self/mounts
вопросы.
Это даже становится более интересным и подтверждает мое подозрение о /etc/mtab
ссылка на /proc/self/mounts
поскольку я выполнил это на другой ссылке hashdeep /etc/vtrgb
:
%%%% HASHDEEP-1.0
%%%% size,md5,sha256,filename
## Invoked from: /etc
## $ hashdeep /etc/vtrgb
## 158,1fb3c13c4fcfa8cc4131aba905df559e,684cd905549f78e025870dd5c8a3835e49f79f2bb08952eb7424537f6df5fa13,/etc/vtrgb
Поскольку Вы отметите, что размер не является нулем, как имел место с /etc/mtab
, и выполнение:
sha256sum /etc/vtrgb
Возвращает то же checksum
:
684cd905549f78e025870dd5c8a3835e49f79f2bb08952eb7424537f6df5fa13 /etc/vtrgb
Дальнейшее расследование показывает это hashdeep
возвращает то же hash
0,d41d8cd98f00b204e9800998ecf8427e,e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
для всех файлов и каталога в /proc/
который является на самом деле a pseudo filesystem
следовательно их информация хранится в памяти не на диске. Принимая во внимание, что sha256sum
не делает только отличающиеся возвраты checksum
для этих тех же файлов.