Ce que fait cet outil
Calcule le hash MD5 de n'importe quel texte ou fichier dans ton navigateur, en renvoyant un digest hexadécimal de 32 caractères. MD5 est une fonction de hash 128 bits du RFC 1321, conçue par Ron Rivest en 1991. Elle est rapide — des fichiers de plusieurs gigaoctets se hashent en secondes — mais elle n'est pas résistante aux collisions : deux entrées distinctes peuvent être conçues pour produire le même hash MD5, et ça a été démontré dans la nature depuis 2005.
Quand MD5 va bien
- ETags et caches content-addressable. Un cache web qui hashe ses objets en MD5 utilise le hash comme clé rapide de bucket, pas comme garantie de sécurité. Le modèle d'attaque est « deux clients produisent accidentellement le même contenu », ce que MD5 gère encore correctement.
- Déduplication de fichiers sur un ensemble de confiance. Si tu contrôles les entrées (tes propres backups, les documents de ton équipe), les collisions MD5 sont astronomiquement improbables sans attaquant.
- Comparer à un checksum legacy. Les vieux téléchargements de logiciels, les listes de miroirs FTP et la doc d'avant 2010 ne publient souvent que du MD5. Vérifier ce nombre, c'est exactement à ça que sert MD5.
- Empreinte rapide d'un fichier avant transfert. Deux ingénieurs qui comparent s'ils ont « le même fichier » bénéficient de la vitesse de MD5 ; le modèle de menace est l'erreur humaine, pas la collision adversariale.
Quand MD5 ne va pas
- Stockage de mots de passe. Utilise un hash de mot de passe lent et salé comme bcrypt, scrypt ou Argon2. MD5 est trop rapide — un GPU moderne calcule des milliards de MD5 par seconde, donc toute base de données fuitée est rainbow-tablée en minutes.
- Signatures numériques ou certificats. Les collisions sont réelles. Des chercheurs ont construit des certificats CA frauduleux en exploitant des collisions MD5 en 2008. Tout ce qui laisse un attaquant choisir l'entrée est cassé.
- Vérification d'intégrité face à un attaquant déterminé. Si l'attaquant peut forger le fichier que tu hashes, MD5 ne te protège pas. SHA-256 si.
- Tout ce que la conformité moderne exige en SHA-2 ou SHA-3. PCI DSS, FIPS 140-3 et la plupart des standards gouvernementaux interdisent MD5 pour les nouvelles applications depuis la fin des années 2000.
Vecteurs de test
Vérifie l'implémentation contre les vecteurs de test canoniques du RFC 1321 :
- String vide
""→d41d8cd98f00b204e9800998ecf8427e "a"→0cc175b9c0f1b6a831c399e269772661"abc"→900150983cd24fb0d6963f7d28e17f72"message digest"→f96b697d7cb7938d525a2f31aaf161d0"The quick brown fox jumps over the lazy dog"→9e107d9d372bb6826bd81d3542a419d6
Colle n'importe lequel dans l'entrée plus haut ; le digest doit matcher exactement.
Notes
Pourquoi le hash fait-il 32 caractères et pas 16 ? MD5 produit 128 bits = 16 bytes. Chaque byte se rend en 2 caractères hex, ce qui donne 32 caractères visibles. Le digest sous-jacent fait 16 bytes dans tous les cas.
MD5 fuit-il de l'information sur l'entrée ? Cryptographiquement, non — étant donné un hash, tu ne peux pas récupérer l'entrée. Mais pour des entrées courtes ou structurées (mots simples, mots de passe communs), tu peux chercher le hash dans une rainbow table publique en millisecondes. C'est pour ça que MD5 est inadéquat pour le stockage de mots de passe même quand il est « salé faiblement ».
Pourquoi mon MD5 diffère-t-il de ce que md5sum retourne ? Très probablement, l'entrée diffère par un newline final. echo "hello" ajoute \n ; coller "hello" ici non. Utilise echo -n, ou hashe le fichier directement avec le sélecteur de fichier.
Outils liés
- Générateur de hash — calcule MD5, SHA-1, SHA-256, SHA-384 et SHA-512 côte à côte
- SHA-256 — le défaut moderne pour le hashing pertinent en sécurité
- Base64 — couple-le à MD5 pour des clés de stockage content-addressable