Czy zmiana nazwy pliku wpłynie na skrót MD5 pliku?


Odpowiedzi:


31

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.


20
Pytanie dotyczy narzędzia CLI "md5sum", a nie algorytmu w ogóle.
jameshfisher

206

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
$

18
To powinna być odpowiedź. Pytanie jest oznaczone jako „suma md5”.
ingyhere

3
Dzięki za prostą odpowiedź.
Eddie B

Idealny! Nie miałem Linuksa, żeby tego spróbować. Ale mam Stackoverflow :)
Faizan

Nie musisz używać Linuksa, aby to wiedzieć. Możesz uzyskać ten sam wynik na MacOSX lub Windows.
Alexandre Mulatinho

1
Na wypadek, gdyby ktoś szukał odpowiednika systemu Windows, takiego jak @alexandreMulatinho: zamień md5sum na fciv i cp na copy i działa tak samo. Jeśli następnie wejdziesz do podsystemu Windows dla linuxa, skróty sumy md5 pasują do wartości fciv.
Jake Stevens-Haas

4

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.


3
Również systemy plików Windows nie przechowują nazwy pliku w pliku. Prosty port md5sumpowinien zachowywać się zgodnie z oczekiwaniami.
MauganRa

1

Jeśli hash jest obliczany na podstawie zawartości pliku, nie powinien.


4
Pytanie dotyczy narzędzia CLI "md5sum", a nie algorytmu w ogóle.
jameshfisher

0

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?


O jakich plikach mówisz? Obrazy dysków wirtualnych ( .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.
pabuk

-1

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.


Oznacza to, że zawartość pliku nie jest dokładnie taka sama ... Program musi eksportować różne metadane w każdym
Milney,

-2

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.