SHAKE128 文件校验值计算器

在浏览器本地计算任意文件的 SHAKE128 哈希,可自选输出长度,并与预期校验值比对。无需上传文件。

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

尚未选择文件。选择文件后会立即显示校验值。

文件在浏览器中分块读取,绝不会上传。

什么是 SHAKE128 文件校验?

本工具计算文件的 SHAKE128 摘要,输出长度由你选择(默认 256 位),并与预期值比对。文件在浏览器中以 4 MB 分块处理。

如何使用 SHAKE128 文件校验

  1. 先设置 输出长度(位)(8 的倍数,默认 256);之后修改会重新计算哈希。
  2. 点击拖放区域或将文件拖到上面;文件会分块读取,并显示进度条。
  3. 查看下方显示的 文件名 和 文件大小,确认选对了文件。
  4. 将发布方提供的校验值粘贴到 预期校验值(可选) 中——会显示“匹配”或“不匹配”(大小写、0x 以及末尾的文件名都会被忽略)。
  5. 如需十六进制大写或 Base64,请选择 输出格式,然后点击 复制。

示例

输入
A file hash-abc.txt containing the 3 bytes "abc"
输出
5881092dd818bf5cf8a3ddb793fbcba74097d5c526a6d35f97b83351940f2cc8

输出长度 256 位。

何时使用 SHAKE128 文件校验

当发布方或规范提供了 SHAKE128 校验值,或者你需要特定长度的文件指纹时,可以使用它。对于普通的下载校验,SHA-256 校验值要常见得多。

SHAKE128 文件校验 的工作原理

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

常见用例

  • 校验完整性清单使用 SHAKE128 的文件
  • 为文件生成较短(例如 128 位)或较长的指纹
  • 用真实数据交叉验证 XOF 实现
  • 无需上传即可比较两个大文件

安全提示

只有当预期值来自可信来源时,校验值才能证明完整性。文件始终不会离开你的设备。

常见问题

文件会被上传吗?

不会。文件通过 File API 读取,并在你的浏览器中计算哈希。

为什么我的校验值对不上?

请确认双方使用相同的输出长度:SHAKE128 取 256 位和 512 位会得到不同的字符串(较短的是较长的前缀)。

可以对非常大的文件计算哈希吗?

可以。分块读取使内存占用很低;耗时取决于文件大小和设备速度。

探索更多分类