Hash MD5
Outil de hash MD5 en ligne gratuit. Modes texte/fichier/par lots/HMAC-MD5, UTF-8/Latin1, majuscules, regroupement 8 caractères. ⚠️ MD5 est cassé — NE l'utilisez PAS pour stocker des mots de passe.
Outil de hash MD5 en ligne gratuit. Modes texte/fichier/par lots/HMAC-MD5, UTF-8/Latin1, majuscules, regroupement 8 caractères. ⚠️ MD5 est cassé — NE l'utilisez PAS pour stocker des mots de passe.
MD5 est couramment utilisé pour la vérification d'intégrité de fichiers (comme vérifier des téléchargements), la génération rapide de résumés, la compatibilité avec les systèmes hérités, les clés de cache et la déduplication de données dans des scénarios non liés à la sécurité. MD5 produit 128 bits (32 caractères hexadécimaux) et est très rapide, adapté aux scénarios de vérification à faibles exigences de sécurité.
MD5 produit 128 bits (32 hex) et est très rapide mais cassé ; SHA-256 produit 256 bits (64 hex), est plus lent mais n'a pas d'attaques par collision pratiques et est préféré pour les usages critiques de sécurité.
Outil SHA-256MD5 est extrêmement rapide : les GPU modernes peuvent calculer des milliards de hachages par seconde, et les tables arc-en-ciel viennent à bout des mots de passe courants rapidement. Pour le stockage des mots de passe, utilisez bcrypt, scrypt ou Argon2.
Générateur de mots de passeAbsolument PAS pour la sécurité (signatures numériques, mots de passe, TLS). Mais pour des usages non sécurisés (vérification de corruption de fichiers, déduplication, clés de cache), MD5 reste acceptable car les attaquants n'ont aucune raison de créer des collisions.
MD5 est unidirectionnel et ne peut pas être inversé mathématiquement, mais les tables arc-en-ciel et la force brute peuvent récupérer des mots de passe faibles en quelques secondes. C'est pourquoi MD5 ne doit jamais être utilisé pour stocker des mots de passe.
Non. L'outil utilise une lecture incrémentielle fragmentée : les fichiers ne sont pas chargés entièrement en mémoire, donc même les fichiers de plusieurs Go sont traités sans problème avec une interface réactive.
HMAC-MD5 est un hachage avec clé qui nécessite une clé secrète. Bien que MD5 simple soit cassé, HMAC-MD5 reste sécurisé lorsque la clé est inconnue (bien que la migration vers HMAC-SHA256 soit recommandée).
Générateur HMACMD5 (Message-Digest Algorithm 5) est une fonction de hachage de 128 bits conçue par Ronald Rivest en 1991 (RFC 1321), produisant un résumé hexadécimal fixe de 32 caractères à partir d'une entrée arbitraire. Largement utilisé pour les signatures numériques, la vérification de certificats et le stockage de mots de passe, MD5 a été cassé par l'attaque par collision de Wang et al. en 2004, et le malware Flame a exploité des collisions MD5 pour falsifier un certificat CA de confiance en 2008.
**État de sécurité** : NIST a officiellement déconseillé MD5 pour les signatures numériques dans SP 800-131A (2011). Cependant, MD5 reste utile pour des scénarios non liés à la sécurité : vérifications d'intégrité de fichiers contre la corruption accidentelle, déduplication de données et clés de cache. La question clé : un attaquant bénéficierait-il de la création d'une collision ? Si non, la rapidité de MD5 est un avantage.
**N'utilisez jamais MD5 pour stocker des mots de passe** : MD5 est extrêmement rapide (des milliards de hachages/seconde sur GPU), permettant une force brute instantanée sur les mots de passe courants. Le stockage des mots de passe DOIT utiliser bcrypt, scrypt ou Argon2 — des hachages lents avec des facteurs de coût configurables qui rendent la force brute impossible.
**HMAC-MD5 reste sécurisé** : bien que MD5 simple soit cassé, HMAC-MD5 (code d'authentification de message haché avec clé) reste sécurisé lorsque la clé est inconnue car la construction HMAC ne dépend pas directement de la résistance aux collisions du hachage. La migration vers HMAC-SHA256 est néanmoins recommandée.
L'outil utilise une implémentation MD5 en JavaScript pur (l'API Web Crypto ne prend plus en charge MD5). Tous les calculs s'effectuent localement dans votre navigateur : les fichiers utilisent une lecture incrémentielle fragmentée et ne sont jamais téléchargés sur des serveurs.
| Algorithme | Bits de sortie | Longueur Hex | Sécurité | Vitesse | Utilisation recommandée |
|---|---|---|---|---|---|
MD5 | 128 bits | 32 caractères | ❌ Cassé (collisions/préimage) | Extrême | Sommes de contrôle de fichiers, déduplication, clés de cache |
SHA-1 | 160 bits | 40 caractères | ❌ Collisions (2017) | Rapide | Git, compatibilité avec systèmes hérités |
SHA-256 | 256 bits | 64 caractères | ✅ Sécurisé | Moyen | Signatures numériques, certificats, blockchain |
SHA-512 | 512 bits | 128 caractères | ✅ Sécurisé | Rapide (64 bits) | Scénarios haute sécurité, dérivation de clés |
bcrypt | - | 60 caractères | ✅ Spécialisé mots de passe | Lent (configurable) | Stockage de mots de passe |
| Année | Événement | Impact |
|---|---|---|
1991 | Ron Rivest conçoit MD5 (RFC 1321) | Remplace MD4 et devient l'algorithme de hachage principal |
1996 | Premier défaut de pseudo-collision découvert dans MD5 | La communauté académique commence à remettre en question la sécurité de MD5 |
2004 | L'équipe de Wang Xiaoyun démontre l'attaque par collision MD5 | La sécurité des signatures numériques MD5 est complètement brisée |
2008 | Le malware Flame falsifie des certificats CA par collision MD5 | NIST déconseille officiellement MD5 pour les signatures numériques |
2011 | NIST SP 800-131A interdit officiellement MD5 pour les usages de sécurité | Les systèmes du gouvernement américain éliminent progressivement MD5 |
2024 | Nouvel article sur l'attaque de préimage publié | La dernière ligne de défense de MD5 (résistance à la préimage) est brisée |
// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
const msgBuffer = new TextEncoder().encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);
// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash) # b10a8db164e0754105b7a99be72e3fe5
# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
md5 = hashlib.md5()
with open(filepath, 'rb') as f:
while chunk := f.read(chunk_size):
md5.update(chunk)
return md5.hexdigest()
# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
public class MD5Example {
public static String md5(String input) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : hash) sb.append(String.format("%02x", b));
return sb.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(md5("Hello World"));
// b10a8db164e0754105b7a99be72e3fe5
}
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")