Public/Get-PMPCHashFromDigest.ps1
|
# From Jordan Benzing function Get-PMPCHashFromDigest { [cmdletbinding()] param( [Parameter(ValueFromPipeline = $true, Mandatory = $true)] [string]$Digest ) if ($PSVersionTable.PSVersion.Major -ge 7) { # Convert Digest from base 64 into a byte array (It's just a list of numbers) $backwardsByteArray = [convert]::FromBase64String($Digest) # Convert each byte in the array, back into it's hex value and merge the stream together to get the hash. $Sha1Hash = $backwardsByteArray | ForEach-Object { [convert]::ToHexString($_) } | Out-String -NoNewline return $Sha1Hash } else { # Convert Digest from base 64 into a byte array (It's just a list of numbers) $backwardsByteArray = [convert]::FromBase64String($Digest) $res = $backwardsByteArray | ForEach-Object { $_ | Format-Hex } $res | ForEach-Object { $_.tostring().substring(11, 2) } | ForEach-Object { $Sha1Hash = $Sha1Hash + $_ } return $Sha1Hash } } |