MD5 toplamlarına güvenmeyin.
MD5 toplamları kopyaları kontrol etmek için güvenilir bir yol değildir, sadece farklılıkları kontrol etmenin bir yoludur.
Olası aday kopyaları bulmak için MD5'leri kullanın ve ardından MD5'i paylaşan her bir çift için
- Her iki dosyayı da açar
- Farklı olana kadar bu dosyaları ileriye doğru arar.
Yinelenen Kimlik dosyasını dosyalamak için naif yaklaşımlar uygulayan insanlar tarafından aşağılandığımı görünce, Tamamen bir karma algoritmaya güvenecekseniz , iyilik için, SHA256 veya SHA512 gibi daha sert bir şey kullanın, en azından daha fazla bit kontrol ederek makul bir derece. MD5 çarpışma koşulları için son derece zayıftır.
Ayrıca, insanların burada 'dosya kontrolü' başlıklı posta listelerini okumasını tavsiye ediyorum: http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
"MD5 tüm dosyaları benzersiz bir şekilde tanımlayabilir" derseniz bir mantık hatası vardır.
40.000 bayt uzunluğundan 100.000.000.000 bayt uzunluğa kadar değişen uzunluklarda bir değer aralığı göz önüne alındığında, bu aralıkta kullanılabilir toplam kombinasyon sayısı, sadece 128 bit uzunluğunda olan MD5 tarafından temsil edilen olası değer sayısını büyük ölçüde aşmaktadır.
Yalnızca 2 ^ 128 kombinasyonlu 2 ^ 100.000.000.000 kombinasyonu mu temsil ediyorsunuz? Ben öyle düşünmüyorum.
En Az Yol
Kopyaları ayıklamanın en az saf ve en hızlı yolu aşağıdaki gibidir.
- Boyuta göre : Farklı boyuttaki dosyalar aynı olamaz. Bu dosyayı açmak zorunda olmadığı için çok az zaman alır.
- MD5'e göre : Farklı MD5 / Sha değerlerine sahip dosyalar aynı olamaz. Bu, dosyadaki tüm baytları okumak ve üzerinde matematik yapmak zorunda olduğu için biraz daha uzun sürer, ancak çoklu karşılaştırmaları daha hızlı hale getirir.
- Yukarıdaki farkların başarısız olması : Dosyaların bayt-byte karşılaştırmasını yapın. Bu, yürütmek için yavaş bir testtir, bu yüzden diğer tüm ortadan kaldırıcı faktörler dikkate alınana kadar bırakılır.
Fdupes bunu yapar. Ve aynı ölçütleri kullanan bir yazılım kullanmalısınız.