跳转到正文

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 文本。标记会立即计算,且两项输入都不会被存储。

关于 OneClick Pro

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