Isso não é tão fácil como deveria ser. O PowerShell pode fazer um hash MD5 com um arquivo nativamente (usando Get-FileHash
), mas não uma string.
Felizmente, a MS fornece uma solução aqui .
#http://jongurgul.com/blog/get-stringhash-get-filehash/
Function Get-StringHash([String] $String,$HashName = "MD5")
{
$StringBuilder = New-Object System.Text.StringBuilder
[System.Security.Cryptography.HashAlgorithm]::Create($HashName).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String))|%{
[Void]$StringBuilder.Append($_.ToString("x2"))
}
$StringBuilder.ToString()
}
Copie essa função e cole-a em um prompt do PowerShell. Essa função chamada Get-StringHash
será salva para essa sessão do PowerShell.
Teste o MD5 fazendo o hash da palavra "teste" digitando:
Get-StringHash "test" "MD5"
E você deve obter o hash MD5 abaixo:
098f6bcd4621d373cade4e832627b4f6
Uma vez feito isso, você pode usar essa função, junto com Get-Process
para obter os nomes dos processos e o MD5 dos nomes, como visto abaixo:
get-process | ForEach-Object {write-host $_.Name ; Get-Stringhash "$_.Name" "MD5"}