Akankah mengubah nama file mempengaruhi Hash MD5 file?

89

Akankah mengubah nama file mempengaruhi Hash MD5 file?

Michael Shnitzer
sumber

Jawaban:

31

Hanya jika nama file dimasukkan dalam perhitungan hash. misalnya, dalam pseudo-code:

$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);

akan menghasilkan dua hash terpisah.

Marc B
sumber
20
Pertanyaannya adalah menanyakan tentang alat CLI "md5sum", bukan algoritma pada umumnya.
jameshfisher
206

Tidak, hash hanya untuk konten file. Anda dapat melihat ini di sumbermd5sum dan implementasi MD5-nya . Anda juga dapat menguji ini jika Anda memiliki akses ke md5sum:

$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6  file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6  file2
$
jameshfisher
sumber
18
Ini harus menjadi jawabannya. Pertanyaan tersebut diberi tag "md5sum".
ingyhere
3
Terima kasih atas jawaban langsungnya.
Eddie B
Sempurna! Saya tidak memiliki Linux untuk mencobanya. Tapi saya punya Stackoverflow :)
Faizan
Anda tidak perlu menggunakan Linux untuk mengetahui hal ini. Anda dapat menghasilkan hasil yang sama di MacOSX atau Windows.
Alexandre Mulatinho
1
Jika ada yang mencari jendela yang setara seperti @alexandreMulatinho disebutkan: ganti md5sum dengan fciv dan cp dengan salinan, dan cara kerjanya sama. Jika Anda kemudian masuk ke subsistem windows untuk linux, hash md5sum cocok dengan yang fciv.
Jake Stevens-Haas
4

Di Linux menggunakan sistem file EXT, itu tidak akan, karena nama file tidak disimpan dalam file, itu disimpan di entri direktori (dentry) tempat file tersebut berada, di mana inode file kemudian dipetakan ke sebuah nama. Mengubah nama file tidak akan mempengaruhi md5sum-nya di Linux. Di Windows, saya tidak bisa memastikan.

GL2014
sumber
3
Juga sistem file Windows tidak menyimpan nama file dalam file tersebut. Pelabuhan langsung md5sumharus berperilaku seperti yang diharapkan.
MauganRa
1

Jika hash dihitung dari konten file, seharusnya tidak.

Ted Hopp
sumber
4
Pertanyaannya adalah menanyakan tentang alat CLI "md5sum", bukan algoritma pada umumnya.
jameshfisher
0

Dalam ESXi (Tepatnya ESXi 5.5) md5sum pada konten yang sama tetapi nama file yang berbeda berbeda. Itu membuat saya percaya bahwa struktur file VMFS-5 juga menyertakan nama file. Jika kami tidak mempermasalahkan nama file, Apakah ada cara untuk memeriksa hanya md5sum konten file? Saya tidak dapat melihat opsi apa pun. Ada saran?

Venfah Nazir
sumber
File apa yang Anda bicarakan? Gambar disk virtual ( .vmdk)? Dalam header vmdk ada data yang bergantung pada nama file dan lokasi. Bagaimana Anda mengganti nama file dalam pengujian Anda? --- Jika tidak dari sudut pandang konten file, VMFS adalah sistem file normal dan konten file tidak secara langsung bergantung pada namanya.
pabouk
-1

Menanggapi komentar tersebut, https://stackoverflow.com/a/14360831/9392847 :

Ini hanya berfungsi jika satu file adalah salinan dari file lain tetapi tidak jika dua file berbeda dengan nama berbeda dibuat dengan konten yang persis sama. Saya sudah mencoba ini:

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

Baik file 1test.pdf dan 2test.pdf dibuat menggunakan perangkat lunak gimp . Konten yang sama diekspor dua kali dengan dua nama berbeda.

Nancy
sumber
Itu berarti konten file tidak persis sama ... Program harus mengekspor meta-data yang berbeda di masing
Milney
-2

1.md5 dihitung berdasarkan konten biner FILE. 2. Nama file, terakhir diubah, dll. Hal-hal yang meta data.md5 tidak terlalu bergantung pada meta-data. Saya telah menguji ini dengan langkah-langkah di bawah ini, mari bekerja dengan meta-data "terakhir diubah" i) Saya telah membuat file bernama "a.txt" dan menambahkan beberapa konten dan membuat hash mengatakan hash adalah "xyz" ii) Lalu saya punya baru saja menambahkan spasi di file dan menghitung lagi hash mengatakan itu kembali "abc" iii) Saya baru saja menghapus perubahan saya di langkah (ii), saat menghitung hash lagi saya mendapatkan hash awal ("xyz")

Ini menyimpulkan bahwa meskipun metadata file diubah, hash tetap sama sampai konten file tetap tidak berubah.

Semoga membantu.

cokelat
sumber