哈希生成器
一次性计算文本或文件的 MD5、SHA-1、SHA-2、SHA-3、BLAKE2 和 CRC-32 摘要。
把工具固定在这里,会保存在此浏览器中。
固定一个工具,它的贴纸就会出现在这里。
一次性计算文本或文件的 MD5、SHA-1、SHA-2、SHA-3、BLAKE2 和 CRC-32 摘要。
哈希函数把任意长度的输入转换成长度固定的简短摘要。相同的输入总是得到相同的摘要;对于本页的密码学哈希函数,哪怕只改动一位,得到的摘要也会与原来的看起来毫无关联。因此摘要可以当作指纹:两个摘要不同,输入就不同;两个摘要相同,输入几乎可以肯定完全一致,无需逐字节比较。
常见用途包括:用发布者公布的校验和验证下载的文件、检测重复或被改动的文件,以及生成缓存键。
凡是与安全相关的场景,请使用 SHA-256、SHA-512、SHA-3 或 BLAKE2。MD5 和 SHA-1 在安全用途上已被攻破,因为可以刻意构造出摘要相同的两个不同输入,但它们作为普通校验和仍很常见。CRC-32 不是密码学哈希,只能检测意外损坏。
这些函数都不适合用来存储密码,因为它们的设计目标就是快。存储密码请使用 bcrypt 这类慢速、加盐的函数。
这里的 SHA3-256 是 FIPS 202 标准化的函数。以太坊使用的 Keccak-256 早于该标准,对同一输入得到的摘要不同。
摘要由 Go 的哈希包(标准库,以及用于 BLAKE2 的 golang.org/x/crypto)计算,编译为 WebAssembly 后在 Web Worker 中运行,不占用页面主线程。文件按 8 MB 分片读取,因此大文件无需整个载入内存即可计算哈希,而且文件不会离开你的设备。
摘要是一串字节。hex 和 HEX 把每个字节写成两位十六进制数字,base64 则用 Base64 表示同样的字节,也就是子资源完整性(Subresource Integrity)属性中使用的形式。比对框两种表示法都接受,前面带不带算法名称都可以,例如 sha256-… 或 sha256:…。
不会。文件由你的浏览器读取,并在你的设备上计算哈希。此工具不会把它发送到任何地方,而且本站的 Content-Security-Policy 不允许页面连接其他任何主机。
通常是因为输入存在看不见的差异:末尾多了换行、Windows 换行符、字节顺序标记(BOM)或不同的文本编码。此工具对输入框中的字符按 UTF-8 编码后计算哈希,不添加任何内容。输入框中的换行始终是单个换行符(LF),所以如果要对带 Windows 换行符的文本计算哈希,请先把它保存为文件,再对文件计算。
不能。哈希函数会丢弃信息,所以没有什么可以解密。不过,较短或常见的输入仍然可以通过猜测并比对找出来,这就是密码需要慢速、加盐函数的原因。
两者设计不同,都由 NIST 标准化。SHA-2 即 SHA-256 和 SHA-512 所属的家族,长期以来一直是默认选择。SHA-3 基于 Keccak 海绵结构,作为设计不同的替代方案被标准化,以防将来在 SHA-2 中发现弱点。目前两者都被认为是安全的。
它会在独立窗口中打开,离线时也能使用。
要安装,请点按“分享”按钮,然后选择“添加到主屏幕”。