web-dev-qa-db-fra.com

Quelle est la précision de `md5sum`?

Lorsque vous utilisez md5sum Pour vérifier l'intégrité d'un fichier, quelle est la précision du processus?

Un MD5 vérifié signifie-t-il que chaque bit est exactement le même, ou existe-t-il un seuil qui doit être brisé avant que la modification binaire soit reflétée dans le MD5?

Toute documentation sur la manière dont une MD5 est générée serait également appréciée.

27
Konner Rasmussen

MD5 est cassé à cet effet contre un adversaire intelligent. Il est possible de construire malicieusement deux blocs de données différents qui produisent le même hachage de MD5.

Cependant, il est entièrement approprié (bien qu'il existe presque de meilleures façons) d'utiliser MD5 pour protéger contre la corruption des données par inadvertance en transit ou en stockage. Bien qu'il soit concevable qu'un tel événement puisse entraîner la même chose, la probabilité est si faible qu'elle est presque inimaginable que ce serait une probabilité d'être inquiétante. Les défaillances causées par les rayons de fond, le tunneling, statique et des dizaines d'autres sources seraient des ordres de grandeur plus probables.

Même si vous aviez une quadrillion de données de données, la probabilité qu'un MD5 incompatible produirait un hachage de MD5 appartenant à l'une de ces unités quadrillions est beaucoup moins d'une quadrillion.

65
David Schwartz

MD5 est un hachage. Il importe essentiellement tout le contenu d'un fichier dans une petite chaîne de 16 octets longue IIRC.

Il y aura évidemment plusieurs fichiers qui ont atteint la même somme de MD5. Par conséquent, une somme MD5 correspondante n'est pas une garantie d'une correspondance exacte entre les fichiers.

Il n'y a pas de seuil comme tel parce que la façon dont les hachages fonctionnent. Donc, une somme MD5 peut détecter même un seul changement de bit. Cependant, beaucoup de changements de bits seuls peuvent faire en sorte que le hachage de MD5 soit le même. Il est donc tout à fait raisonnable d'utiliser MD5 pour valider l'intégrité des fichiers contre la corruption aléatoire, mais aucune intention malveillante est possible car une personne pourrait modifier un fichier tout en veillant à ce que le hachage de MD5 soit identique.

26
Itai