ToolActToolAct

Outil de Vérification MD5 de Fichier

Calculer le hash MD5 d'un fichier et vérifier son intégrité

Télécharger un fichier

Glisser-déposer un fichier ici

Supporte tout type et taille de fichier

Vérifier la somme de contrôle

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

  1. Cliquez sur la zone de chargement ou glissez un fichier sur la page
  2. Cliquez sur le bouton « Calculate MD5 »
  3. Attendez la fin du calcul puis consultez la valeur MD5
  4. 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

Générer une somme de contrôle MD5 pour un fichierSélectionnez un fichier et calculez son MD5 de 128 bits avec indication de progression, puis copiez l’empreinte hexadécimale en minuscules pour les systèmes qui exigent encore cette somme de contrôle ancienne. Le fichier est lu sous forme de Blob et haché entièrement dans le navigateur — il n’est jamais téléchargé, de sorte que le calcul fonctionne sur des documents confidentiels ou des échantillons fournisseur sans envoyer le contenu nulle part.
Comparer un fichier à un MD5 attenduColez une valeur MD5 connue et vérifiez si l’empreinte de 32 caractères générée correspond. Cela couvre les vérifications de transfert, les exigences fournisseurs, la détection de doublons et les anciennes archives de versions qui publient encore des valeurs MD5. Utilisez des algorithmes plus robustes lorsque la somme de contrôle affecte la confiance ou la sécurité — les attaques de collision connues de MD5 le rendent inadapté à la preuve de falsification.
Éviter d’utiliser MD5 comme garantie de sécuritéL’outil convient pour la compatibilité et les vérifications d’intégrité rapides, mais MD5 est vulnérable aux collisions depuis l’attaque de Wang Xiaoyun en 2004, et le malware Flame en 2012 a démontré une falsification de collision MD5 réelle contre les signatures de code Microsoft. Pour la vérification sensible à la sécurité, passez à l’outil file-hash avec SHA-256 ou mieux. La conception exclusivement locale garde le contenu du fichier sur votre appareil — seule l’empreinte circule entre la page et le champ de comparaison.
Vérifier le MD5 contre des téléchargements miroirsLes miroirs open source et les anciennes pages de firmware publient encore des sommes MD5 pour chaque version. Générez l’empreinte de 32 caractères du fichier téléchargé et confirmez qu’elle correspond à la chaîne listée avant de flasher un appareil ou d’installer le livrable. La différence entre minuscules et majuscules en hexadécimal est une cause fréquente de non-correspondance silencieuse, de sorte que la comparaison s’effectue sur forme normalisée.
Passer à SHA-256 pour tout ce qui concerne la confianceMD5 convient pour détecter une corruption accidentelle (un bit inversé produit toujours une empreinte de 128 bits totalement différente), mais la même empreinte peut être falsifiée par un attaquant. Passez à l’option SHA-256 ou SHA-512 dès que la somme de contrôle provient d’un tiers et que le fichier est utilisé en production — SHA-256 est résistant aux collisions et reste la norme pour les versions signées.

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.