Comment inverser un hash MD5 : 4 méthodes qui fonctionnent vraiment (2026)

Tutorial
14 min de lecture

On vous tend une chaîne hexadécimale de 32 caractères comme 5f4dcc3b5aa765d61d8327deb882cf99 en vous demandant de l'inverser. Peut-être qu'elle sort d'un dump de base de données sur une machine CTF, ou qu'un client veut savoir si sa vieille table d'utilisateurs est encore sûre. Dans tous les cas, vous devez savoir comment inverser un hash MD5, ce qui est réellement possible, et où sont les limites. Pratiquez les techniques de ce guide directement dans le cours Password Cracking de HackerDNA. Pour une vue d'ensemble, consultez notre guide complet du test d'intrusion.

Ce tutoriel couvre quatre façons d'inverser un hash MD5 en 2026 : bases de recherche en ligne, cracking GPU avec Hashcat 6.2.6, cracking CPU avec John the Ripper 1.9.0-jumbo-1, et un brute force en Python que vous pouvez lire de bout en bout. Chaque commande est prête à copier-coller, et chaque méthode est présentée avec ses modes d'échec dans le monde réel.

TL;DR : Vous ne pouvez pas inverser MD5 mathématiquement parce que c'est une fonction de hachage à sens unique. Ce que les gens appellent « inverser MD5 » est en réalité du cracking : tester des entrées candidates jusqu'à ce que l'une produise le même hash. Commencez par une recherche en ligne comme CrackStation, puis passez à Hashcat avec rockyou.txt et best64.rule. Les mots de passe communs tombent en quelques secondes. Les entrées longues, salées ou aléatoires non.

Peut-on inverser MD5 ? La réponse honnête

Inverser MD5 signifie récupérer l'entrée originale à partir d'un hash MD5 de 128 bits. MD5 est une fonction cryptographique à sens unique, donc aucun algorithme ne peut déduire l'entrée du hash directement. En pratique, « inverser MD5 » décrit le hachage de chaînes candidates et la comparaison de chaque sortie avec la cible jusqu'à trouver une correspondance.

Les maths sont brutales. MD5 transforme toute entrée de n'importe quelle longueur en une sortie fixe de 128 bits. Cela fait 2^128, soit environ 340 undécillions de hashes possibles. La fonction n'a pas d'inverse, pas de trappe, et aucun raccourci publié à ce jour. La spécification originale (RFC 1321, 1992) rend cette propriété explicite : MD5 est conçu pour que le hash ne révèle rien de l'entrée.

Alors pourquoi tous les moteurs de recherche affichent-ils des outils en ligne qui prétendent « décrypter MD5 » ou « unhash MD5 » ? Parce que pour les entrées qui intéressent le plus les attaquants, les mots de passe communs, ces outils fonctionnent. Ils n'inversent pas les maths. Ils consultent le hash dans une immense table de hashes pré-calculés à partir d'entrées connues. Le vocabulaire « décrypter MD5 » ou « décryptage MD5 » est techniquement incorrect (le décryptage exige une clé, le hachage non), mais le résultat pratique est identique : l'attaquant récupère le texte clair.

Deux conséquences. D'abord, si vous défendez un système, ne stockez jamais les mots de passe en MD5 brut. L'outil de « décryptage » qui casse vos hashes en 50 millisecondes est le même qui casse ceux de tout le monde. Ensuite, si vous testez dans le cadre d'un audit autorisé, savoir quelles méthodes sont les plus rapides économise des heures de calcul à votre périmètre.

Inverser MD5 avec des outils de recherche en ligne

La façon la plus rapide d'inverser un hash MD5 unique est de demander à internet s'il l'a déjà vu. Des services publics maintiennent des bases de milliards de paires hash-texte clair, alimentées par des fuites de mots de passe, des dictionnaires et des campagnes de brute force.

Les quatre à connaître en 2026 :

  • CrackStation - plus de 15 milliards d'entrées, gratuit, recherches instantanées pour MD5, SHA-1, SHA-256 et autres hashes courants non salés.
  • md5decrypt.net - revendique une base de 1,15 trillion d'entrées. Surtout des mots de passe communs et des mots de dictionnaire, mais la taille produit parfois des correspondances surprenantes.
  • hashes.com - service payant en escrow pour les hashes craqués. Utile quand CrackStation échoue et que vous n'avez pas votre propre GPU.
  • md5hashing.net - base gratuite plus petite, génère aussi des hashes MD5 pour les tests.

Essayez ce hash sur CrackStation tout de suite : 5f4dcc3b5aa765d61d8327deb882cf99. Il renvoie « password » en moins d'une seconde. Ce hash est dans toutes les bases fuitées depuis 2009, et c'est la première chose que tout outil de cracking essaie.

Les recherches en ligne fonctionnent quand l'entrée est courte, commune, ou apparaît dans une fuite publique. Elles échouent de façon prévisible quand le hash est salé, quand l'entrée dépasse environ 16 caractères, ou quand elle contient des données aléatoires. Un mot de passe comme Tr0ub4dor&3 peut figurer dans une rainbow table ; une phrase de passe comme correcthorsebatterystaple probablement pas.

Une précaution opérationnelle : ne collez jamais des hashes issus d'un audit réel dans un service de recherche public. Certains services journalisent les requêtes, et les hashes de mots de passe de votre client sont des données sensibles. Pour un travail réel, utilisez votre propre infrastructure de cracking. Pour les CTF et l'apprentissage, les recherches en ligne sont parfaites.

Inverser MD5 avec Hashcat : la méthode la plus rapide

Quand les outils en ligne ne donnent rien, Hashcat 6.2.6 est la suite logique. Il tourne sur GPU, supporte MD5 nativement (mode 0), et avale des dizaines de milliards de candidats par seconde sur du matériel grand public.

Sauvegardez vos hashes cibles, un par ligne, dans hashes.txt. Puis lancez une attaque par dictionnaire :

hashcat -m 0 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt

Les drapeaux : -m 0 sélectionne MD5 comme mode de hash, -a 0 sélectionne le mode straight (dictionnaire). Le dernier argument est votre wordlist. Sur n'importe quel GPU moderne, cela termine en moins d'une minute. Environ 30 à 50 % des hashes MD5 d'un dump typique tombent avec rockyou.txt seul.

Ajoutez des règles pour transformer chaque entrée de wordlist en centaines de variations :

hashcat -m 0 -a 0 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule

Le jeu de règles best64 couvre les substitutions leetspeak, les changements de casse, l'ajout de chiffres et l'inversion. Il transforme « summer » en « Summer1 », « summer2024 », « S0mm3r », et ainsi de suite. Après best64, essayez dive.rule pour un filet plus large au prix de plus de temps de calcul.

Si vous connaissez la politique de mots de passe, les attaques par masque battent les attaques par dictionnaire. Pour tester chaque pattern « majuscule + 4 minuscules + 3 chiffres » :

hashcat -m 0 -a 3 hashes.txt ?u?l?l?l?l?d?d?d

Chiffres de vitesse depuis une seule RTX 4090 en 2026 : environ 164 milliards de hashes MD5 par seconde. Un mot de passe de 8 caractères en minuscules uniquement (environ 208 milliards de candidats) se casse en 1,3 seconde. Le même mot de passe contre bcrypt cost 12 prend des semaines. Cet écart est la raison pour laquelle MD5 est inadapté au stockage de mots de passe, même avec un salage négligé.

Pour la procédure complète multi-algorithmes incluant SHA-1, NTLM, bcrypt et les fichiers shadow, voyez notre tutoriel de cassage de hash.

💻
Pratiquez maintenant : Shadow Cracker - extrayez et cassez de vrais hashes de mots de passe d'un système Linux dans un lab navigateur. Aucune installation, aucun VPN, tout tourne dans votre navigateur.

Inverser MD5 avec John the Ripper

John the Ripper 1.9.0-jumbo-1 est l'alternative CPU quand Hashcat est exagéré ou que vous n'avez pas de GPU dédié. John détecte automatiquement la plupart des formats de hash, donc la commande de base reste courte :

john --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt

Le drapeau --format=Raw-MD5 indique à John que vos hashes sont du MD5 brut non salé (et non, par exemple, du MD5crypt issu d'un fichier shadow Linux). Sans ce drapeau, John devine, et sur des chaînes hexadécimales de 32 caractères il devine parfois NTLM. Soyez explicite.

Pour voir ce que John a déjà cassé lors de runs précédents :

john --show --format=Raw-MD5 hashes.txt

La fonction phare de John est la famille de scripts *2john qui extrait les hashes MD5 de fichiers chiffrés : pdf2john, zip2john, office2john. Ces scripts produisent des hashes que Hashcat ne peut pas extraire seul. Choisissez John quand vous avez un mélange de formats ou que vous n'avez que du CPU. Choisissez Hashcat quand la vitesse brute sur un type de hash connu compte.

Inverser MD5 en Python : exemple de code brute force

Parfois on veut comprendre la mécanique soi-même au lieu de traiter Hashcat comme une boîte noire. Voici un brute force en 12 lignes Python pour n'importe quel hash MD5 de 5 caractères en minuscules, en n'utilisant que la bibliothèque standard :

import hashlib
import itertools
import string

target = "5d41402abc4b2a76b9719d911017c592"  # md5 de "hello"
charset = string.ascii_lowercase

for length in range(1, 6):
    for guess in itertools.product(charset, repeat=length):
        candidate = "".join(guess)
        if hashlib.md5(candidate.encode()).hexdigest() == target:
            print(f"Found: {candidate}")
            exit()

Ce script teste chaque chaîne en minuscules jusqu'à 5 caractères. L'espace de recherche est 26 + 26^2 + ... + 26^5, soit environ 12 millions de candidats. Sur un CPU de portable récent, la boucle finit en 5 à 15 secondes.

MD5 en pur Python tourne à environ 1 million de hashes par seconde. Hashcat sur le GPU intégré de la même machine en fait environ 2 milliards. Ce facteur 2 000 explique pourquoi personne ne casse de hashes du monde réel en Python. Le script sert à apprendre ce que fait réellement le hachage, pas à de la production.

Pour l'étendre : remplacez le charset par string.printable, augmentez la plage de longueur, ou lisez les candidats depuis un fichier wordlist avec open("rockyou.txt"). La forme de la boucle reste identique, ce qui est tout l'intérêt de l'exercice.

Quand on ne peut pas inverser un hash MD5

Toutes les méthodes de cracking de cette page ont le même mode d'échec : si l'espace de recherche est trop grand, vous ne pouvez pas le parcourir. Trois situations rendent MD5 effectivement incassable en pratique.

Le salage. Un MD5 salé ajoute une valeur aléatoire propre à chaque utilisateur avant le hachage. Deux utilisateurs avec le même mot de passe obtiennent des hashes différents, ce qui tue complètement les rainbow tables. Vous pouvez encore attaquer un MD5 salé avec Hashcat (mode 10 pour md5($pass.$salt) ou 20 pour md5($salt.$pass)), mais vous devez casser chaque hash individuellement. Les recherches en ligne ne marchent plus du tout.

Les entrées longues et aléatoires. Un mot de passe aléatoire de 16 caractères tiré d'un jeu de 95 caractères a 95^16 (environ 4,4 * 10^31) possibilités. À 164 milliards de hashes par seconde, cela prend plus longtemps que l'âge de l'univers. Les jetons aléatoires cryptographiquement forts, les UUID et les clés API générées par machine sont tous dans cette catégorie.

Le hachage moderne de mots de passe. Les applications réelles en 2026 ne stockent plus de MD5 brut. Elles utilisent bcrypt, scrypt ou argon2 avec des paramètres de coût délibérés qui font durer chaque hash des millisecondes plutôt que des nanosecondes. Le Password Storage Cheat Sheet d'OWASP précise quoi utiliser et pourquoi.

En pratique, les hashes qui se cassent sont ceux qui n'auraient jamais dû être en MD5. Quand on teste de vraies applications, on trouve du MD5 brut dans des systèmes legacy, des outils internes que personne n'a mis à jour, ou des tables migrées depuis d'anciennes bases de données. Du nouveau code stockant des mots de passe en MD5 en 2026 relève de la faute professionnelle. Le même flux de travail s'applique à d'autres hashes rapides non salés : essayez la même approche contre SHA-1 dans notre lab crack SHA-1 hash.

FAQ : Inverser MD5

Peut-on inverser un hash MD5 mathématiquement ?

Non. MD5 est une fonction de hachage cryptographique sans inverse mathématique. La fonction transforme toute entrée en une sortie fixe de 128 bits et perd de l'information au passage. Ce que les gens appellent « inverser MD5 » est du brute force ou une recherche en base, pas une véritable inversion mathématique. Aucun algorithme publié ne récupère l'entrée à partir du hash directement.

« Décrypter MD5 » et « inverser MD5 » sont-ils la même chose ?

Oui, dans l'usage courant. Les deux phrases décrivent la récupération du texte clair à partir d'un hash. Le vocabulaire « décryptage » est techniquement incorrect parce que le hachage n'a pas de clé et n'est pas du chiffrement. Mais les outils en ligne et les requêtes de recherche utilisent « décrypter MD5 », « décrypteur MD5 » et « unhash MD5 » de façon interchangeable. La technique sous-jacente reste toujours la recherche ou le brute force.

Combien de temps faut-il pour inverser un hash MD5 ?

De quelques millisecondes à jamais. Un mot de passe commun comme « password » ou « qwerty123 » est dans toutes les rainbow tables et s'inverse instantanément. Un mot de passe minuscule de 8 caractères se casse en moins de 2 secondes sur un seul GPU. Un mot de passe aléatoire de 16 caractères est computationnellement infaisable. La seule réponse honnête : ça dépend de l'entrée.

Que veut dire « unhash MD5 » ?

« Unhash » est l'argot informel pour casser un hash et retrouver son texte clair. C'est la même opération que « inverser MD5 » ou « décrypter MD5 ». Le mot suggère que l'opération est l'inverse du hachage, mais mathématiquement elle ne l'est pas. Les outils qui prétendent « unhasher » n'importe quelle entrée utilisent des rainbow tables ou du brute force en arrière-plan.

MD5 est-il encore sûr pour les mots de passe en 2026 ?

Non. MD5 est considéré cryptographiquement cassé depuis 2004 et inadapté au stockage de mots de passe depuis au moins une décennie. Les applications modernes doivent utiliser bcrypt, scrypt ou argon2 avec des paramètres de coût appropriés. MD5 garde des usages légitimes étroits pour des sommes de contrôle non liées à la sécurité, mais jamais pour des identifiants, des jetons de session ou tout ce qu'un attaquant voudrait récupérer.

Quelle est la différence entre la recherche inverse MD5 et le brute force ?

Une recherche inverse compare le hash à une base pré-calculée de paires hash-texte clair connues. C'est instantané quand le hash est dans la base et inutile quand il n'y est pas. Le brute force génère des candidats, hash chacun et compare à la cible. Le brute force fonctionne toujours avec assez de temps, mais le temps requis croît exponentiellement avec la longueur de l'entrée.

Considérations légales et éthiques

Rappel critique : Ne tentez d'inverser que des hashes MD5 pour lesquels vous avez une autorisation écrite explicite de tester. Casser des hashes de systèmes que vous ne possédez pas viole le CFAA (États-Unis), le Computer Misuse Act (Royaume-Uni) et les lois équivalentes dans le monde entier.

Les missions d'audit de pénétration autorisées et les compétitions CTF sont les seuls contextes appropriés pour casser des hashes que vous n'avez pas générés vous-même. Le périmètre de toute mission doit mentionner explicitement le cassage de mots de passe comme activité autorisée. Si ce n'est pas le cas, obtenez confirmation écrite du client avant d'extraire ou d'attaquer le moindre matériel de hash.

Pour la pratique et l'auto-formation, restez dans des environnements dédiés : labs HackerDNA, machines VulnHub, Hack The Box, OverTheWire, ou n'importe quelle plateforme CTF. Ils existent justement pour la pratique offensive et ne portent aucun risque légal. Générer vos propres hashes MD5 localement avec echo -n "test" | md5sum convient aussi pour tester des outils et des scripts.

Une ligne éthique à tenir : ne téléchargez pas de dumps d'identifiants issus de vraies fuites. Le jeu de données est tentant parce que les hashes sont réels et les taux de réussite élevés, mais la possession de matériel d'identifiants volés crée une exposition légale même quand l'intention est la recherche. Les jeux d'entraînement publics comme rockyou.txt font exception parce qu'ils sont distribués par des organisations de sécurité depuis des années et intégrés à Kali Linux.

Vos prochaines étapes pour inverser des hashes MD5

Vous avez maintenant quatre façons d'inverser MD5 dans votre boîte à outils : recherches en ligne pour les mots de passe connus, Hashcat pour la vitesse GPU brute, John the Ripper pour le CPU et les formats mixtes, et Python quand vous voulez comprendre la mécanique. Chacune convient à une situation différente, et un pentester actif prend celle qui colle à la mission.

Le flux de travail réaliste sur un vrai test : commencez par une recherche gratuite comme CrackStation pour éliminer les victoires évidentes, puis lancez Hashcat avec rockyou.txt et best64.rule sur ce qui reste. Si les hashes sont salés, passez directement à Hashcat avec le bon mode (10 ou 20). Sautez complètement Python pour le travail de production ; gardez-le pour le lab quand vous voulez enseigner la mécanique à quelqu'un de nouveau.

Pratiquez ces techniques directement dans le lab Shadow Cracker de HackerDNA, où vous extrayez des hashes de mots de passe d'un système Linux en direct et les cassez dans votre navigateur. Faites le tour complet du cours Password Cracking pour des leçons guidées sur MD5, SHA-1, NTLM et les formats de fichier shadow. Si vous voulez comprendre pourquoi le choix de la wordlist compte plus que le jeu de règles, notre guide wordlist Gobuster couvre la sélection de wordlists en profondeur. Commencez avec l'offre gratuite HackerDNA, sans carte bancaire requise.

HackerDNA Team

Équipe HackerDNA

Écrit par l'équipe HackerDNA - des professionnels de la cybersécurité qui créent des labs de hacking pratiques et du contenu éducatif pour vous aider à développer des compétences réelles en sécurité.

Rencontrer l'équipe

Prêt à mettre cela en pratique?

Arrêtez de lire, commencez à hacker. Obtenez une expérience pratique avec plus de 170 labs de cybersécurité réels.

Commencer à Hacker Gratuitement
12 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement