我无法使用内置的cmdlet Get-FileHash生成校验和值,因为Powershell的版本低于4。
是否有其他方法可以获取或验证文件的完整性?
发布于 2017-06-14 16:38:48
好的,让我们假设您有一个文件项(例如来自Get-ChildItem )
$stream = new-object system.IO.FileStream($item.fullname, "Open", "Read", "ReadWrite")您可以使用FileStream打开该文件以获得流对象。
然后,您可以使用其中一个Crypto类来计算其散列:
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
https://stackoverflow.com/questions/44539187
复制相似问题