Qu'est-ce que le calculateur de hash MD5 ?
Le calculateur de hash MD5 génère l'empreinte MD5 128 bits de tout texte que vous saisissez. L'algorithme MD5 (Message-Digest Algorithm 5, défini par la RFC 1321) accepte une entrée de longueur quelconque et produit une empreinte hexadécimale de taille fixe, soit 32 caractères. Une même entrée donne toujours le même hash, tandis que la moindre modification — ne serait-ce qu'un seul caractère — aboutit à un résultat totalement différent.
Comment l'utiliser
Saisissez ou collez votre texte dans le champ de saisie, puis validez. Le calculateur encode votre texte en octets UTF-8, applique l'algorithme MD5 et renvoie l'empreinte hexadécimale en minuscules, accompagnée de la longueur du texte en caractères et de sa taille en octets UTF-8. Laissez le champ vide pour afficher le célèbre hash de la chaîne vide.
La formule expliquée
MD5 repose sur une construction de Merkle–Damgård :
$$\text{MD5}\!\left(\text{Text}\right) = \text{Hex}_{128}\big(A \Vert B \Vert C \Vert D\big)$$Le message est complété par un unique octet 0x80, suivi de zéros, jusqu'à ce que sa longueur soit congrue à 56 modulo 64 octets ; la longueur d'origine en bits est ensuite ajoutée sous forme d'une valeur 64 bits en little-endian. Le message complété est découpé en blocs de 512 bits, chacun traité en 64 opérations réparties sur quatre tours, à l'aide de fonctions non linéaires, de constantes par étape dérivées du sinus et de rotations vers la gauche. Les quatre mots d'état de 32 bits (A, B, C, D) sont initialisés avec des valeurs de départ fixes et mis à jour pour chaque bloc ; leur concaténation finale en little-endian constitue l'empreinte.
Exemple concret
La chaîne vide ("") compte zéro octet. Après remplissage, elle forme un unique bloc de 512 bits, et MD5 renvoie d41d8cd98f00b204e9800998ecf8427e. Le texte « hello » (5 octets) produit quant à lui 5d41402abc4b2a76b9719d911017c592.
FAQ
MD5 est-il sécurisé ? Non. MD5 est cryptographiquement obsolète : on peut générer des collisions très facilement. Réservez-le aux sommes de contrôle (checksums) et aux empreintes sans enjeu de sécurité, jamais aux mots de passe ni aux signatures.
Pourquoi le nombre d'octets diffère-t-il du nombre de caractères ? Les caractères non ASCII occupent plus d'un octet en UTF-8 : ainsi, une chaîne de 3 emojis peut représenter plusieurs octets.
La casse a-t-elle une importance ? Oui. « Hello » et « hello » produisent des hash totalement différents.