<p>À partir de PowerShell version 4, c’est facile à faire pour les fichiers nativement avec la cmdlet <a href="https://learn.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Get-FileHash?view=powershell-4.0"><code>Get-FileHash</code></a> :</p>
<pre><code class="lang-auto">Get-FileHash <filepath> -Algorithm MD5
</code></pre>
<p>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).</p>
<p>Si le contenu est une chaîne :</p>
<pre><code class="lang-auto">$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)))
</code></pre>
<p><strong>Pour les anciennes versions de PowerShell</strong></p>
<p>Si le contenu est un fichier :</p>
<pre><code class="lang-auto">$someFilePath = "C:\foo.txt"
$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$hash = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($someFilePath)))
</code></pre>