HMAC的数据格式

57 0

HMAC(Hash-based Message Authentication Code)是一种带密钥的消息认证码,定义在 RFC 2104。下面重点说明输出与书写约定。

HMAC的数据格式

返回与底层哈希等长的字节,再编码为十六进制或 Base64。

哈希算法、输出格式、密钥与消息的字符集。

示例

输入:密钥 "key",消息 你好,世界

计算结果:ecebc269659999d50a6f74743f5814cf08000c7f7da1bf4efd46ed651778ed94

说明:HMAC-SHA256,密钥与消息均按 UTF-8 字节计算。

常见用途

  • API 请求签名(如许多云服务的签名头)
  • Webhook 回调校验
  • 会话令牌、JWT 的 HS256 就是 HMAC-SHA256
  • 完整性校验且需要鉴别来源时

注意事项

  • 密钥一旦写进前端页面就等于公开
  • 只验证签名而不验证时间戳/随机数,可能遭受重放
  • 消息或密钥的换行、空格都会改变结果
  • HS256 的 JWT 若被改成 alg=none 或换成公钥算法,要在校验库中明确限定算法

本站的HMAC计算工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【HMAC 能当加密用吗?】不能。它只生成认证码,不隐藏原文。

【和直接 hash(key+message) 有什么不同?】直接拼接有长度扩展等隐患;HMAC 按 RFC 2104 构造,是标准做法。

【密钥多长合适?】至少与哈希输出相当,例如 HMAC-SHA256 建议 32 字节随机密钥。

文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 数码开发

抱歉,评论功能暂时关闭!