Générateur de hachage MD5

Calculez l’empreinte MD5 de 128 bits d’un texte, d’octets hexadécimaux ou d’un fichier. Le hachage se met à jour pendant la saisie, et le champ « Comparer avec » vous indique s’il correspond à la somme de contrôle attendue.

Tous les algorithmes

Fonctionne entièrement dans votre navigateur. Aucune donnée n’est envoyée.

Mode d’emploi

  1. Saisissez ou collez du texte, passez l’entrée en Hexa pour saisir des octets, ou cliquez sur « Ouvrir un fichier » pour hacher ses octets exacts.
  2. Laissez « Encodage du texte » sur UTF-8, sauf si le hachage d’origine a été calculé à partir d’un texte dans un autre jeu de caractères.
  3. Dans « Format de sortie », choisissez « hexa (minuscules) », « HEXA (majuscules) » ou « Base64 ».
  4. Pour vérifier un téléchargement, collez le MD5 publié dans le champ « Comparer avec » et vérifiez que « Correspondance » s’affiche.

Qu’est-ce que MD5 ?

MD5 (Message-Digest Algorithm 5) a été conçu par Ronald Rivest et publié en 1992 sous la référence RFC 1321. Il lit son entrée par blocs de 512 bits et produit une empreinte de 128 bits, généralement écrite sous la forme de 32 caractères hexadécimaux ou de 24 caractères Base64. Une même entrée donne toujours la même empreinte, et la modification d’un seul bit de l’entrée change environ la moitié des bits de sortie.

Le hachage est à sens unique : il n’y a pas de clé, et aucun moyen de « déchiffrer » un hachage MD5 pour retrouver l’entrée. Les sites qui prétendent inverser MD5 cherchent le hachage dans d’immenses tables de mots et de mots de passe divulgués déjà hachés ; c’est pourquoi le MD5 non salé d’un mot de passe court est souvent retrouvé en quelques secondes.

MD5 est-il encore sûr ?

Pas face à un attaquant. Xiaoyun Wang et ses collègues ont publié des collisions pratiques en 2004 : deux entrées différentes ayant le même MD5. Les collisions à préfixe choisi ont suivi : des chercheurs en ont utilisé une en 2008 pour créer un faux certificat d’autorité de certification, et en 2012 le logiciel malveillant Flame s’en est servi pour falsifier un certificat qui faisait passer son code pour signé par Microsoft. Aujourd’hui, un ordinateur portable ordinaire trouve une collision MD5 en quelques secondes, et la RFC 6151 indique que MD5 n’est plus acceptable là où la résistance aux collisions est requise, par exemple pour les signatures numériques.

MD5 reste adapté comme somme de contrôle contre les dommages accidentels, comme un téléchargement incomplet ou un bit inversé sur un disque, ainsi que pour les clés de cache ou la déduplication de données de confiance. Lorsque le fichier ou sa somme de contrôle peut provenir d’un attaquant, utilisez plutôt SHA-256.

Hexa, Base64 et hachages qui ne correspondent pas

MD5 s’affiche normalement en hexadécimal, comme dans la sortie de md5sum. Certains protocoles transmettent plutôt les 16 octets bruts en Base64, par exemple l’en-tête HTTP Content-MD5 utilisé par des API de stockage cloud comme Amazon S3. Choisissez la sortie Base64, ou convertissez une valeur existante avec Hexa en Base64.

Si votre MD5 diffère de celui d’un autre outil, c’est que les octets d’entrée diffèrent. Les causes habituelles sont un saut de ligne final, des fins de ligne Windows ou un autre encodage du texte : « café » occupe 5 octets en UTF-8 mais 4 en ISO-8859-1, et les deux hachages n’ont alors rien en commun.

$ echo "hello" | md5sum      # hache "hello\n"
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # hache "hello"
5d41402abc4b2a76b9719d911017c592  -

MD5 en ligne de commande et dans le code

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

L’API Web Crypto intégrée aux navigateurs ne propose pas MD5 : cette page le calcule donc en JavaScript sur votre appareil, sans rien envoyer. Le tableau « Tous les algorithmes », sous le résultat, affiche SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 et CRC-32C pour la même entrée.

Exemples

Entrée (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

Questions fréquentes

Peut-on déchiffrer un hachage MD5 ?
Non. MD5 est une fonction de hachage à sens unique, pas un chiffrement : il n’y a donc rien à déchiffrer, et un « décrypteur MD5 » ne peut renvoyer qu’une entrée qui figure déjà dans ses tables. Si vous devez récupérer les données d’origine plus tard, chiffrez-les plutôt ou, si elles n’ont pas besoin de rester secrètes, encodez-les en Base64, ce qui est entièrement réversible.
MD5 suffit-il pour vérifier un téléchargement ?

Il détecte de façon fiable les corruptions accidentelles. Mais comme les collisions ne coûtent presque rien, une personne qui prépare un fichier à l’avance peut en fabriquer un second, différent, avec le même MD5. Pour les téléchargements où la sécurité compte, vérifiez un hachage SHA-256 provenant d’une source de confiance, ou une signature.

Quelle est la longueur d’un hachage MD5 ?
128 bits, soit 16 octets : 32 caractères en hexa, ou 24 caractères en Base64 se terminant par ==. Une chaîne hexadécimale de 32 caractères peut aussi être un hachage MD4 ou NTLM ; l’identificateur de hachage liste les candidats possibles.
Puis-je obtenir le MD5 d’un gros fichier ?
Oui. Ouvrez le fichier : ses octets sont hachés dans votre navigateur sans être envoyés. La limite est la mémoire dont dispose votre navigateur ; pour les fichiers de plusieurs gigaoctets, mieux vaut utiliser md5sum ou certutil.
Faut-il stocker les mots de passe en MD5 ?
Non. MD5 est conçu pour être rapide : un seul GPU teste des milliards de tentatives par seconde. Stockez les mots de passe avec Argon2id, scrypt, bcrypt ou PBKDF2, qui ajoutent un sel et sont volontairement lents. Le générateur de mots de passe crée d’emblée des mots de passe robustes.