Comment obtenir une somme de contrôle MD5 dans PowerShell
À partir de PowerShell version 4, c’est facile à faire pour les fichiers nativement avec la cmdlet Get-FileHash :
Get-FileHash <filepath> -Algorithm MD5
C’est certainement préférable car cela évite les problèmes que la solution pour les anciennes versions de PowerShell présente, comme identifié dans les commentaires (utilise un flux, le ferme et prend en charge les gros fichiers).
Si le contenu est une chaîne :
$someString = "Hello, World!"
$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$utf8 = New-Object -TypeName System.Text.UTF8Encoding
$hash = [System.BitConverter]::ToString($md5.ComputeHash($utf8.GetBytes($someString)))
Pour les anciennes versions de PowerShell
Si le contenu est un fichier :
$someFilePath = "C:\foo.txt"
$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$hash = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($someFilePath)))