Ne vous fiez pas aux sommes MD5.
Les sommes MD5 ne sont pas un moyen fiable de vérifier les doublons, elles ne sont qu'un moyen de vérifier les différences.
Utilisez les MD5 pour trouver les doublons candidats possibles , puis pour chaque paire partageant un MD5
- Ouvre les deux fichiers
- Recherche dans ces fichiers jusqu'à ce que l'un diffère.
Voyant que je suis déçu par des gens qui font des approches naïves pour déposer une identité en double, si vous comptez entièrement sur un algorithme de hachage, pour l'amour de Dieu, utilisez quelque chose de plus dur comme SHA256 ou SHA512, au moins vous réduirez la probabilité de un degré raisonnable en vérifiant plus de bits. MD5 est extrêmement faible pour les conditions de collision.
Je conseille également aux gens de lire ici les listes de diffusion intitulées «File Check»: http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Si vous dites "MD5 peut identifier tous les fichiers de manière unique", vous avez une erreur logique.
Étant donné une plage de valeurs, de longueurs variant de 40000 octets à 100 000 000 000 octets, le nombre total de combinaisons disponibles pour cette plage dépasse largement le nombre possible de valeurs représentées par MD5, pesant à peine 128 bits.
Vous représentez 2 ^ 100 000 000 000 combinaisons avec seulement 2 ^ 128 combinaisons? Je ne pense pas que ce soit probable.
La façon la moins naïve
La méthode la moins naïve et la plus rapide pour éliminer les doublons est la suivante.
- Par taille : les fichiers de taille différente ne peuvent pas être identiques. Cela prend peu de temps car il n'a même pas besoin d'ouvrir le fichier.
- Par MD5 : les fichiers avec des valeurs MD5 / Sha différentes ne peuvent pas être identiques. Cela prend un peu plus de temps car il doit lire tous les octets du fichier et effectuer des calculs sur eux, mais cela rend les comparaisons multiples plus rapides.
- A défaut des différences ci-dessus : effectuez une comparaison octet par octet des fichiers. Il s'agit d'un test lent à exécuter, c'est pourquoi il est laissé jusqu'à ce que tous les autres facteurs d'élimination aient été pris en compte.
Fdupes fait cela. Et vous devez utiliser un logiciel qui utilise les mêmes critères.