Pour chacun de nos actifs binaires, nous générons un hachage MD5. Ceci est utilisé pour vérifier si un certain bien binaire est déjà dans notre application. Mais est-il possible que deux actifs binaires différents génèrent le même MD5 as. Il est donc possible que les deux chaînes différentes génèrent le même hachage MD5 ?
Réponses
Trop de publicités?Pour un ensemble de même des milliards d'actifs, les chances de collisions aléatoires sont négligeables -- rien de ce que vous devriez vous inquiéter. Considérant le paradoxe d'anniversaire, étant donné un ensemble de 2^64 (ou 18,446,744,073,709,551,616) des actifs, la probabilité d' un seul MD5 collision à l'intérieur de cet ensemble est de 50%. À cette échelle, vous auriez probablement battre Google en termes de capacité de stockage.
Cependant, parce que la fonction de hashage MD5 a été cassée (elle est vulnérable à une collision d'attaque), toute personne déterminée peut produire 2 collision actifs dans une affaire de secondes, la valeur de la puissance du CPU. Donc, si vous voulez utiliser l'algorithme MD5, assurez-vous qu'un attaquant ne serait pas compromettre la sécurité de votre application!
Aussi, envisager les conséquences si un attaquant de forger une collision à un actif existant dans votre base de données. Il n'y a pas de telles attaques connues (preimage attaques) contre MD5 (2011), il pourrait devenir possible par l'extension de la recherche actuelle sur les attaques par collision.
Si celles-ci s'avèrent être un problème, je vous suggère de regarder le SHA-2 séries de fonctions de hachage (SHA-256, SHA-384 et SHA-512). L'inconvénient est qu'il est légèrement plus lente et plus hachage de sortie.
MD5 est une fonction de hachage – alors oui, deux chaînes différentes peuvent absolument générer des codes MD5 collision.
En particulier, Notez que les codes MD5 ont une longueur fixe alors le nombre possible des codes MD5 est limité. Le nombre de chaînes (de n’importe quelle longueur), cependant, est sans aucun doute illimité donc il s’ensuit logiquement qu’il faut des collisions .
Oui, c’est possible. En fait, il s’agit d’un problème d’anniversaire. Cependant, la probabilité de deux chaînes choisis au hasard, ayant le même hachage MD5 est très faible.
Des exemples de collisions MD5 : MD5 Collision démo et Collisions MD5, Visualised