跳转到正文

HMAC-SHA512 生成器

根据消息和密钥生成 HMAC-SHA512 标签。此工具会将两者编码为 UTF-8,使用 SHA-512 应用 RFC 2104 中定义的 HMAC 构造,并以十六进制或 Base64 返回 512 位结果。可用它测试 API 签名方案,例如某些加密货币交易所 API 和 HS512 令牌,并将自己的实现与可信参考进行核对。响应中不会包含密钥。

重置

常见问题

什么是 HMAC-SHA512?

HMAC-SHA512 使用 RFC 2104 中定义的 HMAC 构造,将 SHA-512 哈希与密钥结合起来。它可以证明消息来自知道密钥的人,且未被篡改。标签为 64 字节,即 128 个十六进制字符。

什么是已知的 HMAC-SHA512 测试向量?

RFC 4231 的测试用例 2 使用密钥 Jefe 和消息 what do ya want for nothing?。预期标签为 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737,此工具可以复现该结果。

什么时候应该使用 HMAC-SHA512,而不是 HMAC-SHA256?

当 API 或令牌格式要求使用它时,例如 JSON Web Tokens 中的 HS512 算法。HMAC-SHA256 已经足够强,而 SHA-512 主要提供更长的标签,在 64 位机器上通常速度更快。

输入如何编码?

消息和密钥都会按 UTF-8 文本处理。如果服务提供商给你的是必须先解码的 Base64 或十六进制密钥,那么此处的结果会与服务提供商的结果不同。

我的密钥应该有多长?

64 字节的随机密钥与 SHA-512 输出大小相匹配,是不错的选择。超过 128 字节的密钥会先经过哈希处理,而过短的密钥会削弱安全性。

密钥会保密吗?

会。密钥仅在处理此请求时用于内存中,不会包含在响应里,也绝不会记录或存储。

我可以用此工具创建 JWT 签名吗?

可以部分实现。HS512 会对 Base64URL 编码的标头、一个点号和 Base64URL 编码的负载进行签名。将该字符串粘贴为消息,选择 Base64 输出,然后将 + 替换为 -、将 / 替换为 _,并移除 = 填充,即可得到 JWT 签名部分。

为什么我的结果不匹配?

最常见的原因是消息中有多余空格或换行、密钥应先从十六进制或 Base64 解码,或将十六进制与 Base64 进行比较。请逐字节检查每项输入。

我可以截断 HMAC-SHA512 标记吗?

某些协议只使用标记的前一部分,例如某些标准中的 HMAC-SHA512/256 变体。此工具始终返回完整的 64 字节;如果你的协议要求截断,请自行处理。

输入长度上限是多少?

每个请求中的消息和密钥合计最多可包含 5 MiB 文本。这足以处理 API 请求正文、令牌字符串和大型 webhook 负载。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。