Passer au contenu

Générateur de hachage MD5 en ligne - Outil gratuit de chiffrement MD5

Générez des hachages MD5 instantanément avec notre outil en ligne gratuit. Le traitement côté client garantit la confidentialité. Parfait pour les vérifications d'intégrité des données et la vérification de fichiers.

Générateur de hachage MD5

Calculateur de chargement...
📚

Documentation

Qu'est-ce qu'un générateur d'empreinte MD5 ?

Un générateur d'empreinte MD5 est un outil qui transforme n'importe quel texte en un code de longueur fixe appelé empreinte MD5. MD5 signifie Message-Digest Algorithm 5, une fonction de hachage publiée en 1992. Qu'on lui fournisse un mot, une phrase ou un fichier entier, elle produit toujours le même résultat de 32 caractères, et la moindre modification de l'entrée donne un résultat complètement différent. Cet outil exécute l'algorithme directement dans le navigateur grâce à JavaScript, de sorte que le texte saisi n'est jamais envoyé à un serveur.

Comment fonctionne le hachage MD5

MD5 est une fonction à sens unique. Elle prend une entrée de n'importe quelle longueur et produit une sortie de taille fixe appelée empreinte, ou condensat. « À sens unique » signifie que le processus ne peut pas être inversé : aucune méthode ne permet de reconstituer le texte d'origine à partir de la seule empreinte.

L'algorithme traite les données en plusieurs étapes :

  1. Le message est converti en octets et complété par bourrage jusqu'à ce que sa longueur soit inférieure de 64 bits à un multiple de 512 bits.
  2. Un champ de 64 bits indiquant la longueur du message d'origine est ajouté, de sorte que la longueur totale soit un multiple de 512 bits.
  3. Quatre nombres de 32 bits reçoivent des valeurs initiales fixes.
  4. Le message complété est découpé en blocs de 512 bits. Chaque bloc passe par quatre tours de 16 opérations, soit 64 opérations par bloc. Chaque opération mélange les données du bloc avec les quatre nombres en cours à l'aide de fonctions bit à bit, d'additions et de rotations de bits.
  5. Une fois tous les blocs traités, les quatre nombres de 32 bits sont assemblés et écrits sous forme de chiffres hexadécimaux.

Le résultat fait toujours 128 bits, affichés sous la forme de 32 caractères hexadécimaux (0-9 et a-f), car chaque octet de la sortie de 128 bits s'écrit avec deux chiffres hexadécimaux.

Une fonction de hachage est considérée comme sûre lorsqu'elle possède trois propriétés : la même entrée donne toujours la même sortie, il est irréalisable en pratique de trouver une entrée qui produit une empreinte choisie, et il est irréalisable en pratique de trouver deux entrées différentes qui produisent la même empreinte. MD5 possède encore la première propriété, mais les deux autres ont été mises en échec, comme expliqué plus loin.

Exemple d'empreinte MD5

Le hachage du mot « hello » avec MD5 produit :

1Input:  hello
2Output: 5d41402abc4b2a76b9719d911017c592
3

Selon la norme MD5, une chaîne vide a elle aussi une empreinte fixe et non vide, car le bourrage et le champ de longueur passent tout de même dans l'algorithme. Cet outil n'affiche aucun résultat tant que la zone de saisie est vide.

1Input:  (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3

Modifier un seul caractère, par exemple mettre la première lettre en majuscule pour obtenir « Hello », produit une chaîne de 32 caractères entièrement différente. C'est ce qu'on appelle l'effet d'avalanche : de petits changements en entrée provoquent de grands changements imprévisibles en sortie.

Comment utiliser ce générateur d'empreinte MD5

  1. Saisissez ou collez du texte dans la zone de saisie. L'outil hache les octets UTF-8 du texte et accepte jusqu'à 1 000 000 caractères.
  2. L'empreinte s'affiche automatiquement sous la zone et se met à jour à mesure que le texte change. Aucun bouton supplémentaire n'est à actionner.
  3. Cliquez sur « Copier » pour copier l'empreinte de 32 caractères dans le presse-papiers.
  4. Une petite barre colorée, générée à partir d'une partie de l'empreinte, apparaît sous le résultat pour vérifier d'un coup d'œil que deux empreintes diffèrent.

Comme le calcul s'effectue dans le moteur JavaScript du navigateur, la page n'a plus besoin de connexion Internet une fois chargée, et le texte saisi n'est transmis nulle part.

Utilisations courantes des empreintes MD5

  • Vérifier qu'un fichier téléchargé n'a pas été corrompu pendant le transfert, en comparant son empreinte à une valeur publiée.
  • Construire des clés de recherche ou des identifiants de cache pour des données, puisqu'une empreinte est un substitut court et de taille fixe pour une valeur plus longue.
  • Détecter des fichiers en double en comparant les empreintes plutôt que le contenu complet des fichiers.
  • Les systèmes de gestion de versions et de compilation, qui utilisent des empreintes pour détecter si un fichier a changé.

MD5 ne convient pas au stockage de mots de passe, à la génération de signatures numériques ni à tout autre cas où un attaquant pourrait tenter de falsifier ou d'inverser l'empreinte. Les raisons sont exposées dans la section suivante.

Histoire de MD5

Ronald Rivest, cryptologue américain, a conçu MD5 comme une extension de son algorithme MD4 antérieur. La spécification a été publiée sous le nom de RFC 1321 en avril 1992, et MD5 est devenu très répandu pour les sommes de contrôle et, pendant un temps, pour des usages de sécurité.

Des faiblesses de la fonction de compression interne de MD5 ont été décrites pour la première fois en 1993, et une collision sur cette fonction a été démontrée en 1996. En 2004, une équipe dirigée par la cryptologue Xiaoyun Wang a publié deux entrées différentes qui produisent la même empreinte MD5, un défaut appelé collision. En 2008, un autre groupe de chercheurs a utilisé une attaque par collision pour créer un certificat d'autorité de certification frauduleux auquel tous les navigateurs web courants faisaient confiance. Ces résultats ont conduit les organismes de normalisation en sécurité à ne plus recommander MD5 pour tout usage où la falsification compte.

Faiblesses de sécurité de MD5

  • La résistance aux collisions est rompue. Il est réalisable en pratique de construire deux entrées différentes ayant la même empreinte MD5.
  • Sa rapidité joue contre lui pour les mots de passe. MD5 a été conçu pour se calculer rapidement, ce qui est utile pour les sommes de contrôle mais néfaste pour le stockage de mots de passe, puisqu'un attaquant peut tester des milliards d'essais par seconde sur un matériel ordinaire.
  • La meilleure attaque de pré-image publiée n'est que légèrement plus rapide que l'essai de toutes les entrées possibles ; retrouver une entrée exacte à partir d'une empreinte reste donc irréalisable en pratique, mais cela ne suffit pas à rendre MD5 adapté à un usage sensible du point de vue de la sécurité.

En raison de ces problèmes, MD5 n'est plus acceptable pour les signatures numériques et ne convient ni au stockage de mots de passe, ni aux certificats SSL/TLS, ni à aucune application où quelqu'un pourrait délibérément chercher à produire une empreinte identique.

Alternatives à MD5

  • SHA-256, de la famille SHA-2, produit une empreinte de 256 bits et ne fait l'objet d'aucune attaque par collision pratique connue.
  • SHA-3, une norme plus récente fondée sur l'algorithme Keccak, qui complète la famille SHA-2.
  • BLAKE2, une fonction de hachage rapide dont la sécurité est jugée comparable à celle de SHA-3.
  • Bcrypt, scrypt ou Argon2, conçus spécialement pour le stockage de mots de passe, car ils sont volontairement lents et résistent aux tentatives accélérées par le matériel.

Foire aux questions

À quoi sert MD5 aujourd'hui ?

Surtout à des tâches sans enjeu de sécurité, comme les vérifications d'intégrité de fichiers, la déduplication et les clés de cache. Il n'est plus recommandé pour les mots de passe, les signatures ou les certificats.

Peut-on inverser une empreinte MD5 pour retrouver le texte d'origine ?

Non. MD5 est une fonction à sens unique : aucun calcul ne permet de retrouver l'entrée à partir de l'empreinte. Un attaquant peut toutefois deviner des entrées probables et hacher chacune d'elles pour chercher une correspondance, ce qui explique pourquoi MD5 n'est pas sûr pour les mots de passe.

Pourquoi MD5 n'est-il pas sûr pour stocker des mots de passe ?

Comme il se calcule très vite, un attaquant disposant d'un matériel moderne peut tester un nombre énorme de mots de passe par seconde. Les algorithmes conçus à cet effet, tels que bcrypt, scrypt ou Argon2, sont volontairement lents pour résister à ce type d'attaque.

Quelle est la longueur d'une empreinte MD5 ?

Toujours 128 bits, affichés sous la forme de 32 caractères hexadécimaux, quelle que soit la longueur du texte saisi.

Deux entrées différentes peuvent-elles produire la même empreinte MD5 ?

Oui. C'est ce qu'on appelle une collision, et des chercheurs ont démontré des méthodes pratiques pour construire de telles paires depuis 2004. C'est la principale raison pour laquelle MD5 n'est plus considéré comme sûr.

Cet outil envoie-t-il le texte saisi à un serveur ?

Non. L'empreinte est calculée par du JavaScript exécuté dans le navigateur, et la saisie ne quitte jamais l'appareil.

Quelle est la différence entre MD5 et SHA-256 ?

Ce sont deux fonctions de hachage, mais SHA-256 produit une empreinte plus longue, de 256 bits, et ne fait l'objet d'aucune attaque par collision pratique connue, alors que la résistance aux collisions de MD5 est rompue. SHA-256 est le meilleur choix dès que la sécurité compte.

Références

  1. Rivest, R. RFC 1321: The MD5 Message-Digest Algorithm. RFC Editor, 1992. RFC 1321 — condensat de 128 bits ; bourrage jusqu'à 448 modulo 512 plus une longueur de 64 bits ; quatre tours de 16 opérations ; MD5 comme extension de MD4 ; valeur de test pour la chaîne vide.
  2. Turner, S.; Chen, L. RFC 6151: Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms. RFC Editor, 2011. RFC 6151 — MD5 publié en 1992 ; pseudo-collisions sur la fonction de compression en 1993, collision sur la fonction de compression en 1996, collisions complètes en 2004 ; meilleure attaque de pré-image de complexité 2^123,4, plus rapide que la recherche exhaustive ; n'est plus acceptable là où la résistance aux collisions est requise, comme les signatures numériques.
  3. Wang, X.; Feng, D.; Lai, X.; Yu, H. Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD. IACR Cryptology ePrint Archive, 2004/199. ePrint 2004/199 — le résultat de collision 2004 sur MD5.
  4. Sotirov, A.; Stevens, M.; et al. MD5 considered harmful today: Creating a rogue CA certificate. 2008. Certificat d'autorité de certification frauduleux — un certificat d'autorité de certification frauduleux, reconnu par tous les navigateurs web courants, construit à l'aide d'une collision MD5.
  5. National Institute of Standards and Technology. FIPS 202: SHA-3 Standard. FIPS 202 — les fonctions SHA-3 sont fondées sur Keccak et complètent la famille SHA-2.