cSHAKE128 文件校验值计算器
使用自定义的函数名、自定义字符串和输出长度,用 cSHAKE128 对文件计算哈希。在本地分块处理,并可与预期值比对。
必须是 8 的倍数,范围 8 到 16384 位。
通常留空。该字段由 NIST 保留,用于基于 cSHAKE 定义的函数。
可选的域分隔标签,例如应用名称。不同的字符串会产生完全不相关的输出。
尚未选择文件。选择文件后会立即显示校验值。
文件在浏览器中分块读取,绝不会上传。
什么是 cSHAKE128 文件校验?
本工具使用你选择的函数名 N、自定义字符串 S 和输出长度,对文件的字节计算 cSHAKE128,再将结果与预期值比对。文件分块读取,始终留在你的设备上。
如何使用 cSHAKE128 文件校验
- 设置 输出长度(位)、函数名 (N) 和 自定义字符串 (S);修改它们会重新计算哈希。
- 点击拖放区域或将文件拖到上面;文件会分块读取,并显示进度条。
- 查看下方显示的 文件名 和 文件大小,确认选对了文件。
- 将发布方提供的校验值粘贴到 预期校验值(可选) 中——会显示“匹配”或“不匹配”(大小写、
0x以及末尾的文件名都会被忽略)。 - 如需十六进制大写或 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 和输出长度会参与哈希。