Outil de Vérification MD5 de Fichier
Calculer le hash MD5 d'un fichier et vérifier son intégrité
Glisser-déposer un fichier ici
Supporte tout type et taille de fichier
Qu'est-ce que le MD5 de fichier ?
MD5 (Message-Digest Algorithm 5) est un algorithme de hachage largement utilisé qui mappe tout contenu de fichier en un condensé de longueur fixe de 128 bits (32 caractères hexadécimaux). Tout petit changement dans le contenu du fichier produit une valeur MD5 complètement différente. L'outil de vérification MD5 de fichier est couramment utilisé pour vérifier l'intégrité des fichiers, s'assurer qu'ils n'ont pas été falsifiés ou corrompus pendant le transfert ou le téléchargement. File MD5 sert souvent à vérifier rapidement si un fichier est resté inchangé ou correspond à une somme publiée. L’algorithme est rapide et très compatible, mais les collisions connues le rendent inadapté aux décisions de confiance cryptographique. MD5 peut encore apparaître dans de vieux contrôles de téléchargement, la détection simple de doublons ou des flux de compatibilité. Pour une vérification d’intégrité liée à la sécurité, préférez SHA-256 ou plus fort et récupérez la somme depuis une source fiable.
Comment utiliser
Comment utiliser
- Cliquez sur la zone de chargement ou glissez un fichier sur la page
- Cliquez sur le bouton « Calculate MD5 »
- Attendez la fin du calcul puis consultez la valeur MD5
- Vous pouvez saisir une valeur MD5 connue dans la section de vérification pour la comparer
Limites de vérification
- MD5 est utile pour des vérifications rapides d'identité de fichiers, mais sa résistance aux collisions est insuffisante pour des usages sensibles en sécurité.
- Pour les téléchargements ou les versions, comparez les hachages d'une source fiable et privilégiez SHA-256 lorsqu'il est disponible.
Cas d’utilisation
Principe technique
MD5 est le Message-Digest Algorithm 5 défini dans RFC 1321 (Ron Rivest, 1992). Il produit un digest de 128 bits / 16 octets affiché en 32 caractères hexadécimaux. L'algorithme suit la construction Merkle-Damgård : l'entrée est rembourrée pour que sa longueur en bits soit congrue à 448 mod 512 (un bit à 1 suivi de zéros), la longueur d'origine est ajoutée comme entier little-endian sur 64 bits, puis le message paddé est découpé en blocs de 512 bits. Chaque bloc met à jour un état interne de 128 bits (A, B, C, D) initialisé aux constantes A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476, en exécutant 64 rondes en quatre groupes de 16 qui appliquent les fonctions bit-à-bit F(x,y,z) = (x AND y) OR ((NOT x) AND z), G(x,y,z) = (x AND z) OR (y AND (NOT z)), H(x,y,z) = x XOR y XOR z et I(x,y,z) = y XOR (x OR (NOT z)), combinées à la constante de ronde T[i] = floor(2^32 * abs(sin(i+1))) et à une rotation à gauche. L'état final concaténé en little-endian est le digest. Le MD5 de l'entrée vide vaut d41d8cd98f00b204e9800998ecf8427e et sert de vérification rapide. Les navigateurs n'exposent pas MD5 via crypto.subtle (la spécification Web Crypto du W3C l'omet volontairement à cause des attaques par collision) ; cet outil utilise donc une implémentation MD5 en JavaScript pur qui s'exécute entièrement dans le navigateur. Le fichier est chargé en mémoire sous forme d'ArrayBuffer, le digest de 16 octets est calculé en une passe et rendu en 32 caractères hexadécimaux minuscules. Comme le travail tourne sur le thread principal, hasher un fichier de plusieurs Go monopolise ce thread jusqu'à la fin ; pour les très gros fichiers, préfère un outil de bureau qui streame les octets depuis le disque. MD5 est cryptographiquement cassé sur la résistance aux collisions. Wang Xiaoyun et Yu Hongbo ont publié la première attaque par collision pratique en 2004 (CRYPTO 2005), ramenant le coût d'une collision à environ 2^39 opérations. En 2008, Sotirov et al. ont utilisé des collisions à préfixe choisi pour forger un certificat intermédiaire d'autorité de certification frauduleux ; en 2012, le malware étatique Flame a employé une collision MD5 à préfixe choisi jusque-là inconnue pour forger un certificat de signature de code de Microsoft Terminal Server Licensing. NIST a interdit MD5 pour les signatures numériques dans SP 800-131A en 2011 ; le CMU CERT a émis la note de vulnérabilité VU#836068 qualifiant MD5 d'« unsuitable for further use ». MD5 reste acceptable pour détecter une corruption accidentelle (basculer un bit fait basculer ~64 des 128 bits de sortie via l'effet d'avalanche) et détecter des doublons sur des entrées de confiance, mais ne doit pas être utilisé là où un attaquant peut contrôler ou prédire l'une des entrées.
- MD5 produit un condensé de 128 bits / 16 octets, encodé en 32 caractères hexadécimaux minuscules ; spécifié dans la RFC 1321 (Rivest, 1992).
- Constantes d'état initial A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476 ; 64 tours en quatre groupes de 16 utilisant les fonctions bit à bit F/G/H/I et les constantes par tour T[i] = floor(2^32 * |sin(i+1)|).
- Le MD5 de l'entrée vide est d41d8cd98f00b204e9800998ecf8427e — une vérification rapide que le pipeline de hachage renvoie un condensé valide.
- Les navigateurs n'exposent pas MD5 via crypto.subtle (Web Crypto du W3C l'omet volontairement) ; cet outil utilise une implémentation MD5 en JavaScript pur qui charge le fichier en ArrayBuffer, calcule le digest de 16 octets en une passe et l'affiche en 32 caractères hex minuscules.
- Profil mémoire : le contenu complet du fichier est lu dans un seul ArrayBuffer avant d'être hashé, donc les fichiers de plusieurs Go nécessitent autant de mémoire dans l'onglet ; pour les fichiers plus gros que ce que ton onglet peut contenir, utilise un outil de bureau (md5sum, certutil -hashfile, Get-FileHash) qui streame depuis le disque.
- Attaques de collision : Wang et Yu (2004) ~2^39 ops ; Sotirov et al. (2008) collision à préfixe choisi utilisée pour forger un certificat CA frauduleux ; malware Flame (2012) a utilisé une collision à préfixe choisi pour forger un certificat de signature de code Microsoft.
- Le NIST SP 800-131A a interdit MD5 pour les signatures numériques en 2011 ; MD5 n'est acceptable que pour les vérifications d'intégrité non adversariales et la détection de doublons — passez à SHA-256 ou plus dès que la somme de contrôle affecte la confiance.
Exemples
MD5 d'un fichier vide (constante bien connue)
Fichier : empty.txt (0 octet)
MD5 : d41d8cd98f00b204e9800998ecf8427e
Cette valeur est le MD5 d'une entrée vide -> un contrôle rapide
de cohérence du pipeline de hachage de bout en bout.
(Vecteur de référence RFC 1321 pour la chaîne vide.)Vérifier un installateur téléchargé
Fichier : setup.bin (3 octets, contenu : abc)
MD5 calculé : 900150983cd24fb0d6963f7d28e17f72
MD5 fournisseur : 900150983cd24fb0d6963f7d28e17f72
Correspondance -> fichier copié ou téléchargé correctement.
Différence -> retéléchargez, les octets ont été corrompus en transit.
(La valeur MD5 est le vecteur de référence RFC 1321 pour l'entrée
de 3 octets 'abc'. Remplacez l'entrée par le vrai installateur en
pratique ; la sortie de l'algorithme est déterministe.)Comparer deux versions d'un document
report-v1.txt (0 octet) -> MD5 : d41d8cd98f00b204e9800998ecf8427e
report-v2.txt (3 octets, contenu : abc)
-> MD5 : 900150983cd24fb0d6963f7d28e17f72
Hachages différents = contenus différents. Même un changement d'un caractère
donne un MD5 totalement différent : c'est ainsi que fonctionnent les contrôles d'intégrité.
(Les deux valeurs sont des vecteurs de référence MD5 RFC 1321.)Chaîne hello world vs fichier
MD5("hello") = 5d41402abc4b2a76b9719d911017c592
MD5("hello\n") = b1946ac92492d2347c6235b4d2611184
Un saut de ligne final modifie le condensé : un fichier nommé hello.txt
avec ce contenu mais sans \n final correspond à la première ligne, et
un fichier enregistré avec un \n final correspond à la deuxième ligne. C'est un
piège courant lors de la comparaison avec un MD5 publié qui a été
produit sur un système d'exploitation différent.FAQ
Le fichier est-il téléversé sur un serveur ?
Non. MD5 est calculé localement dans votre navigateur via la File API. Les octets sont lus en mémoire par blocs et hachés sans quitter l'appareil. Vous pouvez le confirmer dans l'onglet Réseau pendant l'exécution du hachage.
Est-il toujours sûr d'utiliser MD5 ?
Pas pour la sécurité. MD5 est cassé depuis 2004 — des collisions peuvent être générées rapidement, donc il ne doit pas servir aux signatures numériques, au stockage de mots de passe ou aux contrôles anti-altération. Il reste utile comme somme de contrôle rapide pour détecter une corruption accidentelle (erreurs de téléchargement, erreurs disque).
Pourquoi vois-je parfois MD5 en minuscules et parfois en majuscules ?
MD5 produit 128 bits = 16 octets = 32 caractères hexadécimaux. Que ces caractères hexadécimaux soient écrits en majuscules ou en minuscules est purement un choix d'affichage ; les octets sous-jacents sont identiques et tout vérificateur doit comparer sans tenir compte de la casse.
Quelle taille de fichier puis-je hacher ici ?
Les navigateurs de bureau modernes gèrent plusieurs Go avant de manquer de mémoire. Les navigateurs mobiles sont plus serrés — quelques centaines de Mo est typique. Pour les très gros fichiers, utilisez une commande système (md5sum sous Linux, certutil -hashfile sous Windows, md5 sous macOS), qui lit en flux depuis le disque.
Pourquoi mon MD5 diffère-t-il de la sortie d'un autre outil ?
Presque toujours parce que l'entrée diffère d'un octet : fins de ligne différentes (CRLF vs LF), un BOM UTF-8, des espaces en fin de ligne ou une version de fichier différente. Le hachage lui-même est déterministe, donc une entrée identique produit une sortie identique sur toutes les implémentations MD5 conformes.
Quelle est la différence entre le MD5 d'un texte et le MD5 d'un fichier ?
MD5 hache des octets, pas des caractères. Le « MD5 d'un texte » encode d'abord la chaîne (généralement en UTF-8) puis hache ces octets ; le « MD5 d'un fichier » lit directement les octets du fichier. La même chaîne enregistrée en UTF-8 versus UTF-16 produira des valeurs MD5 différentes.
Puis-je utiliser MD5 pour détecter les fichiers en double ?
Oui, à la réserve près que les collisions connues de MD5 signifient qu'un acteur malveillant pourrait fabriquer deux fichiers différents avec le même MD5. Pour la détection de doublons accidentels (photos, téléchargements), MD5 est suffisamment rapide et fiable. Pour une déduplication de confiance, utilisez SHA-256.