哈希生成器
生成任意文本的加密哈希值(SHA-1、SHA-256、SHA-384、SHA-512)。哈希计算通过 Web Crypto API 在浏览器中完成。
哈希值
使用方法
哈希函数是一种单向数学函数,它能将任意输入——无论是单个字符、一个密码,还是一整本书——转换为一串固定长度的十六进制字符,称为摘要。对同一输入计算两次,得到的摘要每次都完全相同;但只要改变一个字符,整个输出就会彻底不同,这种现象被称为“雪崩效应”。这使得哈希值可以作为任意大小数据的紧凑、确定性指纹。 这个工具计算来自两个哈希家族的四种算法。SHA-1 生成 160 位摘要,多年来被广泛使用,但研究人员已经证明了针对它的实际碰撞攻击,因此它不再被视为安全算法,不应用于保护任何敏感信息——收录于此主要是为了兼容旧系统。SHA-256、SHA-384 和 SHA-512 属于较新的 SHA-2 家族,生成更长的摘要——分别为 256、384 和 512 位——目前尚未发现实际的碰撞攻击,因此是当下 checksum 校验、签名和完整性检查更安全的选择。 哈希只能单向进行。不存在任何数学运算能从摘要还原出原始文本,而这正是它的意义所在——哈希可以证明数据未被更改,同时又无需暴露数据本身。这与加密不同,加密的设计目的就是在拥有正确密钥的情况下可以被还原。 举个具体的例子,用 SHA-256 对单词 hello 进行哈希,总是会得到相同的 64 个字符的十六进制摘要:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824。请注意,无论你哈希的是一个字母还是一整部小说,SHA-256 的摘要始终是 64 个十六进制字符——输出长度由算法决定,与输入大小无关。 要使用这个工具,只需在输入框中输入或粘贴任意文本。四种摘要——SHA-1、SHA-256、SHA-384 和 SHA-512——都会随着你的输入实时更新,全部通过 Web Crypto API 在浏览器本地计算;你输入的内容不会发送到任何服务器。点击任意摘要旁边的复制按钮即可将其复制到剪贴板。 哈希值在日常计算中随处可见:通过比对官方发布的 checksum 来验证下载的文件或安装程序未被损坏或篡改、无需比较完整内容即可去重相同文件,以及支撑用于证明文档真实性的数字签名。密码存储是一个值得特别说明的特殊情况:生产系统绝不会直接存储密码的 SHA-256 哈希值,因为攻击者可以预先计算常见密码的哈希值。真正的系统会加入随机盐值,并使用 bcrypt 或 Argon2 这类专门设计的慢速算法——单纯的 SHA 哈希速度过快、结果可预测,不足以妥善保护密码。
常见问题
- 什么是哈希?
- 哈希是你输入内容的固定长度指纹。相同的文本总会产生相同的哈希值,但无法将哈希值还原回原始文本。
- 我应该使用哪种算法?
- 对于 checksum 校验和完整性检查,SHA-256 是不错的默认选择。SHA-1 的加入是为了兼容旧系统,但在安全性上已不再被视为具有抗碰撞能力。
- 我的文本会被发送到服务器吗?
- 不会。哈希值通过 Web Crypto API 在本地计算——你的文本永远不会离开浏览器。
- 哈希和加密是一回事吗?
- 不是。加密是可逆的——拥有正确的密钥,密文就可以被解密还原为原始数据。而哈希是单向的:没有任何密钥能将摘要还原为原始文本。哈希用于验证完整性和检测更改,而不是用来隐藏或日后还原机密信息;那是加密的用途。