多算法哈希生成器
同时用 20 种算法对文本做哈希:MD5、SHA-1、SHA-2、SHA-3、Keccak、RIPEMD-160、BLAKE2、BLAKE3、Whirlpool、SM3、CRC32。十六进制或 Base64,在浏览器中实时计算。
输入时所有摘要会实时更新。输入为空时显示空字符串的摘要。
完全在浏览器中运行,您的数据不会被上传。
什么是 哈希生成器?
同时用 20 种算法计算文本的摘要——MD5、SHA-1、SHA-224/256/384/512、SHA3-224/256/384/512、Keccak-256/512、RIPEMD-160、BLAKE2b-512、BLAKE2s-256、BLAKE3、Whirlpool、SM3、MD4 和 CRC32——方便你比较它们或找到所需的那一种。弱算法会被标记出来。
如何使用 哈希生成器
- 在输入中键入或粘贴文本;所有摘要会立即更新。
- 把输入编码切换为 Hex,即可对原始字节而不是 UTF-8 文本做哈希。
- 选择输出格式:小写十六进制、大写十六进制或 Base64。
- 从表格中复制单个值,或使用复制来复制所有行。
示例
abc
MD5: 900150983cd24fb0d6963f7d28e17f72 SHA-1: a9993e364706816aba3e25717850c26c9cd0d89d SHA-256: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad CRC32: 352441c2
节选;工具会显示全部 20 种算法。
何时使用 哈希生成器
用于查询某个字符串在多种算法下的摘要、辨别某个已知哈希是由哪种算法生成的,或比较不同实现。不要用快速哈希来存储密码——请使用 bcrypt、scrypt 或 Argon2。对于文件,请使用文件校验和工具,这样换行符和编码不会被改动。
哈希生成器 的工作原理
文本被编码为 UTF-8(或从十六进制解码),字节被送入 hash-wasm 提供的各算法 WebAssembly 实现。SHA-2 使用 Merkle–Damgård 构造,SHA-3 和 Keccak 使用海绵构造(二者只在填充上不同),BLAKE2/BLAKE3 基于 ChaCha 置换,而 CRC32 是校验和,不是密码学哈希。结果在单元测试中与 FIPS 180-4、FIPS 202、RFC 7693 以及 Node.js/OpenSSL 进行了核对。
常见用例
- 通过与所有输出比对,找出某个已知哈希由哪种算法生成
- 为测试数据获取字符串的 SHA-256 和 SHA3-256
- 计算文本的 Keccak-256 哈希(以太坊使用)
- 检查短字符串的 CRC32 校验和
- 向学生展示输入的微小变化如何改变每个摘要
安全提示
输入在本地哈希,绝不会上传。快速哈希不适合用于存储密码。
常见问题
SHA3-256 和 Keccak-256 有什么区别?
两者都使用 Keccak 海绵,但 SHA3-256(FIPS 202)使用的填充与最初提交的 Keccak 不同。以太坊使用 Keccak-256,所以同样的输入会得到不同的结果。
为什么 MD5、SHA-1、MD4 和 CRC32 被标记为弱?
它们可以被构造出碰撞,因此不得用于签名、证书或对抗攻击者的完整性校验。用于非安全的校验和仍然没有问题。
哈希可以被还原吗?
不能。哈希是单向的;所谓“解密”网站只是在查找常见输入的预先计算值。
为什么我的程序得到的哈希不同?
通常是编码的原因:末尾换行符、Windows 换行符或非 UTF-8 编码都会改变字节。请使用 Hex 输入来对精确的字节做哈希。