先确认预期值来自哪里
下载页发布的校验值必须与算法、版本、文件一一对应。参考值是 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,不代表所有手机都能快速完成最大任务。两种方式都无需为了本地摘要而上传文件。