Voici un tutoriel pour vérifier sous Windows l’intégrité d’un fichier téléchargé avec des empreintes MD5, SHA1 ou SHA256. Ainsi, vous serez sûr qu’il est conforme à l’original.
Table des matières
Introduction
Pour vérifier l’intégrité d’un fichier, il faut calculer avec une fonction de hachage ses empreintes numériques (sorte d’empreinte d’identité unique pour un fichier) et les comparer avec les originales communiquées par les auteurs du fichier.
Il existe plusieurs algorithmes pour trouver ces empreintes numériques :
- SHA-2 dont l’usage est recommandé aujourd’hui car plus sûr. Il permettra entre autre de calculer des empreintes SHA-256 (sur 256 bits) ou SHA-512 (512 bits).
- MD5 (128 bits) dépassé car pas assez fiable
- SHA-1 (160 bits) aussi dépassé
Les empreintes originales sont parfois mis à disposition à travers un fichier SHA256SUMS, SHA1SUMS ou MD5SUMS :
Alors pour connaitre l’empreinte originale, il suffit d’ouvrir ce fichier avec un éditeur de texte comme NotePad, NotePad++ ou autre.
Vérifier l’intégrité d’un fichier sous Windows par l’interface graphique
Sous Windows, il existe de nombreux utilitaires permettant de calculer et vérifier les empreintes de hachage d’un fichier. J’en retiendrais deux : Gtkhash et 7-Zip.
Vérifier l’intégrité d’un fichier avec Gtkhash
Gtkhash est un logiciel libre (Licence GPLv2) disponible sous Linux et Windows.
Il présente l’avantage de pouvoir comparer le résultat du calcul des empreintes d’un fichier avec une empreinte fournie. En fonction de votre architecture (32 bits ou 64 bits), vous pouvez télécharger un installeur ou un format portable depuis la page du projet sur GitHub ou sur SourceForge.
Dans son interface vous pourrez :
- Sélectionner un fichier (1)
- Calculez les différentes empreintes d’un fichier (2)
- Voir le résultat du calcul (3)
- Comparer ces résultats avec l’empreinte d’origine que vous aurez collé dans le champ (4). La pastille verte indique une comparaison réussie.
Vérifier l’intégrité d’un fichier avec 7-zip
7-Zip est un logiciel libre (Licence LGPL) connu pour la compression/décompression de fichiers.
Une de ces fonctionnalités moins connue de 7-Zip est le calcul d’empreintes de hachage.
Vous pouvez télécharger l’installeur de 7-Zip ou sa version portable depuis son site officiel. Mais vous pouvez aussi utiliser le gestionnaire de paquet pour Windows chocolatey :
choco install 7zip.install
Puis, pour calculer l’empreinte d’un fichier, ouvrez 7-Zip. Puis allez à l’emplacement du fichier. Alors, faites un clic droit de la souris sur le fichier et dans le menu choisissez CRC puis le type d’empreinte voulu.
7-Zip calculera l’empreinte :
Et l’affichera :
Si 7-Zip est installé et intégré au système, vous pouvez le faire directement depuis l’explorateur Windows :
Une fois le calcul fait, comparez l’empreinte obtenue avec l’originale. Aussi, pour cela, je vous recommande d’utiliser une des deux commandes présentées plus loin ci-dessous qui faciliteront la comparaison.
Vérifier l’intégrité d’un fichier sous Windows en ligne de commande
Sous Windows, il n’est pas forcément nécessaire d’installer un outil pour calculer une empreinte de hachage. En effet, de base, une commande PowerShell (Get-FileHash
) et un utilitaire DOS (certutil.exe
) permettent aussi de faire cela.
Vérifier l’intégrité d’un fichier avec Windows PowerShell et Get-FileHash
Calcul de l’empreinte d’un fichier dans PowerShell
Ouvrez une invite PowerShell soit :
- ou en tapant PowerShell dans le menu démarrez de Windows 10
- en faisant un clic droit de la souris sur l’icône : menu puis choisissez Windows PowerShell
puis faites :
Get-FileHash -Algorithm SHA256 chemin\vers\fichier_a_controler.ext | Format-List
chemin\vers\fichier_a_controler.ext
: est à remplacer par le chemin vers votre fichier. Exemple :D:\Download\ubuntu-20.04-desktop-amd64.iso
-Algotithm SHA256
: indique l’algorithme utiliser pour le calcul de l’empreinte. Vous pouvez remplacer SHA256 parMD5
,SHA1
,SHA512
| Format-List
(facultatif) : permet d’afficher les résultats sous forme de liste et non sur une ligne
Comparaison des empreintes dans PowerShell
Enfin, pour faciliter la comparaison avec l’empreinte originale, faites :
"empreinte_calculee" -eq "empreinte_original"
empreinte_calculee
à remplacer par l’empreinte précédemment calculéeempreinte_original
à remplacer par l’empreinte fournie
vous aurez alors comme résultat :
- True si elles sont identiques
- False si elles sont différentes
Vérifier l’intégrité d’un fichier avec une invite de commande (cmd) et certutil.exe
Calcul de l’empreinte d’un fichier dans une invite de commande (cmd)
Ouvrez une invite de commande :
Puis faites :
certutil -hashfile chemin\vers\fichier_a_controler.ext SHA256
chemin\vers\fichier_a_controler.ext
: est à remplacer par le chemin vers votre fichier. Exemple : D:\Download\ubuntu-20.04-desktop-amd64.iso
SHA256
: peut être remplacé par MD5
, SHA1
ou SHA512
Comparaison des empreintes dans une invite de commande (cmd)
Enfin pour comparer facilement le résultat avec l’empreinte originale, faites :
if "empreinte_calculee" == "empreinte_original" echo True
empreinte_calculee
à remplacer par l’empreinte précédemment calculéeempreinte_original
à remplacer par l’empreinte fournie
Ainsi si les deux empreintes sont identiques, la commande renverra True. Sinon, elle ne renverra rien.
Pour aller plus loin
- la page concernant les fonctions de hashage sur Wikipédia
- le projet GitHub de Gtkhash
- la page SourceForge de Gtkhash
- le site officiel de 7-Zip
- la documentation sur le site de Microsoft concernant la commande Get-Filehash (en anglais)
- la documentation sur le site de Microsoft concernant certutil.exe