Ce qu'un hash MD5 vérifie réellement, où il fonctionne encore, et pourquoi les mots de passe et la protection contre la falsification nécessitent quelque chose de plus solide.
Quand un fichier téléchargé doit être digne de confiance, et pas seulement s'ouvrir
Un enseignant télécharge un gros dossier de ressources depuis un disque partagé de l'école et le fichier demande plusieurs tentatives avant de s'ouvrir sans erreur. Un responsable informatique reçoit d'un fournisseur un programme d'installation et doit confirmer qu'il correspond bien au fichier que le fournisseur a réellement publié, et non à une copie abîmée ou modifiée. Une classe d'informatique découvre comment une donnée peut être représentée par une empreinte de taille fixe, et l'enseignant veut un exemple que les élèves puissent essayer eux-mêmes. Dans chaque cas, la vraie question est la même : comment savoir qu'un fichier est exactement celui qu'il prétend être ?
C'est à cela que sert une fonction de hachage comme MD5. Elle ne chiffre pas le fichier, ne le cache pas et n'empêche pas de le lire. Elle tire du contenu du fichier une empreinte courte, de longueur fixe. Si ne serait-ce qu'un octet du fichier change, l'empreinte change complètement. Comparer des empreintes est un moyen rapide de vérifier si un téléchargement s'est terminé correctement, ou si un fichier correspond à la version que quelqu'un attend.
MD5 (Message-Digest Algorithm 5) est l'une des fonctions de hachage les plus anciennes et les plus connues. Elle sert encore aujourd'hui à des contrôles d'intégrité élémentaires, même si on ne la considère plus comme sûre pour les mots de passe ou la protection cryptographique depuis de nombreuses années. Comprendre ce que MD5 fait réellement, où elle reste utile et où elle ne doit jamais servir aide les enseignants, les élèves et le personnel informatique des écoles à mieux décider en matière de sécurité des fichiers.

Ce que MD5 fait réellement
MD5 accepte une entrée de n'importe quelle taille — un texte court, un paragraphe ou un fichier entier de plusieurs gigaoctets — et produit une sortie de taille fixe : une valeur de 128 bits, écrite presque toujours sous la forme d'une chaîne de 32 caractères mêlant lettres et chiffres. Cette sortie s'appelle un hash, un condensé ou une somme de contrôle.
Trois propriétés la rendent utile :
- La sortie a toujours la même longueur. Un fichier texte d'une ligne et un PDF de 500 pages produisent tous deux un hash MD5 de 32 caractères.
- La même entrée produit toujours la même sortie. Calculer l'empreinte d'un fichier deux fois, sur deux ordinateurs différents, doit donner un résultat identique si le fichier lui-même est identique.
- Une infime modification de l'entrée produit une sortie totalement différente. Changer un seul caractère, un espace ou un octet n'importe où dans le fichier change l'empreinte entière, et pas seulement une partie.
C'est cette dernière propriété qui rend MD5 utile pour la vérification. Si un enseignant publie un dossier de ressources accompagné de son empreinte MD5 et que la copie téléchargée par un élève donne une empreinte différente, c'est que quelque chose a changé pendant le téléchargement, que le fichier est incomplet, ou qu'il ne s'agit pas du même fichier. L'empreinte ne dit pas ce qui a changé, seulement que cela a changé.
Envie de générer une empreinte MD5 à partir de votre propre texte ou des informations d'un fichier ?
Essayer le générateur de hash MD5Là où MD5 reste réellement utile
MD5 a mauvaise réputation dans les discussions sur la sécurité, et à juste titre dans certains contextes évoqués plus bas. Mais l'écarter complètement fait perdre de vue les cas où elle fait encore un travail raisonnable.
| Cas d'usage | MD5 est-elle un choix raisonnable ? | Pourquoi |
|---|---|---|
| Vérifier qu'un téléchargement est arrivé entier | Oui | Personne ne cherche à fabriquer une correspondance exprès ; le but est seulement de repérer des erreurs accidentelles. |
| Confirmer que deux fichiers sont des copies identiques | Oui | Un moyen rapide de comparer de gros fichiers sans les ouvrir et en relire chaque octet à la main. |
| Conserver les mots de passe des comptes d'élèves ou du personnel | Non | MD5 est rapide et, par défaut, sans sel, ce qui rend les mots de passe ainsi conservés faciles à attaquer. Mieux vaut un algorithme conçu pour cela (voir plus bas). |
| Vérifier qu'un fichier n'a pas été altéré délibérément par un attaquant | Non | Les collisions MD5 peuvent être fabriquées exprès : un attaquant déterminé peut donc créer un fichier différent portant la même empreinte. |
| Enseigner la notion de hachage dans un cours d'informatique | Oui | MD5 est simple, rapide et abondamment documentée, ce qui en fait un bon premier exemple avant d'introduire SHA-256. |
Cas d'usage 1 : vérifier qu'un dossier de ressources partagé a bien été téléchargé
Situation : un chef de département dépose un gros ensemble de fiches, de diaporamas et de grilles d'évaluation sur un disque partagé, pour que les autres enseignants le téléchargent avant la rentrée.
Problème : certains enseignants signalent que des fichiers du dossier ne s'ouvrent pas, ou qu'un document semble tronqué. On ne sait pas si le téléchargement a échoué ou si le fichier d'origine était déjà abîmé.
Solution : le chef de département génère une empreinte MD5 du fichier ZIP d'origine avant de le partager et la joint à son message. Les enseignants qui doutent de leur téléchargement peuvent générer l'empreinte de leur propre copie avec le générateur de hash MD5 et la comparer à l'originale.
Résultat : un écart confirme que le téléchargement est incomplet ou abîmé : l'enseignant sait qu'il doit retélécharger plutôt que chercher la panne dans un fichier qui n'a jamais été intact.
Cas d'usage 2 : confirmer qu'un programme d'installation correspond à l'original du fournisseur
Situation : le responsable informatique d'une école reçoit le programme d'installation d'un logiciel pédagogique depuis le site d'un fournisseur ou depuis un site miroir.
Problème : installer un logiciel non vérifié sur les appareils de l'école comporte un risque si le fichier a été modifié ou abîmé quelque part entre le fournisseur et le lien de téléchargement.
Solution : beaucoup de fournisseurs publient une somme de contrôle à côté du téléchargement, parfois MD5, parfois un algorithme plus robuste comme SHA-256. Le responsable calcule l'empreinte du fichier téléchargé et la compare à la valeur publiée par le fournisseur avant de l'installer sur les machines de l'école.
Résultat : une correspondance confirmée donne confiance quant au fait que le fichier n'a pas été abîmé en route. Si le fournisseur publie explicitement une somme de contrôle SHA-256 plutôt que MD5, c'est cet algorithme plus robuste qu'il faut utiliser, puisqu'il protège aussi contre une altération délibérée.
Cas d'usage 3 : enseigner la notion de hachage dans un cours d'informatique
Situation : un enseignant présente l'idée des fonctions de hachage et veut que les élèves voient comment une petite modification du texte produit une sortie complètement différente.
Problème : les notions de cryptographie restent abstraites sans quelque chose que les élèves puissent essayer eux-mêmes en classe.
Solution : les élèves calculent l'empreinte d'une phrase courte, changent une lettre et la recalculent, puis comparent les deux résultats côte à côte. On voit ainsi l'effet avalanche, où une infime modification de l'entrée produit une sortie qui semble sans aucun lien, sans avoir besoin de comprendre les opérations bit à bit qui se cachent derrière.
Résultat : les élèves se construisent une compréhension intuitive et concrète du hachage avant de passer à l'usage des empreintes dans les systèmes réels, et aux limites de MD5.
Pourquoi MD5 n'est pas sûre pour les mots de passe ni pour les usages critiques
MD5 a été conçue en 1991, et la cryptographie a beaucoup avancé depuis. Deux faiblesses bien documentées expliquent pourquoi on ne doit lui faire confiance pour rien de sensible :
- Les attaques par collision. Des chercheurs ont montré que deux entrées différentes peuvent être fabriquées délibérément pour produire la même empreinte MD5. Un attaquant peut donc créer un fichier malveillant dont l'empreinte est identique à celle d'un fichier légitime, ce qui vide la vérification de son sens dès qu'il y a un adversaire.
- La rapidité joue contre la sécurité des mots de passe. MD5 a été conçue pour être rapide : bon pour une somme de contrôle, mauvais pour conserver des mots de passe. Le matériel actuel peut tenter des milliards d'essais MD5 par seconde, ce qui rend les empreintes MD5 de mots de passe relativement faciles à casser, surtout sans sel propre à chaque mot de passe.
Pour les mots de passe, écoles et développeurs devraient recourir à un algorithme conçu pour cela, comme bcrypt, scrypt ou Argon2, lents à dessein et faits pour résister aux essais massifs. Pour vérifier qu'un fichier n'a pas été altéré délibérément, le standard actuel est SHA-256. MD5 ne reste raisonnable que pour repérer une corruption accidentelle, là où personne ne cherche activement à fabriquer une correspondance.
Comment générer et vérifier une empreinte MD5
- Ouvrez le générateur de hash MD5.
- Collez le texte, ou les informations utiles du fichier, dans la zone de saisie.
- Générez l'empreinte et copiez le résultat de 32 caractères.
- Comparez-le à l'empreinte fournie par la source d'origine : la somme de contrôle publiée par un fournisseur, par exemple, ou l'empreinte du fichier original d'un collègue.
- Si les empreintes correspondent, le contenu est identique. Sinon, considérez le fichier comme incomplet, abîmé ou différent de l'original, et retéléchargez-le ou redemandez-le.
- Pour tout ce qui touche aux mots de passe ou à la protection contre une altération délibérée, employez un algorithme plus robuste et conçu pour cela plutôt que MD5.
Problèmes courants que cela résout
- Un dossier de ressources ou un programme d'installation téléchargé ne s'ouvre pas correctement.
- Deux membres d'une équipe ne savent pas s'ils ont la même version d'un fichier.
- Un fichier a besoin d'un contrôle d'intégrité rapide, sans comparer le contenu ligne par ligne à la main.
- Un cours d'informatique a besoin d'un exemple de hachage simple et concret.
- Une école doit comprendre pourquoi MD5 ne doit jamais servir à conserver des mots de passe.
Erreurs courantes à éviter
- Utiliser MD5 pour conserver les mots de passe des élèves ou du personnel.
- Croire qu'une empreinte MD5 identique prouve qu'un fichier n'a pas été altéré délibérément par un attaquant.
- Confondre MD5 et chiffrement ; une empreinte MD5 ne peut pas être ramenée au contenu d'origine, mais elle ne le cache ni ne le protège pour autant.
- Négliger la somme de contrôle SHA-256 publiée par un fournisseur au profit d'une valeur MD5 plus facile à trouver.
- Partager le contenu d'un fichier sensible en croyant qu'une empreinte apporte une quelconque confidentialité ; ce n'est pas le cas.
Questions fréquentes
À quoi sert MD5 aujourd'hui ?
Surtout à des contrôles rapides sans adversaire : confirmer qu'un téléchargement est arrivé entier, vérifier que deux fichiers sont des copies identiques, enseigner la notion de hachage. Elle n'est pas recommandée pour les mots de passe ni pour se protéger d'une altération délibérée.
MD5 est-elle la même chose que le chiffrement ?
Non. Le chiffrement est réversible avec la bonne clé, donc le contenu d'origine peut être retrouvé. Le hachage MD5 va dans un seul sens : d'une empreinte on ne revient pas au fichier ni au texte de départ. Il n'est pas non plus fait pour garder un contenu secret, seulement pour en donner une empreinte.
Pourquoi MD5 est-elle considérée comme peu sûre ?
Des chercheurs ont montré que des entrées différentes peuvent être fabriquées délibérément pour produire la même empreinte MD5 : c'est ce qu'on appelle une collision. MD5 ne peut donc pas être utilisée pour détecter une altération intentionnelle, mais seulement des changements ou des dommages accidentels.
Les écoles devraient-elles utiliser MD5 pour conserver des mots de passe ?
Non. MD5 est rapide et, sans protection supplémentaire, vulnérable aux essais massifs. Conserver des mots de passe demande un algorithme dédié comme bcrypt, scrypt ou Argon2, lents à dessein précisément pour résister à ce type d'attaque.
Que faut-il utiliser à la place de MD5 pour vérifier des fichiers importants ?
SHA-256 est le standard actuel pour les contrôles d'intégrité quand la sécurité compte, par exemple pour vérifier un logiciel téléchargé. MD5 ne reste acceptable que pour des contrôles élémentaires et sans enjeu, comme s'assurer qu'un téléchargement n'a pas été abîmé.
Deux fichiers différents peuvent-ils vraiment produire la même empreinte MD5 ?
Oui, c'est ce qu'on appelle une collision. Des chercheurs l'ont démontré à plusieurs reprises et c'est la raison principale pour laquelle MD5 n'est plus digne de confiance dans les vérifications critiques pour la sécurité, même si une collision accidentelle reste extrêmement improbable.
Peut-on utiliser sans risque un générateur MD5 en ligne pour un texte sensible ?
Évitez de coller des informations privées, personnelles ou relatives aux élèves dans un outil en ligne sans savoir comment cet outil traite ce qu'il reçoit. Pour une démonstration en classe, utilisez un texte d'exemple neutre plutôt que de vraies données d'élèves.
Pour finir
MD5 n'est pas un outil de sécurité au sens moderne, mais elle reste une empreinte pratique pour repérer les problèmes accidentels de fichiers : téléchargements interrompus, copies qui ne concordent pas, transferts abîmés. L'essentiel est d'en connaître la limite. Servez-vous-en pour des contrôles d'intégrité rapides et sans enjeu, et pour enseigner la notion de hachage. Pour les mots de passe, et pour vérifier qu'un fichier n'a pas été modifié par quelqu'un d'autre, utilisez des algorithmes bâtis pour cela.