Le code de cette page n'a pas démarré.

Ouvrir index.html directement depuis un dossier bloque les modules JavaScript, si bien que rien ne se passera au moment de choisir un fichier. Servez plutôt le dossier en http :

powershell -ExecutionPolicy Bypass -File serve.ps1

Ouvrez ensuite http://localhost:8080/.

Somme de contrôle — MD5, SHA-1, SHA-256, SHA-512

Vérifier un téléchargement face au nombre publié par son auteur, sans l’envoyer à personne.

Langue: Français
Voir le code
Vos fichiers sont traités dans votre navigateur. Aucun envoi pour traitement.

Une somme de contrôle est un calcul sur les octets de votre fichier, et il se fait ici, dans cette page, sur votre propre processeur. Le fichier est lu sur le disque par tranches de quatre mégaoctets, et chaque tranche est jetée dès qu’elle a été comptée : rien n’est donc jamais reconstitué quelque part, ni en mémoire, ni encore moins sur un serveur. Il n’y a aucun serveur au bout de cette page à qui envoyer un fichier, même si quelque chose ici le voulait.

Vérification en direct : vérification…

Hors ligne : vérification…

Ne nous croyez pas sur parole : ouvrez les outils de développement, regardez l’onglet Réseau et vérifiez un fichier. Aucune requête ne transporte le moindre octet, ni son nom, ni sa taille. Ou débranchez internet et vérifiez-en un quand même.

1 Choisissez un ou plusieurs fichiers

Sélectionnez plusieurs fichiers pour vérifier une liste de sommes. Chaque fichier est lu par morceaux, un à la fois. Une nouvelle sélection remplace celle-ci.

2 Les sommes de contrôle

MD5 et SHA-256 sont calculés par défaut, parce qu'à eux deux ils couvrent presque toutes les pages de téléchargement. Cochez-en un autre et le fichier est relu pour lui : la lecture est la moitié lente, donc tout ce qui est coché avant le choix du fichier sort d'une seule passe.

Quelles sommes de contrôle calculer

3 Comparer à ce qui est attendu

Collez la somme de contrôle donnée par la page de téléchargement. La forme importe peu : de l'hexadécimal seul, la sortie de sha256sum, un fichier SHA256SUMS entier, la forme SHA256 (file) = …, ou l'attribut integrity d'une balise de script. L'algorithme se déduit de la longueur, il n'y a donc rien à choisir.

Voir en Markdown

Comment vérifier un téléchargement avec sa somme de contrôle

  1. Choisissez le fichier.Déposez-le sur la zone ou sélectionnez-le à la main. Il est lu par morceaux directement sur votre disque ; rien ne part nulle part pendant ce temps, et il n’y a pas de taille à partir de laquelle la page renonce.
  2. Laissez-la lire.MD5 et SHA-256 sont calculés par défaut, en une seule passe. La barre indique où en est la lecture et à quelle vitesse. Une grande image disque prend à peu près le temps qu’il faudrait pour la copier, puisque c’est la même quantité de lecture.
  3. Collez ce qu’elle devrait donner.Ce que la page de téléchargement vous a donné, sous n’importe quelle forme : de l’hexadécimal seul, une ligne de sortie de sha256sum, un fichier SHA256SUMS entier, ou l’attribut integrity pris sur une balise de script. L’algorithme se déduit de la longueur, et la bonne case se coche toute seule.
  4. Lisez la réponse, pas la couleur.La page dit en une phrase si c’est bien le fichier que décrit cette somme de contrôle. Si elle correspond, les octets sont identiques à ceux qu’a mesurés l’auteur. Sinon, ils ne le sont pas, et il vaut mieux retélécharger avant d’ouvrir quoi que ce soit.
  5. Emportez les sommes si vous en avez besoin.Copiez-en une, copiez-les toutes, ou enregistrez-les dans un petit fichier texte, sous la forme avec l’algorithme en tête qu’écrivent les outils en ligne de commande. Le nom de l’algorithme voyage ainsi avec le nombre.

La version longue

Comment vérifier un téléchargement avec sa somme de contrôle Comment comparer une somme MD5 ou SHA-256 sous Windows, macOS et Linux ou dans le navigateur, ce qu'une correspondance prouve vraiment, et l'erreur qui vide l'exercice de son sens.

Questions

Mon fichier est-il envoyé quelque part ?

Non. Votre propre navigateur le lit sur votre disque et le calcule sur votre propre processeur, par tranches de quatre mégaoctets. Cet outil n’a pas de partie serveur, et la Content-Security-Policy de la page énumère toutes les adresses qu’elle peut contacter : aucune ne nous appartient. Débranchez le réseau et cela continue de fonctionner.

Y a-t-il une limite de taille ?

Non. Le fichier n’est jamais gardé entier : il est lu par morceaux, et chaque morceau est compté puis jeté, de sorte qu’une image disque de quarante gigaoctets consomme les mêmes quelques mégaoctets de mémoire qu’un fichier texte. Ce que cela coûte, c’est du temps, et la page vous dit combien au fur et à mesure.

C’est la raison pour laquelle les algorithmes sont écrits ici plutôt que confiés au crypto.subtle.digest du navigateur, qui serait plus rapide. Cet appel prend le message entier dans un seul tampon et il n’existe aucun moyen de lui donner un fichier par morceaux : s’en servir aurait fait dépendre la taille du plus gros fichier vérifiable de la mémoire que cet onglet obtient. Sur un téléphone, cela fait quelques centaines de mégaoctets, et ce que les gens veulent le plus vérifier, ce sont des images disque.

La somme correspond. Qu’est-ce que cela prouve au juste ?

Que les octets présents sur votre disque sont ceux que quelqu’un avait sous les yeux en notant ce nombre. Rien de plus, et les limites méritent d’être précises.

Cela prouve que le téléchargement n’a pas été tronqué, ni abîmé par un disque défaillant, ni remplacé en chemin. Cela ne prouve pas que le fichier est sans danger, car un auteur peut mesurer un logiciel malveillant aussi exactement qu’autre chose. Et cela prouve très peu si la somme venait de la même page, par la même connexion, que le fichier : qui pouvait changer l’un pouvait changer l’autre. Une somme de contrôle vaut surtout quand elle vous parvient par une autre voie : un fichier SHA256SUMS signé, l’annonce de version d’une distribution, un second miroir, ou un gestionnaire de paquets qui la connaît déjà.

Elle ne correspond pas. Et maintenant ?

Retéléchargez d’abord le fichier, au même endroit. Un transfert interrompu ou repris est de très loin la cause la plus fréquente, et une deuxième copie règle généralement l’affaire.

Si la deuxième copie donne la même mauvaise réponse, vérifiez que vous comparez à la bonne ligne : les pages de version listent plusieurs fichiers, et la somme de la version ARM ne correspondra jamais à celle de la version x86. Vérifiez ensuite le numéro de version. Si tout cela est juste et que cela ne correspond toujours pas, n’ouvrez pas le fichier. Prenez-le sur un autre miroir et comparez les deux sommes entre elles.

Lequel choisir ?

Celui que l’auteur a publié. Tout l’exercice consiste à comparer à son nombre, et vous ne pouvez pas choisir le sien à sa place.

Si vous produisez une somme plutôt que d’en vérifier une, prenez SHA-256. MD5 et SHA-1 sont cassés au sens qui compte : deux fichiers différents ayant la même empreinte peuvent être fabriqués exprès, en quelques heures pour MD5 et pour un coût modéré pour SHA-1. Cela ne les rend pas inutiles contre les accidents, car un téléchargement tronqué ne tombera pas par hasard sur la même empreinte ; mais cela veut dire qu’aucun des deux ne peut plus vous assurer que personne n’a touché au fichier. SHA-384 et SHA-512 vont très bien et ne valent pas mieux en pratique ; ils sont là parce que certains projets les publient.

Pourquoi MD5 est-il là s’il est cassé ?

Parce que c’est encore ce qui est imprimé. Des miroirs, des pages de micrologiciels, des serveurs universitaires et quantité de sites de constructeurs ont publié un MD5 il y a vingt ans et n’ont pas rouvert la page depuis. Un outil qui refuserait d’en calculer un refuserait de répondre à la question avec laquelle ses visiteurs arrivent vraiment.

Ce qu’il peut faire, en revanche, c’est dire ce que la réponse vaut, et c’est le rôle de la note à côté de la case. Un MD5 qui correspond écarte toujours un téléchargement abîmé. Il n’écarte pas un téléchargement trafiqué.

Quels formats puis-je coller dans le champ de comparaison ?

Tous les formats courants, et la page reconnaît elle-même lequel c’est.

De l’hexadécimal seul, avec ou sans espaces. Une ligne de sortie de md5sum ou sha256sum, avec le nom de fichier derrière. Un fichier SHA256SUMS entier de quarante lignes : c’est alors la ligne qui nomme votre fichier qui est retenue. La forme BSD, SHA256 (disk.iso) = …. Une étiquette devant, comme SHA-256: …. Et un attribut de subresource integrity, sha384-…, qui est en base64 plutôt qu’en hexadécimal et qui est décodé avant la comparaison.

L’algorithme se déduit de la longueur : 32 caractères hexadécimaux font un MD5, 40 un SHA-1, 64 un SHA-256, 96 un SHA-384 et 128 un SHA-512. Aucun n’a la longueur d’un autre, il n’y a donc rien à choisir et rien à se tromper.

Le résultat sera-t-il le même que celui de sha256sum ou de certutil ?

Oui, octet pour octet. Ce sont des spécifications exactes avec des vecteurs de test publiés, et chaque algorithme d’ici est vérifié à chaque construction face à ces vecteurs et face à l’implémentation du système d’exploitation.

La seule différence visible est la présentation. Le certutil -hashfile de Windows écrit en majuscules avec des espaces ; cette page écrit en minuscules, ce qu’emploie la quasi-totalité des auteurs. La comparaison ignore les deux, si bien qu’une somme copiée depuis certutil correspond à une somme en minuscules collée ici.

Puis-je comparer deux fichiers entre eux ?

Oui, avec une étape de plus : vérifiez le premier, copiez sa somme, choisissez ensuite le second et collez cette somme dans le champ. Si les deux fichiers sont identiques, la page le dira.

Cela vaut d’être connu pour le cas où les sommes de contrôle sont discrètement imbattables : savoir si la copie sur le disque de sauvegarde est vraiment le même fichier que celui de l’ordinateur portable, quand les deux annoncent la même taille et la même date.

Est-ce que cela modifie mon fichier ?

Non. Cet outil ne fait que lire. Il n’y a pas de fichier de sortie, pas de réencodage et rien qui soit réécrit : la seule chose téléchargeable est un petit fichier texte listant les sommes. Votre original reste intact sur votre disque, ce qui est aussi la réponse honnête à la question de ce qui se passe si vous fermez l’onglet.

Est-ce gratuit, et faut-il un compte ?

C’est gratuit, et il n’y a ni compte, ni inscription, ni période d’essai. Il n’y a pas de limite de taille de fichier ni de limite au nombre de fichiers vérifiés. Le site porte de la publicité, et c’est elle qui le paie ; on ne lui donne rien sur votre fichier.

Est-ce que cela fonctionne hors ligne ?

Oui. Chargez la page une fois, débranchez internet, et elle continue de fonctionner. C’est aussi la façon la plus simple de prouver que rien n’est envoyé : un outil qui expédierait votre fichier ailleurs pour le calculer s’arrêterait à la seconde où vous débranchez.