Calculateur MD5

Calculez l'empreinte MD5 de n'importe quel fichier, directement dans votre navigateur.

CALCULATEUR_MD5

[1] SÉLECTIONNER FICHIER(S) À HACHER

Un fichier, plusieurs, ou deux à comparer.

[2] CHOISISSEZ VOTRE FONCTION DE HACHAGE

[3] LANCER LE PROCESSUS DE HACHAGE

MD5 en bref

MD5, pour Message-Digest Algorithm 5, a été conçu par Ronald Rivest, professeur au MIT, en 1991. Il succède à MD4, dont des faiblesses avaient déjà été repérées, et sa description de référence est la RFC 1321, publiée en avril 1992. Le principe est resté le même depuis : on découpe le fichier en blocs de 512 bits, chaque bloc passe par 64 opérations réparties en quatre tours, et l'état final de 128 bits devient l'empreinte.

Ces 128 bits s'écrivent avec 32 caractères hexadécimaux (les chiffres de 0 à 9 et les lettres de a à f). Un fichier vide donne toujours d41d8cd98f00b204e9800998ecf8427e, une vidéo de 4 Go donne aussi 32 caractères : la taille de l'empreinte ne dépend jamais de la taille du fichier. Modifiez un seul octet, et le résultat change du tout au tout.

SORTIE : 128 bits — 32 caractères hexadécimaux

RÉFÉRENCE : RFC 1321 (avril 1992)

ÉTAT : Collisions faciles à produire — à proscrire face à un adversaire

Ce qui se passe quand vous cliquez

Le calculateur ci-dessus lit votre fichier par tranches de 4 Mo grâce aux API de fichiers du navigateur, et chaque tranche est passée à la bibliothèque libre hash-wasm, compilée en WebAssembly. Aucune tranche ne part sur le réseau : le serveur ne fait que livrer la page, il ne reçoit jamais votre document. Si vous voulez le constater par vous-même, ouvrez l'onglet « Réseau » des outils de développement (touche F12) pendant le calcul : vous n'y verrez aucun envoi de fichier.

Cette lecture par morceaux explique aussi pourquoi il n'y a pas de limite de taille : la mémoire utilisée reste modeste, que le fichier pèse 10 Ko ou une image disque entière. Le temps de calcul dépend surtout de la vitesse de lecture du support, d'un disque SSD, d'un disque réseau ou d'une clé USB.

De 1991 à Flame : comment MD5 est tombé

Les premiers signaux d'alarme datent de 1996, quand Hans Dobbertin trouve des collisions dans la fonction de compression de MD5. Les cryptographes commencent alors à conseiller d'autres algorithmes, mais MD5 est déjà partout et les habitudes résistent.

Le vrai tournant a lieu en août 2004, à la conférence CRYPTO : l'équipe de la chercheuse chinoise Wang Xiaoyun, avec Feng Dengguo, Lai Xuejia et Yu Hongbo, présente deux messages différents qui ont exactement le même MD5. Dans les années suivantes, les techniques s'affinent au point que fabriquer une collision devient l'affaire de quelques secondes sur un ordinateur ordinaire.

En 2008, une équipe menée notamment par Alexander Sotirov et Marc Stevens utilise environ 200 consoles PlayStation 3 pour créer un faux certificat d'autorité de certification, accepté par les navigateurs de l'époque, en exploitant une collision MD5 à préfixe choisi. Quatre ans plus tard, en 2012, le logiciel espion Flame, découvert sur des machines au Moyen-Orient, se propage grâce à un certificat de signature de code Microsoft contrefait de la même manière : une infrastructure de licences Terminal Server signait encore ses certificats avec MD5. Microsoft a dû révoquer les certificats concernés en urgence.

Point important pour bien mesurer le risque : toutes ces attaques sont des collisions. L'attaquant fabrique lui-même deux fichiers qui se ressemblent par l'empreinte. Retrouver un fichier qui correspond à une empreinte MD5 imposée à l'avance (une « préimage ») reste hors de portée en pratique.

Ce que MD5 garantit encore

Une erreur accidentelle, comme un secteur défaillant, un transfert interrompu ou un bit inversé dans une barrette mémoire, n'a aucune intelligence. La probabilité qu'elle laisse le MD5 inchangé est de l'ordre de 1 sur 2128, autrement dit nulle à toute échelle humaine. C'est pour cette raison que MD5 rend encore de vrais services :

  • ›contrôler qu'une sauvegarde copiée sur un NAS, un disque externe ou une clé USB est bit pour bit identique à l'original ;
  • ›repérer des doublons dans des milliers de photos ou de documents, où seule la vitesse compte ;
  • ›vérifier un fichier pour lequel un éditeur ne publie encore qu'une somme MD5, en gardant en tête que cela ne protège pas contre une substitution volontaire ;
  • ›servir d'identifiant technique (clé de cache, ETag, déduplication) quand personne n'a intérêt à tricher.

Dans les procédures de preuve numérique, MD5 garde une place historique : de nombreux logiciels d'acquisition affichent un MD5 accompagné d'un SHA-1 ou d'un SHA-256. La pratique recommandée aujourd'hui consiste à toujours le doubler d'un SHA-256. Pour faire passer un fichier modifié pour l'original, il faudrait alors une collision simultanée sur les deux algorithmes, et aucune méthode connue ne le permet. L'option MD5 + SHA-256 du calculateur produit les deux valeurs en une seule lecture du fichier, et vous pouvez les consigner dans un rapport de vérification.

Calculer un MD5 sans passer par un site

Tous les systèmes courants savent calculer un MD5 en ligne de commande. Utile pour recouper le résultat du navigateur, ou pour automatiser un contrôle.

Windows — invite de commandes

certutil -hashfile "C:\Users\vous\Downloads\archive.zip" MD5

La valeur s'affiche sur la deuxième ligne, en minuscules. Sur les anciennes versions de Windows, certutil séparait les octets par des espaces : retirez-les avant de comparer.

Windows — PowerShell

Get-FileHash -Algorithm MD5 .\archive.zip
(Get-FileHash -Algorithm MD5 .\archive.zip).Hash.ToLower()

PowerShell affiche l'empreinte en majuscules ; la seconde ligne la convertit en minuscules si vous devez la coller ailleurs.

macOS — Terminal

md5 archive.zip
md5 -r archive.zip

La première forme écrit MD5 (archive.zip) = … ; l'option -r inverse l'ordre pour imiter le format Linux.

Linux

md5sum archive.zip
md5sum -c archive.zip.md5

La seconde commande relit un fichier de sommes et indique, fichier par fichier, si la vérification a réussi.

Lire un MD5 sans se tromper

La plupart des « non-correspondances » signalées par les utilisateurs ne viennent pas du fichier, mais de la comparaison elle-même. Les pièges les plus fréquents :

  • ›Majuscules et minuscules. 9E107D9D et 9e107d9d désignent la même valeur : l'hexadécimal ne tient pas compte de la casse. PowerShell écrit en majuscules, md5sum en minuscules, et les deux sont d'accord.
  • ›Espaces et retours à la ligne. Un copier-coller depuis un e-mail ou un PDF embarque souvent un espace final ou un saut de ligne invisible, qui suffit à faire échouer une comparaison caractère par caractère.
  • ›Nom de fichier collé avec l'empreinte. Une ligne de md5sum ressemble à empreinte␣␣nom-du-fichier. Le champ de vérification du calculateur ne garde que le premier mot et ignore la casse, ce qui évite ces deux erreurs.
  • ›Mauvaise longueur. Un MD5 compte toujours 32 caractères. Si la valeur publiée en compte 40, 64 ou 128, il s'agit d'un autre algorithme ; le calculateur vous le signale.
  • ›Texte au lieu du fichier. Sous Linux, echo "bonjour" | md5sum hache aussi le saut de ligne ajouté par echo. Utilisez echo -n pour un texte, et pour un fichier, donnez toujours son chemin.

Pour aller plus loin

Questions fréquentes sur MD5

Pourquoi deux outils me donnent-ils un MD5 différent pour le même fichier ?

Si seule la casse diffère, les deux résultats sont identiques. Sinon, l'un des deux outils a probablement haché autre chose : le nom du fichier tapé comme texte, une version du fichier modifiée entre-temps, ou un texte suivi d'un saut de ligne. Recalculez les deux à partir du même fichier, sans le rouvrir ni l'enregistrer entre deux mesures.

Un MD5 identique prouve-t-il que deux fichiers sont identiques ?

Face aux accidents, oui en pratique : une corruption aléatoire ne reproduit pas la même empreinte. Face à quelqu'un qui a fabriqué les deux fichiers exprès, non, puisque les collisions MD5 se produisent en quelques secondes. Dans ce cas, comparez plutôt un SHA-256.

Les sites qui « décryptent » le MD5 retrouvent-ils mon fichier ?

Non. Ces sites consultent d'immenses tables d'empreintes précalculées pour des mots courts et des mots de passe connus. Ils ne peuvent rien pour un fichier : une empreinte de 32 caractères ne contient pas assez d'information pour reconstituer un document.

Pourquoi les experts doublent-ils le MD5 d'un SHA-256 ?

Parce que de nombreux formulaires, logiciels et procédures attendent encore un MD5, alors que seul SHA-256 offre aujourd'hui une garantie solide contre la falsification. Les deux valeurs ensemble satisfont les deux exigences.

Mon fichier quitte-t-il mon ordinateur pendant le calcul ?

Non. Le fichier est lu localement, par tranches, et haché par du code WebAssembly qui s'exécute dans l'onglet. Seul le résultat s'affiche à l'écran ; rien n'est stocké ni transmis.