### Checksum d'un fichier avec certuils
#theme/cyber
Lorsque vous téléchargez un fichier (comme une image ISO), il est important de s'assurer qu'il n'a pas été corrompu ou altéré. Pour vérifier son **intégrité**, il faut vérifier son **empreinte numérique** (aussi nommée **hash** ou **somme de contrôle** ou **checksum**).
> [!info] À savoir ! <span style="font-weight: normal; color: var(--text-normal)">Pour comprendre ce qu'est une somme de contrôle consultez les guide : [[guide-comprendre-le-hash|Qu'est-ce qu'une somme de contrôle ?]].</span>
Pour calculer la **somme de contrôle** d'un fichier en ligne de commande sous Windows :
- Ouvrez une invite de commande `cmd.exe`
- Positionnez-vous dans le répertoire de travail qui contient le fichier, par exemple `%userprofile%\Downloads\`.
- Exécuter `certutil` en utilisant la syntaxe :
```cmd
certutil.exe -hashfile <file> <AlgoHachage>
```
Le choix de l'**algorithme**, ou **fonction de hachage cryptographique**, dépend de l'empreinte proposée sur le site de téléchargement. Voici une liste des algorithmes pris en charge par `certutils` :
- MD2, MD4, MD5
- SHA1, SHA256, SHA384, SHA512.
Par exemple, pour calculer le hash du fichier "debian-13.1.0-amd64-netinst.iso" en avec l'algorithme de hachage "SHA512" :
```
certutil -hashfile debian-13.1.0-amd64-netinst.iso SHA512
```
Le hash sera calculé et affiché :
![[_img-kb-checksum-win-certutils.png]]
Il suffit ensuite de comparer l'empreinte SHA512 calculée par **certutil** avec l'empreinte fournie sur le site de téléchargement de votre fichier. Par exemple sur sur le site debian.org via le fichier [SHA512SUMS](https://cdimage.debian.org/debian-cd/13.1.0/amd64/iso-cd/SHA512SUMS).
En PowerShell, utilisez la fonction `-eq` pour comparer deux chaines de caractères. Par exemple ci-dessous, lorsque 2 chaînes de caractères sont identiques, la fonction renvoie la valeur `True` :
![[_img-kb-checksum-win-certutils-1.png|300]]
PowerShell propose également la commande native `Get-FileHash`, plus moderne et plus simple que la commande `certutil` (cf. "[[kb-checksum-win-powershell|Checksum d'un fichier sous PowerShell (Get-FileHash)]]").