Czy zmiana nazwy pliku wpłynie na skrót MD5 pliku?
Czy zmiana nazwy pliku wpłynie na skrót MD5 pliku?
Odpowiedzi:
Nie, skrót dotyczy tylko zawartości pliku. Możesz to zobaczyć w kodzie źródłowymmd5sum
i jego implementacji MD5 . Możesz to również przetestować, jeśli masz dostęp do md5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
W Linuksie używającym systemu plików EXT nie będzie, ponieważ nazwa pliku nie jest przechowywana w pliku, jest przechowywana we wpisie katalogu (dentry), w którym znajduje się plik, gdzie i-węzeł pliku jest następnie odwzorowywany na nazwę. Zmiana nazwy pliku nie będzie miała wpływu na jego sumę md5 w systemie Linux. W systemie Windows nie mam pewności.
md5sum
powinien zachowywać się zgodnie z oczekiwaniami.
Jeśli hash jest obliczany na podstawie zawartości pliku, nie powinien.
W ESXi (dokładnie ESXi 5.5) md5sum na tej samej zawartości, ale różne nazwy plików są różne. To prowadzi mnie do przekonania, że struktura pliku VMFS-5 zawiera również nazwę pliku. Jeśli nie martwimy się o nazwę pliku, czy istnieje sposób, aby sprawdzić tylko sumę md5 zawartości pliku? Nie widziałem żadnej opcji. Jakieś sugestie?
.vmdk
)? W nagłówkach vmdk znajdują się dane, które mogą zależeć od nazwy i lokalizacji pliku. Jak zmieniłeś nazwy plików w swoim teście? --- W przeciwnym razie z punktu widzenia zawartości plików VMFS jest normalnym systemem plików i zawartość plików nie zależy bezpośrednio od ich nazw.
W odpowiedzi na komentarz https://stackoverflow.com/a/14360831/9392847 :
Działa to tylko wtedy, gdy jeden plik jest kopią innego pliku, ale nie wtedy, gdy dwa różne pliki o różnych nazwach są generowane z dokładnie taką samą zawartością. Próbowałem tego:
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
Oba pliki 1test.pdf i 2test.pdf są tworzone za pomocą oprogramowania gimp . Ta sama treść jest eksportowana dwukrotnie pod dwoma różnymi nazwami.
1.md5 jest obliczana na podstawie binarnej zawartości PLIKU. 2. nazwa pliku, ostatnia modyfikacja itp. Rzeczy są metadanymi. Md5 tak naprawdę nie polega na metadanych. Przetestowałem to w poniższych krokach, pracujmy z metadanymi "ostatnio zmodyfikowanymi" i) Utworzyłem plik o nazwie "a.txt" i dodałem trochę treści i utworzyłem hash, który mówi, że hash to "xyz" ii) Następnie mam po prostu dodałem spację w pliku i ponownie obliczyłem hash powiedz, że zwrócił "abc" iii) Właśnie usunąłem swoją zmianę w kroku (ii), po ponownym obliczeniu hasha mam początkowy hash ("xyz")
Wynika z tego, że pomimo zmiany metadanych pliku, hash pozostaje taki sam, dopóki zawartość pliku nie zostanie zmieniona.
Mam nadzieję, że to pomoże.