使用Powershell计算文件的Hash值并判断是否正确

网上有一大堆文章都是教如何计算的,但是计算出来的值要人工检查。。。。。

使用脚本

编写并保存成脚本check-file.ps1

[CmdletBinding()]
param (
    [Parameter(Mandatory = $true)]
    [string] $file,

    [Parameter(Mandatory = $true)]
    [string] $hash
)

#计算 SHA256
$hash1=Get-FileHash $file | select-object -ExpandProperty Hash
if($hash1-eq $hash){
	Write-Host "$file 的 SHA256 值匹配!"
}else{
	Write-Host "校验失败`n$file 的 SHA256 值为`n[$hash1]`n[$hash]!"
}

使用示例:
.\check-file.ps1 .\check-file.ps1 A68A9C2D260B29CF3B233FAC6771212D468BF86ADC1411874E01FD084492B535

直接使用命令行

这需要你记忆好
Get-FileHash models/midas/dpt_hybrid-midas-501f0c75.pt | select-object -ExpandProperty Hash | %{write-host ("501F0C75B3BCA7DAEC6B3682C5054C09B366765AEF6FA3A09D03A5CB4B230853" -eq $_)}
记得把代码里的文件路径和HashCode换成你的。

示例

成功的

直接返回True
在这里插入图片描述

失败的

返回False

在这里插入图片描述

扩展

上面的代码是计算SHA256
如果要计算其他比如MD5使用参数-Algorithm MD5
在这里插入图片描述
其他

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MD5

参考

  • Get-FileHash
  • Select-Object

你可能感兴趣的:(windows,运维,哈希算法,windows)