什么是文件哈希值校验对比?
校验和比对会计算两个文件的校验值,也可以拿一个文件和你粘贴进来的校验值比对,然后告诉你是否一致。这是验证下载文件有没有损坏或被篡改的标准做法。文件在本地完成哈希计算,不会离开你的设备。
两种模式:文件对文件,或者文件对你粘贴进来的校验值。粘贴的内容几乎什么格式都认,裸哈希、带文件名的 sha256sum 行、BSD 风格的 SHA256 (file) = 写法都可以,算法由哈希长度自动判断。文件最大 2 GB,计算过程中有进度条。
使用方法
- 放入第一个文件,或从下载页面粘贴一段预期的校验和字符串。
- 放入第二个文件,再选择算法:MD5、SHA-1、SHA-256、SHA-384 或 SHA-512。
- 查看结论:绿色「匹配」代表两个文件完全相同,不匹配则会指出哈希值的差异所在。
何时使用
- 核对下载好的 ISO 或安装包,和发布页上的哈希是否一致。
- 确认文件经过 U 盘、FTP 或不稳定的网络共享后仍然完整。
- 验证同一个文件夹的两份备份内容仍然完全相同。
结果
下载完一个 Linux ISO 后,把发行版官网上的 SHA-256 字符串粘进来,再放入下载好的 ISO,得到绿色的「匹配」——证明这 3 GB 文件完整无误。
常见问题
- 校验值对不上,是不是说明文件被人动过手脚?
- 多数情况是下载被截断或损坏,这比被攻击常见得多。重新下载再比一次。如果新下的副本和官方哈希还是对不上,就别用了,换一个镜像站重下。
- 粘贴之前必须知道发布方用的是哪种算法吗?
- 不必。32 位是 MD5,40 位是 SHA-1,64 位是 SHA-256,96 位是 SHA-384,128 位是 SHA-512,算法按你粘贴内容的长度自动定。发布方同时列了几种时,也可以手动切换。
- 可以直接粘贴 SHASUMS 文件里的一整行,而不只是哈希吗?
- 可以。标签、星号、文件名和外面的括号都会被剥掉,被窄表格截断成好几行的哈希也会拼回去。剩下长度正好的那串十六进制,就是拿来比对的值。
- 用 MD5 或 SHA-1 检查下载文件是否完整,现在还够用吗?
- 只查是否意外损坏的话够用,不少老镜像也只发布这两种,所以这里都留着。但要证明文件没被人故意掉包,请用 SHA-256:MD5 的碰撞从 2008 年起就能廉价造出,SHA-1 的碰撞也从 2017 年起被真实构造出来。
- 为什么超过 2 GB 的镜像文件就没法比对了?
- 摘要计算需要把整个文件放进一整块内存,而单次分配基本超不过 2 GB。更大的镜像可以在命令行跑 sha256sum 或 certutil,再把结果粘贴进来对比。