API 签名生成器
根据消息和密钥生成 HMAC-SHA256 签名 — 这是 AWS 风格和通用 API 请求身份验证方案所使用的规范字符串签名模式。输出为 hex 或 Base64。
输入
输出
上述消息的 HMAC-SHA256,使用您的密钥计算。
使用指南
这个工具是做什么的?
它根据一条消息("要签名的字符串")和一个密钥计算 HMAC-SHA256 签名,并以 hex 或 Base64 输出结果 — 这正是 AWS Signature V4、许多 webhook 验证方案 以及大多数自建的"为 API 请求签名"认证系统背后的构建模块。
什么是 HMAC 签名,为什么它很重要?
HMAC(基于哈希的消息认证码)将加密哈希函数 — 此处为 SHA-256 — 与密钥结合,只有知道密钥的人才能为给定的消息生成有效签名,而任何拥有密钥的人都可以验证签名。API 用这种方式同时证明两件事:请求确实来自密钥持有者,且其内容在传输过程中未被篡改。与单纯的 SHA-256 不同,仅对消息进行哈希会让任何人都能重新计算出相同的哈希 — 正是密钥使其无法伪造。
典型流程:从请求的相关部分(HTTP 方法、路径、标头、时间戳、正文 — 具体规则因提供商而异)构建一个规范字符串,用 API 密钥对该字符串进行 HMAC 签名,然后将生成的签名随请求一起发送,通常放在标头中。接收服务器重建相同的规范字符串,用其存档的密钥签名,然后检查两个签名是否匹配。
如何使用
- 将需要签名的确切字符串粘贴到要签名的字符串中 — 可以是原始消息,也可以是按 API 提供商的规范构建的规范请求字符串(方法、路径、标头、时间戳、正文,按要求顺序拼接)。
- 输入您的密钥。
- 为输出选择 Hex 或 Base64 — 请查看 API 提供商的文档,确认它期望哪种格式。
- 复制签名并随请求一起发送,通常放在
Authorization或自定义签名标头中。
签名会随您输入自动更新。
常见问题
这与 AWS Signature V4 或特定供应商的方案完全一致吗? 此工具计算的是这些方案所基于的通用 HMAC-SHA256 原语,而不是完整的供应商专属实现(例如,AWS SigV4 在 HMAC-SHA256 之上叠加了多轮密钥派生和非常特殊的规范请求格式)。如果您的提供商提供了要签名的规范字符串,请将该字符串粘贴到此处,生成的 HMAC 就是正确的;如果它需要派生/嵌套密钥(如 SigV4 的签名密钥链),您需要在最终 HMAC 之前执行这些派生步骤。
为什么只有 SHA-256? SHA-256 是几乎所有现代 API 签名方案都标准化的哈希函数 — 它是一个强大且经过充分验证的默认选择,没有已知的实际攻击。基于 SHA-1 的旧方案正被整个行业逐步弃用,因此此工具不提供它们。
Hex 还是 Base64 — 我应该用哪个? 取决于您的 API 期望哪个。两者都对相同的 32 字节签名进行编码;hex 长度是 Base64 的两倍,但更容易目视核对,Base64 更紧凑。请查阅提供商的文档。
我可以用它来验证收到的签名吗? 可以 — 用相同的密钥对相同的消息签名,并将结果(逐字符)与收到的签名进行比较。不一致意味着消息或密钥与发送方使用的不同。
隐私
在浏览器中使用时,所有内容 — 包括您的密钥 — 都在本地通过 JavaScript 计算,绝不会被传输或记录。如果您改为通过 API 调用此工具,您的消息和密钥仅针对该单个请求进行处理,不会在服务器端记录或存储;即便如此,请将您在此处粘贴的任何 API 密钥(浏览器或 API)视为敏感信息,并在可以避免的情况下,不要重复使用生产密钥于共享或记录的环境中。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/api-signature-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "message",
"secretKey": "key",
"outputFormat": "hex"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `api-signature-generator` tool (API Signature Generator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.