点击选择,或把文件拖到这里
任何文件、任何大小 — 在你的设备上读取,绝不上传关于核对文件校验和
下载页会在文件旁边列出一长串字母和数字。它的作用,是让你能够证明落到你硬盘上的东西正是发布者放上去的那一个:没有被截断、没有损坏、也没有被换成别的东西。
在 Windows 上,命令是 certutil -hashfile 文件名 SHA256。然后你得用肉眼把一串 64 个字符和另一串 64 个字符比对一遍——而这正是人最容易出错的那类活。
把文件拖进来。三个校验和就会出现。粘贴你拿到的那一个,页面会直接告诉你对不对。
使用方法
- 点击点击选择,或把文件拖到页面上
- 等待读取——大的 ISO 需要一点时间,进度会显示出来
- 把下载页上的校验和粘贴进输入框
- 看结果:绿色的匹配,或红色的不匹配
你不必知道它是哪种算法
这正是省事的地方。下载页往往只印出一串校验和,却不说明它是哪一种。
其实也不必说明,因为长度就已经说明了:32 个字符是 MD5,40 个是 SHA-1,64 个是 SHA-256。所以三种会在同一次扫描中算出,输入框接受其中任意一种,页面自己判断你粘贴的是哪一种,再用那一种去比对。没有什么需要挑选。
整行粘贴也可以。SHA256: 9f86d081… ubuntu.iso 同样有效——校验和会从中被识别出来。
任何大小的文件
文件分块读取,校验和随读随算,因此内存占用始终平稳。5 GB 的磁盘镜像和 5 KB 的文本文件处理方式完全一样。
这也是大文件读取需要一点时间的原因:每个字节都得从你的硬盘上读一遍。并没有在上传任何东西——进度条反映的是你自己的硬盘。
匹配说明了什么,又没说明什么
匹配意味着你硬盘上的文件与生成该校验和的文件逐字节相同。下载完成了,传输途中没有损坏,也没有被改动。
匹配并不意味着文件是安全的。 能改动文件的人,通常也能改动旁边印着的那串校验和。校验和只能证明文件与页面一致,不能证明页面本身诚实。要做到那一点,需要的是签名,而不是哈希。
MD5 和 SHA-1 已经不再安全——构造出两个 MD5 相同的不同文件是可能的。但用来发现损坏的下载依然完全够用,而多数校验和正是为此而公布的,所以它们仍然显示。当页面提供 SHA-256 时,请用那一个。
人们用它做什么
- 在安装之前核对 Linux ISO 或 Windows 镜像
- 确认在不稳定的网络下大文件下载是否顺利完成
- 核实安装程序确实是厂商发布的那一个
- 检查复制到 U 盘或 NAS 的文件是否完好到达
- 确认备份或压缩包与原件完全一致
- 不打开任何一个,就证明两个文件相同
值得知道
- 不上传任何内容。文件在你的设备上读取,绝不外传
- 文件只被读取,绝不会被修改
- MD5、SHA-1 和 SHA-256 在对文件的一次扫描中同时产出
- 不提供 SHA-384 和 SHA-512:它们需要 64 位运算,在浏览器中处理数 GB 的文件速度很慢,而下载页几乎从不公布它们。若是文本,哈希生成器五种都有
- 粘贴时大小写无关紧要——比对时会忽略
- 在所有浏览器中都能用;文件较小时手机上也可以