适用环境
Windows PowerShell;对自己的本地文件操作
校验值在检查什么
SHA-256 会根据文件内容计算固定长度的摘要。只改文件名通常不会改变摘要;内容变动则几乎一定会得到不同结果。它适合检查下载损坏和版本是否一致,但不能单独证明文件安全或作者身份。
计算本地摘要
Get-FileHash -LiteralPath "C:\Downloads\release.zip" -Algorithm SHA256路径需要换成实际文件。结果的 Hash 一栏是 64 位十六进制字符;不要比较下载页面显示的文件大小就结束检查。大型文件需要读取完整内容,计算耗时与磁盘速度和文件体积有关。
自动比较,减少看错
$expectedHash = Read-Host "粘贴发布者提供的 SHA-256"
if ($expectedHash -notmatch "^[0-9a-fA-F]{64}$") { throw "摘要格式不正确" }
$actualHash = (Get-FileHash -LiteralPath "C:\Downloads\release.zip" -Algorithm SHA256).Hash
if ($actualHash -ieq $expectedHash) { "校验一致" } else { throw "校验不一致,请核对版本与来源" }从哪里取得可信的参考值
优先在发布者官方页面、已确认的发行说明或可信签名渠道取得参考摘要。若下载文件和所谓“正确摘要”都来自同一个被篡改的页面,两者可能一起被替换,因此摘要一致不能替代来源核实。
不一致时怎样继续
先核对文件版本、平台和压缩包名称,再确认没有把 SHA-1 或其他算法的值拿来比较。检查无误后重新下载到新文件,不要覆盖唯一副本。两份文件分别计算摘要;仍不一致时,暂停使用并向发布者核实。