Jangan Mengandalkan jumlah MD5.
Jumlah MD5 bukan cara yang dapat diandalkan untuk memeriksa duplikat, mereka hanya cara untuk memeriksa perbedaan.
Gunakan MD5 untuk menemukan kemungkinan kandidat duplikat, dan kemudian untuk setiap pasangan membagikan MD5
- Buka kedua file
- Mencari maju dalam file-file itu sampai satu berbeda.
Melihat saya semakin banyak dipilih oleh orang-orang yang melakukan pendekatan naif untuk mengajukan duplikat Identity, Jika Anda akan bergantung sepenuhnya pada algoritma hash, demi kebaikan, gunakan sesuatu yang lebih keras seperti SHA256 atau SHA512, setidaknya Anda akan mengurangi kemungkinan untuk gelar yang masuk akal dengan memeriksa lebih banyak bit. MD5 sangat lemah untuk kondisi tabrakan.
Saya juga menyarankan orang membaca milis di sini berjudul 'pemeriksaan file': http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Jika Anda mengatakan "MD5 dapat secara unik mengidentifikasi semua file secara unik" maka Anda memiliki kesalahan logika.
Dengan kisaran nilai, dari panjang yang bervariasi dari 40.000 byte hingga 100.000.000 byte, total jumlah kombinasi yang tersedia untuk rentang tersebut sangat melebihi jumlah kemungkinan nilai yang diwakili oleh MD5, dengan berat hanya 128 bit.
Mewakili 2 ^ 100.000.000.000 kombinasi hanya dengan 2 ^ 128 kombinasi? Saya pikir itu tidak mungkin.
Cara Paling Naif
Cara yang paling naif, dan cara tercepat, untuk menghilangkan duplikat adalah sebagai berikut.
- Menurut ukuran : File dengan ukuran berbeda tidak boleh identik. Ini membutuhkan sedikit waktu karena tidak perlu membuka file.
- Oleh MD5 : File dengan nilai MD5 / Sha berbeda tidak dapat sama. Ini membutuhkan waktu sedikit lebih lama karena harus membaca semua byte dalam file dan melakukan perhitungan matematikanya, tetapi membuat beberapa perbandingan lebih cepat.
- Gagal perbedaan di atas : Melakukan perbandingan byte-by-byte dari file. Ini adalah tes lambat untuk dieksekusi, itulah sebabnya ia dibiarkan sampai setelah semua faktor penghilangan lainnya telah dipertimbangkan.
Fdupes melakukan ini. Dan Anda harus menggunakan perangkat lunak yang menggunakan kriteria yang sama.