# 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 负载。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
