HMAC如何校验

33 0

HMAC(Hash-based Message Authentication Code)是一种带密钥的消息认证码,定义在 RFC 2104。下面重点说明核对方法。

HMAC如何校验

用 RFC 2104 或 RFC 4231 的测试向量先验证实现,再用本站工具对照业务样例。比较时用恒定时间函数。

示例

输入:密钥 "key",消息 2026-11-11

计算结果:96f1760ec0d384b20e6f5618d1f061eee5de0b5469710254331060ad6b6e212b

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

与相关技术的区别

普通哈希没有密钥,任何人都能计算;HMAC 必须持有密钥才能生成正确值。HMAC 与加密不同:消息本身仍是明文。JWT 的 HS256 使用 HMAC,RS256 则使用非对称签名,两者不可混用。

命令行示例

# OpenSSL
echo -n "abc" | openssl dgst -sha256 -hmac "key"
# Python 见下文

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

常见问题

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

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

【“key”+“abc”的 HMAC-SHA256 是多少?】9c196e32dc0175f86f4b1cb89289d6619de6bee699e4c378e68309ed97a1a6ab。

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

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

标签: 数码开发

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