要解决的问题
压缩包能解压,不表示下载内容与发布方原文件完全一致。先从发布方的可信页面取得对应版本和文件的 SHA-256,再计算本地文件。下面用 abc 的 UTF-8 字节示范,不读取你的下载目录。
适用环境
Windows PowerShell 5.1 或 PowerShell 7;示例仅在内存中计算固定文本字节。
操作步骤与示例
先运行下面的小样本,再把输入替换为自己的资料;保留原始文件副本。
$bytes = [Text.Encoding]::UTF8.GetBytes('abc')
$stream = [IO.MemoryStream]::new($bytes)
try {
$actual = (Get-FileHash -InputStream $stream -Algorithm SHA256).Hash.ToLowerInvariant()
$expected = 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'
if ($actual -ne $expected) { throw '摘要不一致' }
$actual
} finally { $stream.Dispose() }如何判断结果
示例应输出 64 位小写十六进制字符串。核对真实文件时使用 Get-FileHash -LiteralPath 后接文件的完整路径,并显式选择 SHA256。比较的是摘要文本,不是文件名;重命名不会改变文件内容摘要。
常见问题与排查
不一致时先确认版本、文件大小、是否下载了 HTML 错误页,以及发布方摘要是否属于另一个安装包。不要为了得到相同摘要而编辑文件。文本文件的换行或编码变化也会改变摘要。
适用边界
摘要相同只支持“字节一致”的判断。若文件和摘要都来自不可信来源,核对不能证明文件无害;必要时还要检查官方签名与发布渠道。本方法不是密码存储方案。