15/11/2024

AstucesPowerShell

PowerShell : comment calculer le hash d’un fichier ?

I. Présentation

Dans ce tutoriel, nous allons voir comment calculer le hash d'un fichier avec PowerShell ! Depuis PowerShell 4.0, le cmdlet nommé "Get-FileHash" est présent et il permet de calculer le hash d'un ou de plusieurs fichiers selon plusieurs algorithmes.

PowerShell 4.0 est disponible nativement depuis Windows 8.1 et Windows Server 2012 R2, ce qui en fait une version très largement répandue aujourd'hui.

Le hash d'un fichier est souvent utilisé pour vérifier l'intégrité du fichier. Les algorithmes de hachage couramment utilisés comprennent MD5, SHA-1, SHA-256, etc. Chacun de ces algorithmes produit un hash de longueur différente.

Par exemple, si vous téléchargez un fichier à partir d'Internet, vous pouvez comparer le hash du fichier téléchargé avec le hash fourni par le site web pour vous assurer que le fichier n'a pas été altéré pendant le téléchargement. Si les deux valeurs sont égales, vous pouvez affirmer que le fichier est authentique (vis-à-vis de la version d'origine). Ceci peut s'avérer utile aussi pour de l'échange de données.

Vous pouvez calculer le hash des différents types de fichiers : images ISO, packages d'installation d'applications (EXE, MSI, etc.), et tout autre fichier selon vos besoins.

Version originale de l'article : 11 décembre 2013.

II. Utilisation de Get-FileHash

Intéressons-nous au cmdlet évoqué en introduction de cet article.

Voici la syntaxe à utiliser :

Get-FileHash -Algorithm <Nom-algorithme> -Path <Chemin-vers-fichier>

Concernant les algorithmes, voici ceux disponibles avec Windows PowerShell 5.1 :

  • MAC Triple DES
  • MD5
  • RIPEMD160
  • SHA1
  • SHA256
  • SHA384
  • SHA512

Attention, avec PowerShell 7, le nombre d'algorithmes pris en charge est différent et plus limité : MD5, SHA1, SHA256, SHA384 et SHA512. Dans les deux cas, SHA256 est la valeur par défaut du paramètre "-Algorithm".

Ouvrez une console pour essayer la commande. Par exemple, pour calculer le hash SHA1 du fichier "it-connect.txt" situé dans "C:\files\" :

Get-FileHash -Algorithm SHA1 -Path "C:\files\it-connect.txt"

Cela donnera un résultat de ce type où l'on voit le hash :

getfilehash2

Que faire de cette information ? La valeur du hash retournée ici peut être comparée avec la valeur de hash fournie sur le site depuis lequel vous avez téléchargé le fichier. Sinon, vous pouvez aussi calculer le hash et au moment de transmettre le fichier à quelqu'un, vous lui fournissez aussi le hash. Ceci lui permettra de vérifier l'authenticité du fichier reçu.

Vous pouvez aussi calculer le hash d'un ensemble de fichiers. Voici un exemple :

Get-FileHash -Algorithm SHA256 -Path *.* | Format-List Path,Hash

Ci-dessous, le résultat en image. Le résultat est identique à chaque fois, car il s'agit d'un même fichier dupliqué : d'ailleurs le hash identique permet de l'affirmer.

Calculer hash SHA256 en PowerShell

III. Conclusion

Vous êtes désormais en mesure de calculer un hash facilement sous Windows, avec une commande simplissime mais à connaître : Get-FileHash.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.