哈希对比校验

比对文本哈希与给定值是否一致,验证下载文件

—

哈希对比校验的正确做法

为什么需要专门的对比工具

校验文件完整性的流程是:从发布方拿到一个哈希值,在本地对文件算出哈希,然后比对两者。听起来只是"看一眼是否相同",但实际操作里有几处很容易出错:

正确流程

  1. 先比长度。长度不同直接判定不一致,也顺便能反推算法(32→MD5,40→SHA-1,64→SHA-256,128→SHA-512)。
  2. 统一大小写并去掉首尾空白。
  3. 逐字符比对,一旦出现差异就定位到具体位置——如果差异只在某一段,可能是复制截断;如果整体都不同,多半是文件本身不对或算法不同。
  4. 确认算法一致。发布方给的如果是 SHA-256,你不能用 MD5 去算然后比。

它防得住什么,防不住什么

校验哈希能确认的是:你手上的文件和发布方当时算哈希的那个文件是同一份,或者至少内容一致。它能发现下载过程中的传输损坏、CDN 缓存了旧版本、以及无意中拿错文件。

它防不住的是:有人同时替换了文件和页面上的哈希值。如果攻击者能改你的下载源,他也能改那个哈希。要防这一层,需要把哈希放在他改不到的地方——HTTPS 站点(前提是证书未被攻破)、官方签名过的发布渠道,或者用数字签名让哈希本身可验证。

还有一点:MD5 和 SHA-1 的哈希不能用来证明"文件没被人改过",因为两者的碰撞攻击都已实际可行。它们只适合做意外的损坏检测。

工具怎么用

把两个哈希值分别粘进输入框,工具会在忽略大小写和首尾空白后比对,并明确指出是否一致、长度是否相同。也支持粘贴"哈希值 文件名"这种校验文件格式(如 sha256sum 输出的内容),会自动提取其中的哈希部分。全部在本地计算,不上传任何内容。

常见问题

这个和"文件 hash 计算"有什么不同?

这里校验的是粘贴进来的文本内容;如果要校验下载的安装包,请用文件类工具直接拖入文件计算。