MD5 / SHA-1 / SHA-256 哈希计算

粘贴任意文本,一次算出三种摘要,方便对照接口文档核对校验和。

输入
输出

      

什么时候用得上它

核对接口文档里的签名、排查「为什么两边算出来的摘要不一致」、为缓存挑一个键、确认一段配置在传输前后有没有被改动,这些都是常见用法。工具会同时给出 MD5、SHA-1、SHA-256 三种摘要,输入长度不影响输出长度,摘要恒为固定的十六进制位数。

输入按 UTF-8 编码后再计算,中文、emoji 都能算对。输出默认是小写十六进制,需要贴给 Windows 的 certutil 或某些校验平台时,可以切到大小写切换再看一眼。同一份内容改一个空格、一个换行,摘要就会面目全非,所以比对时请确认内容逐字节一致。

结果怎么读

MD5 是 32 位十六进制,SHA-1 是 40 位,SHA-256 是 64 位。三种摘要长度和强度都不同,但只要是同一段内容、同一种算法,换任何工具算出的结果都必须相同——不同就说明有一边处理的内容不一样。右边每一行都能单独复制,不用手工选中。

顺手记一句:编码、加密、哈希是三件不同的事。Base64 这类编码可以随手还原,加密有密钥可以解开,只有哈希是单向的,拿到摘要推不回原文。把哈希当加密用是最常见的一类误解。

MD5 和 SHA-1 还能不能用

能,但要看用途。做文件校验、缓存键、内容寻址、Git 对象 ID 这类「只要内容变了摘要就变」的场景,MD5 和 SHA-1 至今仍然好用,速度也快。真正不适合的是密码存储和签名这类对抗性场景:MD5 与 SHA-1 都已经被构造出碰撞样本,而且所有通用哈希都算得太快,攻击者可以高速枚举。需要存密码时应该换成带盐、可调工作因子的 bcrypt、scrypt 或 Argon2。

结论很直白:校验和放心用,安全边界请用 SHA-256 或更强的算法,并对密码单独做处理。

常见问题

哈希值能还原成原文吗?
不能。哈希是单向函数,只能由内容算摘要,无法反推原文;网上那些「MD5 解密」其实是拿常见字符串的摘要做对照表,只能查到你输入过的简单口令。
为什么算出来的哈希和服务器上的不一样?
多半是内容有一处不同:换行符是 LF 还是 CRLF、行尾多了一个空格、文件开头多了 BOM、编码是 UTF-8 还是 GBK,都会让摘要完全不同。比对之前先确认两边处理的是逐字节相同的输入。
MD5 和 SHA-1 现在还能用吗?
做文件校验、缓存键、内容寻址仍然常用,但不要用于密码存储或签名等安全场景,那些场景请用 SHA-256 或更强算法。
空输入为什么也有结果?
空字符串有固定的标准摘要:MD5 是 d41d8cd98f00b204e9800998ecf8427e,SHA-1 以 da39a3ee 开头,SHA-256 以 e3b0c442 开头。这不是工具出错。
大文件用这个工具算哈希合适吗?
不合适。浏览器里处理几百 MB 的文件会明显卡顿甚至崩掉,应该改用 sha256sum、certutil -hashfile 这类命令行工具。

相关工具

全部工具开发者工具列表 应用中心旋悦科技官网的全部应用