Comment vérifier un hash soi-même
Par BlockchainSignPublié le

Vérifier un hash est une opération de trente secondes avec les outils déjà présents sur votre ordinateur. C'est aussi l'étape qui transforme « on m'a dit que ça correspond » en « j'ai vérifié ».
Les commandes
macOS et Linux
shasum -a 256 nom_du_fichier
ou, sur la plupart des distributions Linux :
sha256sum nom_du_fichier
Windows
certutil -hashfile nom_du_fichier SHA256
PowerShell
Get-FileHash nom_du_fichier -Algorithm SHA256
Dans un navigateur — le générateur de hash SHA-256 gratuit de ce site. Il utilise l'API Web Crypto, s'exécute entièrement sur votre machine et fonctionne même sans connexion. Cette dernière propriété est essentielle : vous pouvez confirmer qu'aucune donnée n'est envoyée en débranchant le câble.
Tous ces outils produisent la même chaîne hexadécimale de 64 caractères pour les mêmes octets. Si deux outils divergent, l'un d'eux hache quelque chose de différent.
Comparer sans s'y perdre
Une chaîne de 64 caractères est facile à survoler et à lire incorrectement. Voici quelques habitudes plus sûres :
Comparez les six premiers et les six derniers caractères pour une vérification rapide, puis collez les deux chaînes dans un éditeur de texte pour une comparaison complète lorsque c'est important.
Laissez la machine faire le travail. Sur macOS ou Linux :
[ "$(shasum -a 256 fichier.pdf | cut -d' ' -f1)" = "hash_attendu_ici" ] && echo MATCH || echo DIFFERENTAttention à la casse. La sortie hexadécimale est insensible à la casse sémantiquement, mais les outils diffèrent dans ce qu'ils affichent. Mettez tout en minuscules avant de comparer.
Quand le hash ne correspond pas
Une divergence signifie que les octets sont différents. C'est tout ce que cela signifie, et les causes habituelles sont banales.
Le fichier a été réenregistré. Ouvrir un document et le sauvegarder à nouveau le réécrit — souvent avec une nouvelle date de modification intégrée, ou une passe de compression différente. Le contenu semble identique, mais les octets ne le sont pas.
Il a été exporté plutôt que copié. Un PDF exporté deux fois depuis la même source est généralement deux fichiers différents.
Le transfert l'a modifié. Certains outils « corrigent » utilement les fins de ligne dans les fichiers texte, convertissant entre LF et CRLF. Cela change chaque ligne.
Vous avez haché la mauvaise chose. Hacher un dossier, un alias, ou une archive zip que vous avez reconstruite au lieu de l'original. Reconstruire une archive zip reproduit presque jamais les octets originaux, car les horodatages et l'ordre sont stockés à l'intérieur.
Quelque chose est vraiment erroné. Rare, mais c'est la raison d'être du contrôle.
La leçon à retenir : archivez le fichier exact que vous avez certifié et travaillez sur une copie. Un horodatage couvre des octets, pas du sens.
Pourquoi « vérifiez-le vous-même » n'est pas un slogan
Il y a une raison spécifique à insister là-dessus plutôt que d'accepter une coche verte sur un site web.
Une page de vérification que vous n'avez pas écrite, s'exécutant sur un serveur que vous ne contrôlez pas, affichant un résultat que vous ne pouvez pas reproduire, est une affirmation. Elle est vraie dans la plupart des cas, mais elle reste une affirmation. Lorsque le registre compte — un litige, un audit, une réclamation — vous voulez un contrôle qui ne passe pas par la partie ayant un intérêt dans la réponse.
C'est aussi la norme que nous nous fixons. Notre page de vérification explique chaque contrôle avec une note « comment faire ceci vous-même » à côté, car un outil de vérification qui ne peut pas être remplacé par trois commandes shell fait quelque chose qu'il n'a pas besoin de faire.
Ce qu'un hash correspondant prouve
Que deux fichiers sont byte-identiques. Rien de plus, et c'est déjà beaucoup.
Cela ne vous dit pas d'où vient l'un ou l'autre fichier, qui l'a créé, ou quand — ces éléments proviennent des preuves environnantes. Dans un certificat d'horodatage, le hash est le lien entre votre fichier et un registre public daté ; seul, il est une empreinte numérique sans date attachée.
Pour savoir ce qu'est un hash et pourquoi il fonctionne, voir qu'est-ce qu'un hash SHA-256.