HMAC 生成器(SHA-1 / 256 / 384 / 512)
开发
为消息与密钥用 SHA-1·256·384·512 生成 HMAC 签名。密钥可用 UTF-8、Base64 或 Hex 编码——当密钥以其他格式保存时很有用。输出 hex 或 Base64。全部计算在浏览器 `crypto.subtle.sign` 完成,绝不外传。常用于验证 Stripe、GitHub、Shopify、Slack 的 webhook 签名。
—
签名
请输入消息和密钥。
使用方法
- 粘贴消息与密钥。
- 选择密钥编码(UTF-8 最常见;Stripe、GitHub 用 UTF-8,AWS SigV4 用派生 hex 密钥)。
- 选择算法与输出格式——结果实时更新。
常见问题
- 用哪种算法?
- HMAC-SHA256 是现代默认——Stripe、GitHub、Shopify、AWS SigV4 都用。新代码避免 SHA-1(虽对 HMAC 攻击仍安全,但缺乏未来性)。
- 为什么需要密钥编码?
- 有些 API 把密钥以 Base64 或 Hex 提供。当作 UTF-8 处理会得到与服务器不一致的签名。按已发布的密钥编码匹配。
- hex 与 Base64 输出有讲究吗?
- 每个 API 期望特定格式——GitHub 要 `sha256=` 前缀的 hex,Stripe 也是 hex,Slack 也是 hex,AWS 同样。Base64 出现在某些自定协议中。
- 能验证签名吗?
- 间接——计算 HMAC 后与期望签名比较。为安全应用常量时间比较,浏览器的 `===` 并非如此。