Bir dosya adını değiştirmek dosyanın MD5 Hash'ini etkiler mi?


89

Bir dosya adını değiştirmek, dosyanın MD5 Hash'ini etkiler mi?

Yanıtlar:


31

Yalnızca dosyanın adı karma hesaplamasına dahil edilmişse. ör. sözde kodda:

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

iki ayrı karma oluşturacaktır.


20
Soru, genel olarak algoritma değil, CLI aracı "md5sum" hakkında soruluyor.
jameshfisher

206

Hayır, karma yalnızca dosya içeriğindedir. Bunu kaynağındamd5sum ve MD5 uygulamasında görebilirsiniz . Şunlara erişiminiz varsa bunu da test edebilirsiniz md5sum:

$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6  file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6  file2
$

18
Cevap bu olmalı. Soru "md5sum" olarak etiketlenmiştir.
ingyhere

3
Doğru cevap için teşekkürler.
Eddie B

Mükemmel! Bunu denemek için Linux'um yoktu. Ama Stackoverflow'um var :)
Faizan

Bunu bilmek için Linux kullanmanıza gerek yok. Aynı sonucu MacOSX veya Windows'ta da üretebilirsiniz.
Alexandre Mulatinho

1
Birinin @alexandreMulatinho'nun bahsettiği gibi Windows eşdeğerini araması durumunda: md5sum yerine fciv ve cp'yi copy ile değiştirin ve aynı şekilde çalışır. Daha sonra linux için Windows alt sistemine girerseniz, md5sum hash değerleri fciv olanlarla eşleşir.
Jake Stevens-Haas

4

EXT dosya sistemini kullanan Linux'ta, bir dosya adı bir dosyada saklanmadığından, dosyanın içinde bulunduğu dizin girişinde (dentry) saklanır, burada dosyanın inode'u daha sonra bir adla eşlenir. Dosya adını değiştirmenin Linux'taki md5 toplamı üzerinde hiçbir etkisi olmayacaktır. Windows'ta emin olamıyorum.


3
Ayrıca Windows dosya sistemleri dosya adını dosyada saklamaz. Basit bir bağlantı noktası md5sumbeklendiği gibi davranmalıdır.
MauganRa

1

Karma dosya içeriğinden hesaplanmışsa, olmamalıdır.


4
Soru, genel olarak algoritma değil, CLI aracı "md5sum" hakkında soruluyor.
jameshfisher

0

ESXi'de (Kesinlikle ESXi 5.5) md5sum aynı içerikte ancak farklı dosya adları farklı. Bu beni, VMFS-5 dosya yapısının dosya adını da içerdiğine inanmamı sağlıyor. Dosya adı konusunda endişemiz yoksa, dosya içeriğinin sadece md5 toplamını kontrol etmenin bir yolu var mı? Herhangi bir seçenek göremedim. Herhangi bir öneri?


Hangi dosyalardan bahsediyorsun? Sanal disk görüntüleri ( .vmdk)? Vmdk başlıklarında dosya adına ve konumuna bağlı olabilecek veriler vardır. Testinizdeki dosyaları nasıl yeniden adlandırdınız? --- Aksi takdirde, dosya içeriği açısından VMFS normal bir dosya sistemidir ve dosyaların içeriği doğrudan adlarına bağlı değildir.
pabouk

-1

Yoruma yanıt olarak, https://stackoverflow.com/a/14360831/9392847 :

Bu, yalnızca bir dosya başka bir dosyanın kopyasıysa çalışır, ancak tam olarak aynı içerikle farklı adlara sahip iki farklı dosya oluşturulduğunda işe yarar. Bunu denedim:

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

Hem 1test.pdf hem de 2test.pdf dosyaları gimp yazılımı kullanılarak oluşturulur . Aynı içerik iki farklı adla iki kez dışa aktarılır.


Bu, dosya içeriğinin tam olarak aynı olmadığı anlamına gelir ... Programın her birinde farklı meta verileri dışa aktarması gerekir
Milney

-2

1. md5, DOSYA'nın ikili içeriğine göre hesaplanır. 2. Dosya adı, son değiştirilme vb. Şeyler meta data.md5 gerçekten meta-verilere bağlı değildir. Bunu aşağıdaki adımlarla test ettim, "son değiştirilen" meta verilerle çalışalım i) "a.txt" adlı bir dosya oluşturdum ve bazı içerikler ekledim ve karma "xyz" diyerek bir karma oluşturdum ii) Sonra dosyaya bir boşluk ekledim ve "abc" döndürdüğünü söyleyen hash'i tekrar hesapladı iii) (ii) adımındaki değişikliğimi kaldırdım, hash hesaplanırken yine ilk hash'i aldım ("xyz")

Bu, dosyanın meta verilerinin değişmesine rağmen, karmanın dosya içeriği değişmeden kalana kadar aynı kaldığı sonucuna varır.

Umarım yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.