使用方法
- 选择 文本 计算你输入内容的哈希,或选择 文件 计算本地文件的哈希。
- 五种哈希一次全部算出,不需要来回切换。
- 如果你要比对的系统用大写十六进制,打开 大写 开关。
- 点任意一行的复制按钮取走该值。
关于哈希
哈希函数把任意长度的输入压成一个定长指纹。相同输入永远得到相同输出,改动一个字节输出 就面目全非,而输出本身又透露不出关于输入的有用信息。正是这三条性质,让哈希成为「这两 份数据是不是同一份」的标准回答方式——不必真的去逐字节比较原数据。
问题在于,并不是所有哈希函数都还站得住。MD5 在 2004 年被攻破,当时公开了构造两个 不同输入却得到相同摘要的方法。SHA-1 在 2017 年步其后尘,Google 造出了两份 SHA-1 相同的不同 PDF。两者今天仍被大量使用——Git 至今用 SHA-1 标识对象——但都不该再用于 「伪造相同哈希能让人获利」的场合,比如签名或证书校验。
SHA-256 与 SHA-512 同属 SHA-2 家族,目前没有实际可行的攻击。要注意 SHA-512 并不是简单地「比 SHA-256 更安全」:它使用 64 位运算,因此在 64 位硬件上反而比 SHA-256 更快,尽管摘要更长。没有特殊要求时选 SHA-256 就好。
有一个误用值得单独点出来:哈希不是加密。加密是可以用密钥还原的,这正是加密的意义; 而哈希被设计成单向的,无法用来保护你之后还要读回来的数据。同样,单纯的哈希也不足以 存储密码——原因见上面的常见问题。