Obtenir des hachages de fichiers à l'aide de Windows PowerShell

Obtenir des hachages de fichiers peut être très utile. Cela peut être utilisé par exemple pour s’assurer que les fichiers sauvegardés ne sont ni corrompus ni modifiés (en générant des hachages avant et après le processus), ou pour s’assurer que personne n’a falsifié un fichier important.

Vous pouvez également le voir sur les sites de téléchargement, mais son utilisation est limitée. La raison est simple: si un attaquant parvient à modifier le fichier téléchargé, il est possible que le site Web ait également été compromis. Cela pourrait théoriquement au moins signifier que le hachage de fichier affiché sur le site a également été modifié pour s'adapter à la nouvelle version malveillante du téléchargement.

Nous avons examiné un nombre considérable de programmes liés au hachage dans le passé: de l'extension de shell Windows HashTab, en passant par HashMyFiles en utilitaire de vérification de fichiers MD5 et MD5 de Nirsoft.

Obtenir des hachages de fichiers à l'aide de Windows PowerShell

Si vous devez générer rapidement le hachage d'un fichier sur une machine Windows, vous pouvez également utiliser PowerShell pour cela.

Cela peut ne pas être aussi confortable que certains programmes de hachage, mais il s’agit d’une implémentation native qui ne nécessite pas de logiciel tiers. Utile dans des environnements restreints, par exemple, ou lorsqu'il n'y a pas de connexion Internet disponible pour télécharger ces programmes.

La génération de hachage a été intégrée à PowerShell 4.0. Il est inclus dans Windows 8.1 et Windows Server 2012 R2 et est également disponible pour Windows 7 Service Pack 1, Windows Server 2012 et Windows Server 2008 R2 Service Pack 1.

  1. Appuyez sur la touche Windows, tapez PowerShell, puis appuyez sur la touche Entrée pour le démarrer.

La commande principale est get-filehash FILEPATH, par exemple, get-filehash c: \ test.txt .

Get-FileHash utilise l'algorithme Sha256 par défaut. Vous pouvez spécifier un algorithme différent à la place en utilisant le paramètre -Algorithm.

Sont pris en charge: SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160

Notez que MD5 et SHA1 ne sont plus considérés comme sécurisés mais sont toujours pris en charge.

Ainsi, pour générer un hachage Sha512, utilisez la commande get-filehash -Algorithm Sha512 c: \ test.txt.

Vous pouvez également utiliser -LiteralPath ou -InputStream au lieu de l'option de chemin par défaut.

  • LiteralPath: get-filehash -LiteralPath -Algorithm SHA512 c: \ test.txt.
  • InputStream get-filehash -InputStream -Algorithm SHA512 Stream.

La différence fondamentale entre path et literalpath est que literalpath ne prend en charge aucun caractère générique et est utilisé exactement tel qu'il est tapé.

CertUtil

CertUtil est un autre programme Windows natif que vous pouvez utiliser pour calculer les hachages de fichiers. Vous pouvez exécuter le programme à partir de l'invite de commande ou à l'aide de PowerShell.

La commande de base est certutil -hashfile PATH, par exemple certutil -hashfile c: \ example.txt .

Vous pouvez également spécifier l'algorithme de hachage. Les supports pris en charge sont MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. L'algorithme par défaut est MD5.

Pour utiliser un algorithme de hachage différent, spécifiez-le après la commande, par exemple certutil -hashfile c: \ example.txt SHA512 .

Mots de clôture

Vous pouvez utiliser les commandes dans les scripts pour calculer les hachages de plusieurs fichiers en une seule opération. Les deux outils natifs get-filehash et certutil sont très pratiques pour le calcul rapide des hachages sous Windows, ainsi que pour l'utilisation de scripts. (via Genbeta (espagnol))