
如果您需要在Windows系统中验证文件的完整性,PowerShell提供了内置命令Get-FileHash,可快速生成文件的哈希值。以下是使用该命令计算MD5、SHA1、SHA256等哈希值的具体操作步骤:
一、基础语法与默认行为
Get-FileHash命令默认使用SHA256算法计算文件哈希值,适用于单个文件或多个文件批量处理。该命令会读取文件的二进制内容并输出哈希结果,不修改原始文件。
1、以管理员身份打开PowerShell窗口。
2、输入命令:Get-FileHash “C:\path\to\file.txt”,将路径替换为实际文件路径。
3、回车执行后,输出结果中Algorithm字段显示为SHA256,Hash字段显示对应哈希值。
二、指定MD5算法计算哈希值
MD5虽已不推荐用于安全敏感场景,但在部分旧系统校验或兼容性需求中仍被使用。Get-FileHash支持通过-Algorithm参数显式指定MD5算法。
1、在PowerShell中执行:Get-FileHash “C:\example.zip” -Algorithm MD5。
2、确认输出中的Algorithm字段为MD5,Hash字段为32位十六进制字符串。
3、如需将结果保存到变量以便后续使用,可输入:$md5 = Get-FileHash “C:\example.zip” -Algorithm MD5。
三、指定SHA1或SHA256算法计算哈希值
SHA1提供160位哈希输出,SHA256提供256位哈希输出,二者均比MD5具备更强的抗碰撞能力。通过-Algorithm参数可自由切换。
1、计算SHA1哈希值:Get-FileHash “C:\data.bin” -Algorithm SHA1。
2、计算SHA256哈希值:Get-FileHash “C:\data.bin” -Algorithm SHA256。
3、对比两个不同算法结果时,可同时运行两行命令,观察Hash字段长度差异:SHA1为40位,SHA256为64位。
四、批量计算多个文件的哈希值
当需校验目录下所有文件时,可结合Get-ChildItem管道传递路径,避免逐一手动输入。此方式适用于结构化校验任务。
1、进入目标目录所在驱动器,例如输入:cd C:\Downloads。
2、执行批量命令:Get-ChildItem *.exe | Get-FileHash -Algorithm SHA256,仅处理.exe文件。
3、如需导出为CSV文件供查看,追加:| Export-Csv -Path “hashes.csv” -NoTypeInformation。
五、校验哈希值是否匹配已知值
将命令输出的哈希值与可信来源提供的值进行比对,是验证文件未被篡改的关键步骤。PowerShell可通过字符串比较实现自动化判断。
1、先获取文件哈希并存入变量:$actual = (Get-FileHash “C:\install.exe” -Algorithm SHA256).Hash。
2、定义预期哈希值(注意全部大写或小写一致):$expected = “A1B2C3D4E5F67890…”。
3、执行比对:if ($actual -eq $expected) { Write-Host “校验通过” } else { Write-Host “校验失败” }。

评论(0)