SHAKE128 哈希生成器(可扩展输出)

在浏览器中对文本、十六进制或 Base64 输入生成任意长度(8–16384 位)的 SHAKE128 输出。FIPS 202 可扩展输出函数,支持十六进制或 Base64。

必须是 8 的倍数,范围 8 到 16384 位。

SHAKE128

完全在浏览器中运行,您的数据不会被上传。

什么是 SHAKE128 哈希生成器?

SHAKE128 是具有 128 位安全强度的 SHA-3 可扩展输出函数:摘要长度不固定,由你决定需要多少输出位。本工具可对文本或原始字节计算 SHAKE128,输出长度可配置(默认 256 位)。

如何使用 SHAKE128 哈希生成器

  1. 在 要计算哈希的文本 中输入或粘贴内容——摘要会随输入实时更新(输入框为空时显示空输入的哈希值)。
  2. 选择 输入编码:文本 (UTF-8) 会把字符按 UTF-8 计算哈希,十六进制字节 或 Base64 则对解码后的原始字节计算哈希。
  3. 设置 输出长度(位)——8 到 16384 之间 8 的倍数(默认 256)。
  4. 选择 输出格式(十六进制小写、十六进制大写或 Base64),然后点击 复制。

示例

输入
abc
输出
5881092dd818bf5cf8a3ddb793fbcba74097d5c526a6d35f97b83351940f2cc8

SHAKE128("abc"),使用默认输出长度 256 位。

何时使用 SHAKE128 哈希生成器

当协议明确指定 SHAKE128(例如 Ed448 使用 SHAKE256,ML-KEM/Kyber 和 ML-DSA/Dilithium 使用 SHAKE128/256)、需要从种子派生一串伪随机字节,或需要非标准长度的哈希时,可以使用 SHAKE128。如果只需要普通哈希,SHA3-256 或 SHA-256 更简单,兼容性也更好。需要带密钥时,请使用 KMAC,而不是把密钥和消息拼在一起哈希。

SHAKE128 哈希生成器 的工作原理

SHAKE128 是 FIPS 202 定义的可扩展输出函数(XOF)。它使用与 SHA-3 相同的 Keccak-f[1600] 海绵结构,容量为 256 位(速率 1344 位),域分隔后缀为 1111(填充字节 0x1F)。吸收完输入后,海绵会按所需的位数持续挤出输出,因此输出长度是一个参数,而不是算法本身的属性。较短的输出是较长输出的前缀。抗碰撞的安全强度为 min(输出位数/2, 128) 位。

常见用例

  • 复现后量子算法规范中的 SHAKE 输出
  • 派生自定义长度的指纹(例如 128 位或 1024 位)
  • 为 SHA-3 / XOF 实现生成测试向量
  • 把一个种子扩展成大量伪随机字节用于测试

安全提示

SHAKE128 是 NIST 批准的函数,目前没有已知的实际攻击。它本身不是密码哈希,也不是 MAC——需要带密钥的认证请使用 KMAC128。所有计算都在你的浏览器本地完成。

常见问题

SHAKE128-256 与 SHA3-256 相同吗?

不相同。它们共用 Keccak 置换,但容量和域分隔后缀不同,因此输出毫无关联。

如果要求更多的位数,开头部分会变吗?

不会。更长的 SHAKE128 输出就是较短输出后面再接更多字节。例如 SHAKE128("abc") 的前 128 位就是 128 位的结果。

输出越长就越安全吗?

只到 128 位安全强度为止。输出超过 256 位后,抗碰撞强度仍保持在 128 位。

探索更多分类