Czy zmiana nazwy pliku wpłynie na skrót MD5 pliku?
89
Tylko jeśli nazwa pliku została uwzględniona w obliczeniu skrótu. np. w pseudokodzie:
$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);
wygeneruje dwa oddzielne skróty.
Nie, skrót dotyczy tylko zawartości pliku. Możesz to zobaczyć w kodzie źródłowym
md5sum
i jego implementacji MD5 . Możesz to również przetestować, jeśli masz dostęp domd5sum
:źródło
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.
źródło
md5sum
powinien zachowywać się zgodnie z oczekiwaniami.Jeśli hash jest obliczany na podstawie zawartości pliku, nie powinien.
źródło
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?
źródło
.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:
Oba pliki 1test.pdf i 2test.pdf są tworzone za pomocą oprogramowania gimp . Ta sama treść jest eksportowana dwukrotnie pod dwoma różnymi nazwami.
źródło
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.
źródło