# HMAC-SHA1 生成器

根据消息和密钥计算 HMAC-SHA1 标记。此工具会将两者编码为 UTF-8，使用 SHA-1，按照 RFC 2104 应用 HMAC 构造，并以 40 个十六进制字符或 Base64 返回 160 位结果。它适用于使用 OAuth 1.0a 签名、TOTP 内部机制、较旧的 webhook，以及仍使用 HMAC-SHA1 签名的旧版 API 的开发者。你的密钥会保留在请求中。

## 常见问题

### 什么是 HMAC-SHA1？

HMAC-SHA1 是一种消息认证码，它将 SHA-1 与密钥结合，并遵循 RFC 2104。标记为 20 字节，以 40 个十六进制字符或 28 个 Base64 字符表示。

### 尽管 SHA-1 已被破解，HMAC-SHA1 仍然安全吗？

SHA-1 碰撞不会破坏 HMAC-SHA1，因为 HMAC 的安全性取决于哈希的其他特性。对于现有系统，HMAC-SHA1 仍被认为可以接受。设计新系统时，优先使用 HMAC-SHA256。

### 有哪些已知的 HMAC-SHA1 测试向量？

RFC 2202 的测试用例 2 使用密钥 Jefe 和消息 what do ya want for nothing?，预期结果为 effcdf6ae5eb2fa2d27416d5f184df9c259a7c79。此工具会返回该标记。

### 如何生成 OAuth 1.0a 签名？

将签名基字符串用作消息，并将使用与号连接的使用者密钥和令牌密钥用作密钥。选择 Base64 输出，然后对结果进行百分号编码，以用于 Authorization 标头。

### TOTP 会使用 HMAC-SHA1 吗？

会。大多数身份验证器应用会使用经过 Base32 解码的密钥，对 8 字节的时间计数器计算 HMAC-SHA1。由于该密钥和计数器都是二进制数据，此文本工具无法直接生成 TOTP 代码。

### 密钥和消息如何编码？

两者都会按输入内容原样转换为 UTF-8 字节。不可见空白字符、不同的换行符，或必须先从十六进制或 Base64 解码的密钥，通常会导致结果不匹配。

### 结果会包含我的密钥吗？

不会。响应只包含标记和非机密选项。密钥不会被记录或存储。

### 我应该选择哪种输出格式？

如果另一端显示 40 个字符的小写字符串，请使用十六进制；如果显示以 = 结尾的 28 个字符，请使用 Base64。两者表示相同的 20 字节。

### 我可以使用空密钥吗？

可以，HMAC 接受空密钥，此工具也会进行计算。空密钥无法提供保护，因此只能用于与测试向量或其他工具进行比较。

### 消息最长可以多长？

每个请求中的消息和密钥合计最多可包含 5 MiB 文本。标记会立即计算，且两项输入都不会被存储。

在这里投放广告？

[给我们发邮件](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)
