Get-FileHash
Calcule la valeur de hachage d’un fichier à l’aide d’un algorithme de hachage spécifié.
Syntaxe
Get-FileHash
[-Path] <String[]>
[-Algorithm <String>]
[<CommonParameters>]
Get-FileHash
-LiteralPath <String[]>
[-Algorithm <String>]
[<CommonParameters>]
Get-FileHash
-InputStream <Stream>
[-Algorithm <String>]
[<CommonParameters>]
Description
La cmdlet Get-FileHash
L’objectif des valeurs de hachage est de fournir un moyen sécurisé par chiffrement de vérifier que le contenu d’un fichier n’a pas été modifié. Bien que certains algorithmes de hachage, y compris MD5 et SHA1, ne soient plus considérés comme sécurisés contre les attaques, l’objectif d’un algorithme de hachage sécurisé est de rendre impossible de modifier le contenu d’un fichier par accident ou par tentative malveillante ou non autorisée et de conserver la même valeur de hachage. Vous pouvez également utiliser des valeurs de hachage pour déterminer si deux fichiers différents ont exactement le même contenu. Si les valeurs de hachage de deux fichiers sont identiques, le contenu des fichiers est également identique.
Par défaut, l’applet de commande Get-FileHash
Exemples
Exemple 1 : Calculer la valeur de hachage d’un fichier PowerShell.exe
PS C:\> Get-FileHash $pshome\powershell.exe | Format-List
Algorithm : SHA256
Hash : 6A785ADC0263238DAB3EB37F4C185C8FBA7FEB5D425D034CA9864F1BE1C1B473
Path : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Cette commande utilise l’applet de commande Get-FileHash
Exemple 2 : Calculer la valeur de hachage d’un fichier ISO
PS C:\> Get-FileHash C:\Users\Andris\Downloads\Contoso8_1_ENT.iso -Algorithm SHA384 | Format-List
Algorithm : SHA384
Hash : 20AB1C2EE19FC96A7C66E33917D191A24E3CE9DAC99DB7C786ACCE31E559144FEAFC695C58E508E2EBBC9D3C96F21FA3
Path : C:\Users\Andris\Downloads\Contoso8_1_ENT.iso
Cette commande utilise l’applet de commande Get-FileHash et l’algorithme SHA384 pour calculer la valeur de hachage d’un fichier ISO téléchargé par un administrateur à partir d’Internet. La sortie est redirigée vers l’applet de commande Format-List pour mettre en forme la sortie sous forme de liste.
Exemple 3 : Calculer la valeur de hachage d’un flux et comparer la procédure à l’obtention du hachage à partir du fichier directement
# Path of Microsoft.PowerShell.Utility.psd1
$file = (Get-Module Microsoft.PowerShell.Utility).Path
$hashFromFile = Get-FileHash -Path $file -Algorithm MD5
# Open $file as a stream
$stream = [System.IO.File]::OpenRead($file)
$hashFromStream = Get-FileHash -InputStream $stream -Algorithm MD5
$stream.Close()
Write-Host '### Hash from File ###' -NoNewline
$hashFromFile | Format-List
Write-Host '### Hash from Stream ###' -NoNewline
$hashFromStream | Format-List
# Check both hashes are the same
if ($hashFromFile.Hash -eq $hashFromStream.Hash) {
Write-Host 'Get-FileHash results are consistent' -ForegroundColor Green
} else {
Write-Host 'Get-FileHash results are inconsistent!!' -ForegroundColor Red
}
### Hash from File ###
Algorithm : MD5
Hash : 593D6592BD9B7F9174711AB136F5E751
Path : C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules\Microsoft.Powe
rShell.Utility\Microsoft.PowerShell.Utility.psd1
### Hash from Stream ###
Algorithm : MD5
Hash : 593D6592BD9B7F9174711AB136F5E751
Path :
Get-FileHash results are consistent
Paramètres
-Algorithm
Spécifie la fonction de hachage de chiffrement à utiliser pour calculer la valeur de hachage du contenu du fichier spécifié. Une fonction de hachage de chiffrement inclut la propriété qu’il n’est pas possible de trouver deux entrées distinctes qui génèrent les mêmes valeurs de hachage. Les fonctions de hachage sont couramment utilisées avec des signatures numériques et pour l’intégrité des données. Les valeurs acceptables pour ce paramètre sont les suivantes :
- SHA1
- SHA256
- SHA384
- SHA512
- MACTripleDES
- MD5
- RIPEMD160
Si aucune valeur n’est spécifiée ou si le paramètre est omis, la valeur par défaut est SHA256.
Pour des raisons de sécurité, MD5 et SHA1, qui ne sont plus considérés comme sécurisés, doivent être utilisés uniquement pour une validation de modification simple et ne doivent pas être utilisés pour générer des valeurs de hachage pour les fichiers qui nécessitent une protection contre les attaques ou falsifications.
Type: | String |
Valeurs acceptées: | SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-InputStream
Spécifie le flux d’entrée.
Type: | Stream |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-LiteralPath
Spécifie le chemin d’accès à un fichier.
Contrairement au paramètre Path
Type: | String[] |
Alias: | PSPath |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Path
Spécifie le chemin d’accès à un ou plusieurs fichiers sous forme de tableau. Les caractères génériques sont autorisés.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
Entrées
Vous pouvez diriger une chaîne vers l’applet de commande Get-FileHash qui contient un chemin d’accès à un ou plusieurs fichiers.
Sorties
Microsoft.PowerShell.Utility.FileHash
Get-FileHash retourne un objet qui représente le chemin d’accès au fichier spécifié, la valeur du hachage calculé et l’algorithme utilisé pour calculer le hachage.