KMAC256 文件 MAC 计算器

在浏览器本地使用你的秘密密钥和自定义字符串计算文件的 KMAC256 认证标签,并与预期标签比对。

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

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

密钥为空。没有密钥时,KMAC 无法起到认证作用。

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

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

什么是 KMAC256 文件 MAC?

本工具使用秘密密钥、可选的自定义字符串和你选择的输出长度计算文件的 KMAC256 标签,并与预期标签比对。与普通校验值不同,标签匹配说明文件出自知道该密钥的人。

如何使用 KMAC256 文件 MAC

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

示例

输入
A file hash-abc.txt containing "abc", key "secret" (UTF-8), S empty
输出
e0f722587fac65afa0b2e31856349bfc14d2eb8abc4ee0df330e2dd774d2290b75fdb129e27786af23258631b9eaccf317d4718f5d64dd91cc41b3c42395de42

输出长度 512 位。

何时使用 KMAC256 文件 MAC

可用它检查文件是否来自与你共享秘密密钥的一方,或为基于 KMAC 的系统中的文件生成标签。要验证公开下载的文件,应使用校验值或数字签名——MAC 要求双方共享密钥。

KMAC256 文件 MAC 的工作原理

先吸收填充后的密钥,再以 4 MB 为一片吸收文件,然后吸收编码后的输出长度,最后挤出标签。KMAC256(NIST SP 800-185)就是函数名为“KMAC”的 cSHAKE256。它先吸收 bytepad(encode_string(K), 136)——即填充到完整分组的密钥——然后是消息,再是带有所需输出长度 L 的 right_encode(L),最后挤出 L 位。由于 L 是输入的一部分,同一份数据的 256 位和 512 位 KMAC 互不相关(与 SHAKE 不同)。海绵结构使简单的密钥前缀构造也是安全的,因此 KMAC 不需要 HMAC 那样的嵌套结构。

常见用例

  • 校验固件或备份文件的认证标签
  • 为文件生成外人无法复现的带密钥指纹
  • 用大型输入测试 KMAC 实现

安全提示

请使用至少 32 字节的随机秘密密钥。密钥一旦泄露,标签就起不到任何保护作用。所有处理都在本地完成。

常见问题

文件和密钥会被上传吗?

不会。两者都留在你的浏览器中;文件在本地分块读取。

为什么我的标签对不上?

密钥字节(请检查密钥编码)、自定义字符串和输出长度,以及文件内容,都必须完全一致。

KMAC 标签是签名吗?

不是。任何持有共享密钥的人都能生成有效标签,因此它证明的是持有密钥,而不是某个特定签名者的身份。

探索更多分类