Повлияет ли изменение имени файла на MD5-хэш файла?
Повлияет ли изменение имени файла на MD5-хэш файла?
Ответы:
Нет, хеш - это только содержимое файла. Вы можете увидеть это в исходном кодеmd5sum
и в его реализации MD5 . Вы также можете проверить это, если у вас есть доступ к md5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
В Linux, использующей файловую систему EXT, этого не произойдет, поскольку имя файла не хранится в файле, оно сохраняется в записи каталога (dentry), в которой находится файл, где индексный дескриптор файла затем сопоставляется с именем. Изменение имени файла не повлияет на его md5sum в Linux. В Windows не могу быть уверенным.
md5sum
должен вести себя так, как ожидалось.
Если хеш вычисляется из содержимого файла, этого не должно быть.
В ESXi (точно ESXi 5.5) md5sum для одного и того же контента, но разные имена файлов разные. Это наводит меня на мысль, что файловая структура VMFS-5 также включает имя файла. Если нас не беспокоит имя файла, есть ли способ проверить только md5sum содержимого файла? Я не видел никаких вариантов. Какие-либо предложения?
.vmdk
)? В заголовках vmdk есть данные, которые могут зависеть от имени и расположения файла. Как вы переименовали файлы в своем тесте? --- В остальном с точки зрения содержимого файла VMFS является нормальной файловой системой, и содержимое файлов не зависит напрямую от их имен.
В ответ на комментарий https://stackoverflow.com/a/14360831/9392847 :
Это работает только в том случае, если один файл является копией другого файла, но не тогда, когда два разных файла с разными именами генерируются с точно таким же содержимым. Я пробовал это:
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/1test.pdf
c5a445b7186dfb220ea79d2001acf3f1 /home/nancy/Documents/1test.pdf
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/2test.pdf
cefa063abf0c0a9e80b2b75e70100836 /home/nancy/Documents/2test.pdf
Оба файла 1test.pdf и 2test.pdf созданы с помощью программы gimp . Один и тот же контент экспортируется дважды с двумя разными именами.
1.md5 рассчитывается на основе двоичного содержимого ФАЙЛА. 2. Имя файла, последнее изменение и т. Д. Все является метаданными. Md5 на самом деле не полагается на метаданные. Я проверил это с помощью следующих шагов, позволяет работать с метаданными "последнего изменения" i) Я создал файл с именем "a.txt", добавил некоторый контент и создал хэш, скажем, хеш "xyz" ii) Затем у меня есть просто добавил пробел в файл и снова вычислил хэш, скажем, он вернул "abc" iii) Я только что удалил свое изменение на шаге (ii), при повторном вычислении хеша я получил начальный хеш ("xyz")
Это означает, что даже если метаданные файла изменены, хеш остается неизменным до тех пор, пока содержимое файла не останется неизменным.
Надеюсь, это поможет.