158 votes

Est-MD5 encore assez bon pour identifier de manière unique les fichiers?

Est le hachage MD5 d'un fichier toujours considéré comme une bonne méthode pour identifier de manière unique donné à tous la rupture de l'algorithme MD5 et les questions de sécurité, etc? La sécurité n'est pas ma principale préoccupation ici, mais une identification unique de chaque fichier.

Toutes les pensées? Merci beaucoup d'avance :)

97voto

Marcelo Cantos Points 91211

Oui. MD5 a été complètement brisé à partir d'un point de vue sécurité, mais la probabilité d'une collision accidentelle est toujours extrêmement petite. Juste être sûr que les fichiers ne sont pas créés par quelqu'un que vous ne connaissez pas et qui pourrait avoir des intentions malveillantes.

35voto

stapeluberlauf Points 317

Pour des raisons pratiques, le hash créé pourraient être convenablement aléatoire, mais théoriquement il y a toujours une probabilité de collision, en raison du Casier principe. Ayant différents hachages veut certainement dire que les fichiers sont différents, mais le même hachage ne veut pas nécessairement dire que les fichiers sont identiques.

À l'aide d'une fonction de hachage à cet effet, peu importe de savoir si la sécurité est une préoccupation ou non - doivent donc toujours être seulement la première étape d'un chèque, en particulier si l'algorithme de hachage est connu pour créer facilement des collisions. Fiable pour savoir si deux fichiers avec le même hachage sont différents, vous devez comparer les fichiers octet par octet.

20voto

Thomas Pornin Points 36984

MD5 sera assez bon si vous n'avez pas d'adversaire. Cependant, quelqu'un peut (à dessein) de créer deux fichiers différents qui de hachage à la même valeur (que l'on appelle une collision), et cela peut ou peut ne pas être un problème, en fonction de votre situation exacte.

Depuis savoir si connu MD5 faiblesses de l'appliquer à un contexte donné est une matière subtile, il est recommandé de ne pas utiliser l'algorithme MD5. À l'aide d'une collision résistant à la fonction de hachage (SHA-256 ou SHA-512) est la réponse. Aussi, à l'aide de MD5 est mauvais de relations publiques (si vous utilisez MD5, être prêt à justifier vous-mêmes; attendu que personne ne pourra remettre en question votre aide de l'algorithme SHA-256).

6voto

tach Points 79

Je ne le recommande pas. Si la demande de travail sur un système multi-utilisateur, il y a peut être de l'utilisateur, qui aurait deux fichiers avec le même hash md5 (il peut être ingénieur et de jouer avec de tels fichiers, ou d'être simplement curieux - ils sont facilement téléchargeables à partir de http://www2.mat.dtu.dk/people/S.Thomsen/wangmd5/samples.html , j'ai moi-même lors de l'écriture de cette réponse téléchargé deux échantillons). Une autre chose, c'est que certaines applications peuvent enregistrer de tels doublons pour quelque raison que ce soit (je ne suis pas sûr, si il y a de telles applications, mais la possibilité existe).

Si vous êtes l'identification univoque des fichiers générés par votre programme, je dirais que c'est ok pour utiliser l'algorithme MD5. Sinon, je recommande à toute autre fonction de hachage où ni les collisions ne sont pas encore connus.

5voto

Daniel Vassallo Points 142049

Cela dépend de ce que vous essayez d'atteindre. Il est extrêmement rare que deux fichiers identiques ont le même hash MD5, mais gardez à l'esprit que les deux fichiers avec le même contenu, le même hash MD5. En fait un hachage MD5 est couramment utilisé pour vérifier l'intégrité des fichiers, puisque presque tous les changements d'un fichier sera la cause de son hash MD5 de changer également.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X