2017-06-14 23 views

回答

2

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

+1

你應該'Dispose()'th e'$ sha'實例以及 –

+0

好點@ MathiasR.Jessen –