Générateur de Hash MD5

Générer un hash MD5 à partir de n'importe quel texte

Texte d'entrée

Fonctionne localement · Sûr pour coller des secrets

Hash MD5

Le hash MD5 s'affichera ici…

Qu'est-ce que le hachage MD5 ?

MD5 (Message-Digest Algorithm 5) est une fonction de hachage cryptographique qui produit un condensé fixe de 128 bits (16 octets) à partir de n'importe quelle entrée, quelle que soit sa taille. Publiée en 1992 par Ronald Rivest sous la forme RFC 1321, MD5 a été conçue comme successeur plus rapide de MD4 et est rapidement devenue l'une des fonctions de hachage les plus utilisées sur internet. L'algorithme traite l'entrée en blocs de 512 bits à travers quatre tours de 16 opérations chacun, en appliquant une fonction non linéaire différente par tour, pour produire une empreinte hexadécimale de 32 caractères.

Une fonction de hachage est une transformation à sens unique : à partir d'une entrée, on peut calculer le hash instantanément, mais à partir du hash seul, on ne peut pas retrouver l'entrée d'origine. Même un changement d'un seul bit dans l'entrée produit un condensé complètement différent — une propriété appelée effet avalanche. MD5 projette un espace d'entrée infini sur un espace de sortie fixe de 128 bits, de sorte que des collisions (deux entrées différentes produisant le même hash) sont mathématiquement garanties d'exister, mais une fonction de hachage sécurisée les rend computationnellement impossibles à trouver.

Depuis 2004, des chercheurs ont démontré des attaques par collision pratiques contre MD5, ce qui signifie qu'il n'est plus considéré comme sécurisé pour les signatures numériques, les certificats ou tout contexte où la résistance aux collisions est requise. Cependant, MD5 reste largement utilisé à des fins non sécuritaires : vérifier l'intégrité des fichiers après un téléchargement, générer des clés de cache, dédupliquer du contenu et créer des identifiants déterministes à partir de chaînes. Pour ces usages, la vitesse de l'algorithme et son support universel dans les bibliothèques en font un choix pratique. En 2008, Marc Stevens et ses collègues ont publié une attaque par collision à préfixe choisi, ce qui signifie qu'un attaquant peut créer deux documents avec des préfixes arbitraires choisis qui partagent le même condensé. Cette technique a été démontrée au Chaos Communication Congress 2008 en construisant un faux certificat d'autorité de certification. Le malware Flame de 2012 a ensuite exploité des collisions à préfixe choisi pour falsifier un certificat de signature de code Microsoft, permettant au malware de se faire passer pour une mise à jour Windows légitime. Ces exploits réels ont confirmé que l'algorithme est cryptographiquement compromis pour tout usage ancré dans la confiance et ne doit pas être utilisé lorsqu'un adversaire peut influencer les entrées hachées.

Pourquoi utiliser ce générateur MD5 ?

Générez des hashes MD5 instantanément sans rien installer ni écrire de code. Collez votre texte et obtenez le condensé hexadécimal de 32 caractères en temps réel.

Hachage instantané
La sortie se met à jour au fil de la saisie. Aucun clic de bouton, aucune attente — le condensé MD5 apparaît caractère par caractère à mesure que vous modifiez l'entrée.
🔒
Traitement respectueux de la vie privée
Tout le hachage s'exécute localement dans votre navigateur en JavaScript. Votre texte d'entrée ne quitte jamais votre appareil et n'est jamais envoyé à un serveur.
📋
Copie en un clic
Copiez le hash dans le presse-papiers en un seul clic. Basculez entre la sortie hexadécimale en minuscules et en majuscules pour correspondre au format attendu par votre système.
🔍
Sans compte requis
Aucune inscription, aucune connexion, aucune limite d'utilisation. Ouvrez la page et commencez à hacher immédiatement. Fonctionne sur tout appareil avec un navigateur moderne.

Cas d'usage de MD5

Développement frontend
Générez des hashes de cache-busting pour les ressources statiques. Ajoutez un condensé MD5 du contenu du fichier aux URLs CSS et JavaScript afin que les navigateurs récupèrent la version mise à jour lorsque le contenu change.
Ingénierie backend
Créez des clés de cache déterministes à partir de paramètres de requête complexes ou de corps de requête. Les hashes MD5 produisent des clés compactes de longueur fixe qui fonctionnent bien avec Redis, Memcached et les couches de cache CDN.
DevOps & CI/CD
Vérifiez l'intégrité des fichiers après transfert en comparant les sommes de contrôle MD5. De nombreux registres de paquets et dépôts d'artefacts publient des condensés MD5 à côté des téléchargements pour une vérification rapide.
QA & Tests
Comparez les hashes MD5 des réponses d'API, des dumps de base de données ou des fichiers de configuration pour détecter des changements inattendus entre les exécutions de tests sans comparer le contenu intégral.
Ingénierie des données
Déduplication des enregistrements dans les pipelines ETL en calculant des hashes MD5 du contenu des lignes. Deux lignes avec le même hash sont candidates à la déduplication, réduisant les coûts de stockage et de traitement.
Apprentissage & Éducation
Expérimentez avec les fonctions de hachage pour comprendre les transformations à sens unique, l'effet avalanche et pourquoi la résistance aux collisions est importante pour la sécurité. MD5 est le hash le plus simple et le plus connu pour l'étude.

MD5 vs autres algorithmes de hachage

MD5 est le plus rapide et le plus court des algorithmes de hachage courants, mais il offre les garanties de sécurité les plus faibles. Le tableau ci-dessous compare les tailles de condensé, les normes et les cas d'usage appropriés pour chaque algorithme.

AlgorithmeTaille du condenséLongueur hexNormeIdéal pour
MD5128 bits32 hex chars1992 / RFC 1321Checksums, non-security fingerprints
SHA-1160 bits40 hex chars1995 / RFC 3174Legacy git commits (being replaced)
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, backup standard
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Comment fonctionne MD5

MD5 traite l'entrée via une construction de Merkle-Damgård : le message est complété jusqu'à un multiple de 512 bits, divisé en blocs, et chaque bloc est traité par quatre tours de 16 opérations au niveau des bits qui mélangent l'entrée avec des constantes précalculées dérivées du sinus. Le résultat est un état de 128 bits qui devient le condensé final.

Chaque tour applique une fonction auxiliaire non linéaire distincte à trois des quatre mots d'état 32 bits (A, B, C, D). Le tour 1 utilise F(B,C,D) = (B AND C) OR (NOT B AND D) — un sélecteur conditionnel bit à bit. Le tour 2 utilise G(B,C,D) = (B AND D) OR (C AND NOT D) — un sélecteur complémentaire. Le tour 3 utilise H(B,C,D) = B XOR C XOR D — une fonction de parité. Le tour 4 utilise I(B,C,D) = C XOR (B OR NOT D) — un combinateur asymétrique. Ces quatre fonctions garantissent que chaque bit de l'entrée influence le condensé de sortie, produisant l'effet avalanche qui fait que de petits changements dans l'entrée provoquent des changements importants et imprévisibles dans le hash résultant.

Input: "hello world"
MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3
(128 bits = 16 bytes = 32 hex characters)

L'algorithme se déroule en cinq étapes : (1) ajouter un bit 1, puis des zéros, jusqu'à ce que la longueur du message soit 448 mod 512 ; (2) ajouter la longueur du message d'origine sous forme d'entier 64 bits little-endian ; (3) initialiser quatre variables d'état 32 bits (A, B, C, D) avec des constantes fixes ; (4) traiter chaque bloc de 512 bits à travers 64 opérations en utilisant quatre fonctions non linéaires (F, G, H, I), une par tour de 16 opérations ; (5) ajouter l'état résultant au total cumulé et produire le hash final de 128 bits en ordre d'octets little-endian.

Exemples de code

Comment générer des hashes MD5 dans les langages et environnements populaires. À noter que MD5 n'est pas disponible dans l'API Web Crypto du navigateur — utilisez une bibliothèque ou Node.js.

JavaScript (Web Crypto — browser & Node.js)
// MD5 is not available in Web Crypto API (it only supports SHA-*)
// Use a library like 'js-md5' or the Node.js crypto module

// Node.js (built-in crypto)
const crypto = require('crypto')
const hash = crypto.createHash('md5').update('hello world').digest('hex')
console.log(hash) // → "5eb63bbbe01eeed093cb22bb8f5acdc3"

// With Unicode input
crypto.createHash('md5').update('cafe\u0301').digest('hex')
// → "4fad076bae205e95bec9dacea498e2ab"
Python
import hashlib

# Basic MD5 hash
result = hashlib.md5(b'hello world').hexdigest()
print(result)  # → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a string (must encode to bytes first)
text = 'hello world'
hashlib.md5(text.encode('utf-8')).hexdigest()
# → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a file
with open('file.bin', 'rb') as f:
    md5 = hashlib.md5()
    for chunk in iter(lambda: f.read(8192), b''):
        md5.update(chunk)
    print(md5.hexdigest())
Go
package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 5eb63bbbe01eeed093cb22bb8f5acdc3
}
CLI (Linux / macOS)
# Using md5sum (Linux) or md5 (macOS)
echo -n "hello world" | md5sum
# → 5eb63bbbe01eeed093cb22bb8f5acdc3  -

# macOS
echo -n "hello world" | md5
# → 5eb63bbbe01eeed093cb22bb8f5acdc3

# Hash a file
md5sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl md5
# → MD5(stdin)= 5eb63bbbe01eeed093cb22bb8f5acdc3

Questions fréquemment posées

MD5 est-il encore sûr à utiliser ?
Il n'est pas sûr pour les applications sensibles à la sécurité comme les signatures numériques, les certificats TLS ou le hachage de mots de passe. Des attaques par collision pratiques ont été démontrées depuis 2004, et les attaques par collision à préfixe choisi sont désormais réalisables en quelques secondes sur du matériel courant. Pour les usages non sécuritaires — sommes de contrôle, clés de cache, déduplication de contenu — l'algorithme reste un choix pratique et largement supporté.
Quelle est la différence entre MD5 et SHA-256 ?
L'algorithme MD5 produit un condensé de 128 bits (32 caractères hex) et est vulnérable aux attaques par collision. SHA-256 produit un condensé de 256 bits (64 caractères hex) et ne présente aucune attaque pratique connue. SHA-256 est environ 30 à 40 % plus lent que l'ancien algorithme sur le même matériel, mais la marge de sécurité supplémentaire en fait le choix par défaut pour toute application où la vérification d'intégrité doit résister à une manipulation adversariale.
Peut-on inverser un hash MD5 pour retrouver l'entrée d'origine ?
Non. Cette fonction de hachage est à sens unique par conception — elle perd de l'information pendant le hachage. Cependant, pour des entrées courtes ou courantes, les attaquants peuvent utiliser des rainbow tables (correspondances hash-vers-texte précalculées) ou la force brute pour retrouver l'entrée d'origine. C'est pourquoi elle ne doit jamais être utilisée pour stocker des mots de passe. Utilisez bcrypt, scrypt ou Argon2 à la place.
Pourquoi différents outils produisent-ils parfois des hashes MD5 différents pour le même texte ?
La cause la plus fréquente est les différences d'encodage. L'algorithme opère sur des octets, pas sur des caractères. La chaîne 'hello' produit des hashes différents selon qu'elle est encodée en UTF-8, UTF-16 ou Latin-1. Un autre problème fréquent est les sauts de ligne en fin de chaîne : echo dans la plupart des shells ajoute un saut de ligne (\n) sauf si vous utilisez echo -n. Vérifiez toujours les octets exacts qui sont hachés.
Combien de temps faut-il pour calculer un hash MD5 ?
L'algorithme est extrêmement rapide. Sur du matériel moderne, il traite les données à 3 à 6 Go/s sur un seul cœur CPU. Un GPU peut calculer des milliards de sommes de contrôle par seconde. Cette vitesse est un avantage pour la vérification de fichiers, mais un inconvénient pour le hachage de mots de passe, où des algorithmes plus lents (bcrypt, Argon2) sont préférés précisément parce qu'ils résistent aux attaques par force brute.
Qu'est-ce qu'une collision MD5 et pourquoi est-ce important ?
Une collision se produit lorsque deux entrées différentes produisent le même condensé de hash. En 2004, Xiaoyun Wang a démontré la première collision pratique contre MD5. En 2012, le malware Flame a exploité une collision pour falsifier un certificat de signature de code Microsoft. Aujourd'hui, les collisions à préfixe identique peuvent être calculées en moins d'une minute. Cela rend l'algorithme inadapté à toute application qui repose sur la résistance aux collisions, comme les signatures numériques ou l'épinglage de certificats.
Dois-je utiliser MD5 ou CRC32 pour les sommes de contrôle de fichiers ?
Cette somme de contrôle est un meilleur choix que CRC32 pour la vérification de l'intégrité des fichiers. CRC32 est un code de détection d'erreurs 32 bits conçu pour détecter une corruption accidentelle lors de la transmission, pas une altération intentionnelle. Son petit espace de sortie rend les collisions triviales à construire. MD5 fournit un condensé de 128 bits avec une résistance aux collisions accidentelles bien plus forte. Pour les scénarios adversariaux (vérification de téléchargements depuis des sources non fiables), utilisez SHA-256 à la place.