如何在 Windows 中校验文件哈希
简短回答: 把下载文件的校验值与下载页面上公布的值比对。PowerShell 的 Get-FileHash 能算出它,但命令要靠记,字符串要用肉眼比对;像校验和验证器这样的免费应用替你完成比对——粘贴期望的哈希,得到绿色或红色标记。
什么是校验和?
校验和(哈希)是文件的指纹:一串根据文件全部内容计算出的短字符串。10 GB 的镜像里改动一个比特,哈希就会完全改变。厂商在下载文件旁公布 MD5、SHA-1、SHA-256 或 SHA-512,正是为了让你能证明:收到的文件就是他们发布的那个——途中没有损坏,也没有被悄悄篡改。
方法 1:PowerShell Get-FileHash
- 在下载文件所在目录打开 Windows Terminal(或 PowerShell),运行下载页面所标算法的命令:
Get-FileHash .\file.iso -Algorithm SHA256
哈希会显示在控制台中;如果页面标注的是别的算法,改用 -Algorithm MD5、SHA1 或 SHA512。
- 复制输出的哈希,与页面逐字符比对,不必在意大小写。
优点:Windows 自带,无需安装,偶尔核对一次足够。缺点:必须记住准确的命令和算法名称;比对靠人工,而 64 个相似字符、折行、大小写差异(PowerShell 输出大写,很多网站是小写)和多余空格很容易掩盖真正的不同。
方法 2:在线校验和网站
有些网站接受上传文件并显示其 MD5 或 SHA-256。问题出在动词上:你的文件被上传到别人的服务器,离开了电脑。对 Linux 镜像还算可以;对私人文档、工作压缩包或受 NDA 保护的文件则完全不行。再加上上传大小限制和偏偏在你需要时无法访问的服务,便利就荡然无存。
方法 3:校验和验证器——粘贴、比对、完成
免费下载 — ChecksumVerifier-Setup.exe
- 添加下载的文件,勾选下载页面上标注的算法——MD5、SHA-1、SHA-256 或 SHA-512,单选或多选都可以。
- 粘贴期望的校验值到顶部输入框:比对会忽略大小写和多余空格,从网页上直接复制的哈希拿来即用。
- 点击「验证」——绿色「哈希一致」标记表示文件完好;红色「哈希不一致」标记表示它与公布的值不一致,不应运行。
哈希只在你的电脑上计算:不上传任何内容,文件不会离开这台机器,关掉 Wi-Fi 也没有任何影响。文件以流式方式从磁盘读取,即使是 10 GB 的 ISO 也只需固定的内存占用——没有大小限制,也不必将文件读入内存。
如果哈希不匹配
- 不要运行该文件。 不匹配意味着磁盘上的字节与公布的不同:下载已损坏,或在途中被修改过。
- 换一条网络重新下载(或换个镜像源)后再验证:大多数不一致都是传输中断或损坏造成的,换条线路重试通常就能拿到完好的文件。
- 检查来源。 如果哈希仍然不一致,把它与厂商官网或 HTTPS 页面上的值比对——与非官方镜像对不上的校验值,就是完全不信任那个镜像的理由。
常见问题
该用哪种算法——MD5、SHA-1、SHA-256 还是 SHA-512?
用下载页面上公布的那个,通常是 SHA-256。MD5 和 SHA-1 仍出现在旧下载中,但被认为不足以抵御蓄意篡改;检查传输是否损坏用哪种都行,防篡改请选 SHA-256 或 SHA-512。
网站上哈希是小写,PowerShell 输出大写——有问题吗?
没有:校验值比对不区分大小写,b94d… 和 B94D… 是同一个值。校验和验证器会自动忽略大小写和多余空格,所以你可以完全按页面的样子粘贴哈希。
10 GB 的 ISO 要算一会儿,正常吗?
正常——整个文件都要读一遍,耗时取决于磁盘速度,不是出错。应用以流式读取而不加载文件,内存占用保持平稳;把多个文件排进队列,让它一次算完。