0
我不能使用內置的cmdlet的Get-FileHash
生成的校驗值Powershell的版本低於4獲取校驗無內置進去,FileHash cmdlet的PowerShell中
有獲取或驗證的另一種方式文件的完整性?
我不能使用內置的cmdlet的Get-FileHash
生成的校驗值Powershell的版本低於4獲取校驗無內置進去,FileHash cmdlet的PowerShell中
有獲取或驗證的另一種方式文件的完整性?
OK讓我們假設你有(例如,從GET-ChildItem)的文件項
$stream = new-object system.IO.FileStream($item.fullname, "Open", "Read", "ReadWrite")
您打開該文件使用FileStream得到一個流對象。
然後你可以使用加密類之一來計算其哈希:
if ($stream)
{
$sha = new-object -type System.Security.Cryptography.SHA256Managed
$bytes = $sha.ComputeHash($stream)
$stream.Dispose()
$stream.Close()
$sha.Dispose()
$checksum = [System.BitConverter]::ToString($bytes).Replace("-", [String]::Empty).ToLower();
}
最後的校驗是$checksum
,它是一個不錯的字符串,你可以使用你的比較:
5989b3cdcff6a594b2b2aef7f6288f7727019c037515c2b10627721e707cf613
你有各種類來計算在System.Security.Cryptography
下的哈希,你可以看到這裏有什麼可用:https://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx
你應該'Dispose()'th e'$ sha'實例以及 –
好點@ MathiasR.Jessen –