Windows 文件 MD5 校验:PowerShell 操作与差异排查

用 PowerShell 对原文件计算 MD5,复制正确的摘要字段,并排查路径、版本、编码与换行差异。

先确认预期值来自哪里

下载页发布的校验值必须与算法、版本、文件一一对应。参考值是 MD5,就不能拿 SHA-256 与它比较。文件和摘要若来自同一个不可信镜像,可能被一起替换;先确认发布渠道,再做数值核对。不要仅凭一行匹配提示就认定程序安全。

在 PowerShell 中计算本地文件

将下面路径换成实际文件。引号让包含空格的路径保持完整,LiteralPath 则把方括号等看似通配符的字符当作文件名本身。MD5 不是命令默认算法,因此应保留明确的算法参数。

Get-FileHash -LiteralPath 'C:\Downloads\example.zip' -Algorithm MD5

读取 Hash 字段,而不是 Path 列。PowerShell 常以大写显示十六进制,本工具默认小写;只要完整字节一致,字母大小写不影响比较。不要为了改变显示形式去编辑文件内容。

用可控样本检查操作过程

准备一个 UTF-8 文件,只包含 abc 三个字节,没有引号、结尾换行或字节顺序标记。其 MD5 应为 900150983cd24fb0d6963f7d28e17f72。某些编辑器保存时会加换行;那已经是另一个输入,结果变化是正常现象。

在浏览器文件工具里选择同一个已保存文件,算法选择 MD5。预期值框只粘贴 32 个十六进制字符,不要加入文件名、算法前缀或整行终端输出。首尾粘贴空白可以清理,内部空格则会被判为格式错误,而不是普通不匹配。

不匹配时不要改文件来凑结果

先等下载完成,再核对文件版本、发布渠道,以及是否把压缩包与解压后的文件混在一起比较。重命名一般不改变内容摘要,重新压缩却可能改变归档元数据。无法读取、计算失败或取消,并不是“已经计算完成但不匹配”。

若无法确认预期字节,应重新从发布者取得文件。需要抵抗有意篡改时,应遵循发布者的数字签名验证流程,MD5 数值一致本身不是身份认证,也不是恶意软件扫描。

浏览器与命令行各适合什么

浏览器适合少量本地文件队列、进度展示和直接比对;PowerShell 更适合自动化,以及超过浏览器保护限制的文件。本工具单个文件限制为 1 GiB,不代表所有手机都能快速完成最大任务。两种方式都无需为了本地摘要而上传文件。

相关工具与指南

Microsoft Get-FileHash

常见问题

Get-FileHash 命令必须指定 MD5 吗?

需要。复现 MD5 参考值时,应保留 -Algorithm MD5;该命令默认使用 SHA-256。请把示例路径替换为实际需要核对的已保存文件。

PowerShell 显示大写,会影响 MD5 核对吗?

不会。十六进制字母大小写表示相同字节。比较时应保留完整的 32 个 MD5 字符,不包含文件名或其他命令输出字段。

其他哈希与校验工具