cSHAKE128 文件校验值计算器

使用自定义的函数名、自定义字符串和输出长度,用 cSHAKE128 对文件计算哈希。在本地分块处理,并可与预期值比对。

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

通常留空。该字段由 NIST 保留,用于基于 cSHAKE 定义的函数。

可选的域分隔标签,例如应用名称。不同的字符串会产生完全不相关的输出。

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

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

什么是 cSHAKE128 文件校验?

本工具使用你选择的函数名 N、自定义字符串 S 和输出长度,对文件的字节计算 cSHAKE128,再将结果与预期值比对。文件分块读取,始终留在你的设备上。

如何使用 cSHAKE128 文件校验

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

示例

输入
A file hash-abc.txt containing "abc", N and S empty
输出
5881092dd818bf5cf8a3ddb793fbcba74097d5c526a6d35f97b83351940f2cc8

N 和 S 为空时,结果等同于 SHAKE128(256 位)。

何时使用 cSHAKE128 文件校验

当某个系统使用 cSHAKE128 和应用专属的自定义字符串为文件生成指纹时,可以使用它。对于一般的下载校验,通常使用 SHA-256 校验值。

cSHAKE128 文件校验 的工作原理

先吸收 N/S 前缀,然后以 4 MB 为一片吸收文件,最后挤出输出。cSHAKE128(NIST SP 800-185)就是带域分隔的 SHAKE128。在消息之前,它会先吸收 bytepad(encode_string(N) || encode_string(S), 168)——即函数名 N 和自定义字符串 S,二者各自带有位长度前缀——然后使用后缀 00 进行填充,而不是 SHAKE 的 1111。如果 N 和 S 都为空,则按定义 cSHAKE128 等同于 SHAKE128。不同的 N 或 S 会得到相互独立的函数。N 和 S 以文本形式输入,并按 UTF-8 编码。

常见用例

  • 校验使用带域分隔的 cSHAKE 生成指纹的文件
  • 生成与上下文相关的文件标识符
  • 用大型真实输入测试 cSHAKE 实现

安全提示

S 不是秘密;结果也不是 MAC。需要认证请使用带秘密密钥的 KMAC。

常见问题

文件会被上传吗?

不会。文件在你的浏览器内读取并计算哈希。

为什么我的结果与其他工具不同?

三个参数必须完全一致:N、S(区分大小写和空格)以及输出长度。

文件名会影响哈希吗?

不会。只有文件内容、N、S 和输出长度会参与哈希。

探索更多分类