SHA3-256 生成器
使用 FIPS 202 中基于 Keccak 的 SHA-3 标准,计算任意文本的 SHA3-256 哈希。此工具会将输入编码为 UTF-8,并以 64 个十六进制字符或 Base64 的形式返回 256 位摘要。适用于需要为协议、测试夹具和完整性检查生成 SHA-3 摘要的开发者,也适用于想要与其他 SHA-3 库比对结果的用户。
常见问题
什么是 SHA3-256?
SHA3-256 是 SHA-3 标准中的一种哈希函数,该标准为 FIPS 202,基于 Keccak 海绵结构构建。它会生成 256 位摘要,以 64 个十六进制字符表示。其内部设计与 SHA-2 完全不同。
SHA3-256 和 Ethereum 使用的 Keccak-256 相同吗?
不相同。Ethereum 使用的是原始 Keccak-256 提交版本,其输入填充方式与最终的 SHA-3 标准不同。因此,同一文本会得到不同的摘要。此工具根据 FIPS 202 计算标准化的 SHA3-256。
SHA3-256 的测试向量是什么?
空字符串的哈希值为 a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a。文本 abc 的哈希值为 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532。两者均与 NIST 示例一致。
为什么选择 SHA-3 而不是 SHA-256?
如果 SHA-2 被发现存在弱点,SHA-3 可作为备用方案,因为两者的设计毫无关联。SHA-3 也能抵御长度扩展攻击。SHA-256 仍然安全且支持更广泛,因此应在规范要求时选择 SHA-3。
我的输入是如何处理的?
你的文本会编码为 UTF-8,并逐字节计算哈希。每个空格和换行符都会计入。计算在服务器上的 WebAssembly 中运行,输入不会被存储。
hex 和 Base64 输出有什么区别?
两种格式编码的是相同的 32 字节摘要。Hex 使用 64 个小写字符,而 Base64 需要 44 个字符,其中包含一个填充符号。请使用代码或文档要求的格式。
SHA3-256 可以逆向还原吗?
不可以。SHA3-256 是单向函数,无法根据摘要计算出原始文本。短文本或常见输入仍可能通过尝试候选值被猜出,因此绝不要把可猜值的哈希当作秘密。
SHA3-256 适合用于密码吗?
单独使用并不合适。它速度很快,攻击者每秒可以尝试大量猜测。请改用 Argon2、bcrypt 或 scrypt 等密码哈希函数。
文本最长可以有多长?
此工具每次请求最多接受 5 MiB 文本。对于更长的数据或二进制文件,建议在本地计算哈希,例如使用 openssl dgst -sha3-256。
SHA3-256 在任何地方的结果都相同吗?
是。任何正确的实现都会对相同字节返回相同摘要。如果两个工具的结果不同,原因几乎总是文本编码不同、末尾有换行符,或出现了上文所述的 Keccak 变体混淆。