Outil 07 / 08

Vérifier le hash d'un fichier

Un fichier téléchargé peut être incomplet ou altéré sans que rien ne le laisse deviner à l'ouverture. Comparer son empreinte (MD5, SHA-1, SHA-256, SHA-512) à celle publiée par la source d'origine confirme qu'il s'agit bien du même contenu, octet pour octet.

Glissez un fichier ici

Le fichier entier est lu localement pour le calcul. Rien n'est envoyé sur un serveur.

Empreinte, checksum, hash : le même principe

Un algorithme de hachage produit une chaîne de longueur fixe à partir d'un fichier : la moindre différence de contenu, même un seul octet, change entièrement le résultat. Deux fichiers identiques produisent toujours la même empreinte, et la probabilité que deux fichiers différents produisent la même empreinte est négligeable pour SHA-256 et SHA-512. C'est ce principe qui permet de vérifier l'intégrité d'un téléchargement sans avoir à comparer les fichiers octet par octet.

Questions fréquentes

Pourquoi le hash calculé ne correspond-il pas à celui publié par le site d'origine ?

Trois causes possibles : un téléchargement interrompu ou corrompu (le cas le plus fréquent), un fichier modifié entre-temps (mise à jour du site sans mise à jour de l'empreinte affichée), ou une empreinte mal copiée (espace ou caractère manquant). Retélécharger le fichier et recomparer résout la plupart des cas.

MD5 est réputé cassé : pourquoi le proposer encore ?

MD5 et SHA-1 sont impropres à un usage de sécurité (on peut construire un fichier différent avec le même hash), mais restent valables pour détecter une corruption accidentelle ou un téléchargement incomplet — l'usage le plus courant de cet outil. De nombreux éditeurs ne publient d'ailleurs encore qu'un hash MD5 ou SHA-1 sur leurs pages de téléchargement.

Le fichier est-il envoyé sur un serveur pour calculer son empreinte ?

Non. Le calcul utilise l'API Web Crypto du navigateur (et une implémentation MD5 en JavaScript, cet algorithme n'étant pas proposé par cette API) directement sur le fichier lu localement. Aucun octet n'est transmis à un serveur, y compris pour de gros fichiers.

Pour aller plus loin

Comment savoir si un fichier est corrompu →

Extension, MIME, magic bytes, conteneur : le vocabulaire des formats de fichiers →

Identifier le vrai format d'un fichier par sa signature binaire →