Comment obtenir une somme de contrôle MD5 dans PowerShell

Comment obtenir une somme de contrôle MD5 dans PowerShell


Source : Stack Overflow [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)))