HMAC生成器

在线HMAC生成器,支持多种哈希算法生成HMAC签名,包括SHA-1、SHA-256、SHA-384、SHA-512等,适用于API签名、消息认证、安全开发等场景

HMAC生成器HMAC在线工具HMAC计算器哈希签名工具API签名生成SHA256 HMAC
最后更新: 2026/6/4

HMAC 生成器

使用多种哈希算法生成 HMAC 签名,支持 SHA-1、SHA-256、SHA-384、SHA-512 等算法。

这是 HMAC 签名的原始消息

密钥用于生成 HMAC,请妥善保管

SHA-256: 256 位,推荐使用,安全且性能良好

使用说明

  • • HMAC (Hash-based Message Authentication Code) 是一种消息认证码
  • • 输入消息和密钥,选择哈希算法和输出格式,点击生成按钮
  • SHA-256是推荐使用的算法,安全且性能良好
  • • SHA-1 和 MD5 已被认为不够安全,不建议用于新项目
  • • 密钥请妥善保管,不要泄露给他人

应用场景

  • • API 请求签名验证
  • • JWT Token 签名
  • • 数据完整性验证
  • • 消息认证
  • • 密码存储(配合其他安全措施)
分享:

使用说明

  1. 消息内容输入框中输入需要进行HMAC签名的原始文本数据
  2. 密钥输入框中输入用于签名的密钥字符串,请妥善保管密钥
  3. 点击选择合适的哈希算法,推荐使用SHA-256,高安全场景可选SHA-512
  4. 选择输出格式为Hex十六进制或Base64,根据集成需求选择
  5. 点击生成HMAC按钮,查看生成的签名结果,点击复制按钮可复制到剪贴板

核心功能

  • 1
    多算法支持
    支持SHA-256、SHA-512、SHA-384、SHA-1等主流哈希算法,可根据安全需求灵活选择,SHA-256为推荐算法,兼顾安全与性能
  • 2
    双格式输出
    支持十六进制Hex和Base64两种输出格式,满足不同系统集成需求,Base64适合网络传输,Hex适合日志查看和比对
  • 3
    密钥签名生成
    输入任意消息内容和密钥,实时生成对应的HMAC签名,密钥本地输入不上传服务器,保障签名过程的安全性
  • 4
    算法对比说明
    每个算法附带推荐标签和安全说明,SHA-256标注为推荐,SHA-512为最高安全级别,SHA-1和MD5标注为已过时或不推荐
  • 5
    结果一键复制
    生成HMAC签名后点击复制按钮即可复制到剪贴板,显示算法类型、输出格式和签名长度,方便直接粘贴使用

适用场景

API签名验证
微服务架构和第三方API调用场景,使用HMAC对请求参数签名,服务端验证签名确保请求未被篡改,保障接口调用安全性
Webhook验证
接收第三方Webhook回调时,使用预共享密钥对请求体生成HMAC签名,与请求头中的签名比对验证消息来源真实性
数据完整性校验
文件传输或数据存储场景,生成HMAC摘要用于后续校验,确保数据在传输或存储过程中未被意外损坏或恶意篡改
JWT令牌签名
JWT标准支持HMAC签名算法,开发测试阶段使用本工具快速生成和验证JWT签名,简化开发调试流程

工具优势

纯浏览器端运行
所有哈希计算均在浏览器本地JavaScript环境执行,消息和密钥不上传服务器,保护您的数据隐私和安全
完全免费使用
无需注册登录,无需付费订阅,无使用次数限制,随时随地打开浏览器即可使用,降低开发测试成本
支持主流算法
内置SHA-256、SHA-512、SHA-384、SHA-1等主流HMAC算法,覆盖绝大多数业务场景需求,并标注算法推荐程度帮助选择

常见问题

Q: 哪个哈希算法最适合我的使用场景?

A: SHA-256是推荐选择,安全性和性能均衡,适用于绝大多数场景。SHA-512提供更高安全强度,适合金融支付等高敏感场景。SHA-1和MD5已被认为不够安全,不建议用于新项目开发,仅用于兼容旧系统。

Q: 我的消息和密钥数据会被上传到服务器吗?

A: 不会。本工具完全在浏览器端运行,所有计算均在本地JavaScript环境中执行,消息内容、密钥和生成的签名均不会发送到任何服务器,您的敏感数据始终留在本地设备上。

Q: 密钥长度有什么要求或建议?

A: HMAC算法支持任意长度的密钥,但建议密钥长度至少与哈希算法输出长度相当。例如SHA-256建议使用32字节或更长的密钥,密钥过短会降低安全性,过长会被自动截断。推荐使用随机生成的高强度密钥。

Q: 十六进制和Base64输出格式有什么区别?

A: 十六进制输出由0-9和a-f组成,长度为摘要字节数的2倍,适合人工查看和日志记录。Base64输出更短,约为十六进制的3分之2长度,适合URL传输、HTTP头或存储空间受限场景,两种格式可互相转换。