JWT 生成器使用指南:创建 HS256/RS256 签名 Token
实用工具(更新于 2026年6月17日)
JWT 是什么
JSON Web Token(JWT)是一种紧凑的、自包含的令牌格式,广泛用于身份认证和信息交换:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IuW8uuWMheS4gOS4quS4iuaenCIsImlhdCI6MTcwMDAwMDAwMCwiZXhwIjoxNzAwMDA4MDAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
↑ Header ↑ Payload ↑ Signature
JWT 由三段 Base64URL 编码的字符串组成,用
.分隔。
三段式结构详解
Header(头部)
{
"alg": "HS256",
"typ": "JWT"
}
| 字段 | 含义 |
|---|---|
alg |
签名算法:HS256、RS256 等 |
typ |
令牌类型,固定为 JWT |
Payload(载荷)
{
"sub": "1234567890",
"name": "张三",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
| 字段 | 含义 | 是否必须 |
|---|---|---|
sub |
主体(用户 ID) | 推荐 |
iat |
签发时间(Issued At) | 推荐 |
exp |
过期时间(Expiration) | 必须 |
iss |
签发者(Issuer) | 可选 |
aud |
受众(Audience) | 可选 |
nbf |
生效时间(Not Before) | 可选 |
Signature(签名)
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
签名保证 Token 未被篡改,但 Payload 默认不加密——不要放敏感信息!
HS256 vs RS256
| 对比项 | HS256 | RS256 |
|---|---|---|
| 算法类型 | 对称加密(HMAC) | 非对称加密(RSA) |
| 密钥 | 共享密钥(字符串) | 公钥 + 私钥 |
| 验证方 | 需要同一密钥 | 只需公钥 |
| 适用场景 | 单服务、微服务内部 | 多服务、第三方验证 |
| 密钥管理 | 简单,但泄露风险高 | 更安全,公钥可分发 |
选择建议:单体应用用 HS256,微服务/开放 API 用 RS256。
使用 JWT 生成器
第一步:打开工具
访问 JWT 生成器,进入 Token 创建界面。
第二步:选择签名算法
- 单服务场景:选择 HS256,输入共享密钥
- 多服务场景:选择 RS256,粘贴私钥
第三步:填写 Payload
在载荷编辑器中添加 Claims:
{
"sub": "user_10086",
"name": "张三",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
iat和exp使用 Unix 时间戳(秒)。工具支持可视化设置过期时间。
第四步:生成 Token
点击「生成」,工具自动完成:
- Base64URL 编码 Header
- Base64URL 编码 Payload
- 使用密钥计算签名
- 拼接为完整 JWT 字符串
第五步:验证 Token
将生成的 Token 粘贴到 JWT 解码工具,确认:
- Header 和 Payload 解码正确
- 签名验证通过
exp时间未过期
过期时间最佳实践
| 场景 | 推荐 exp | 原因 |
|---|---|---|
| Access Token | 15-30 分钟 | 短期有效,降低泄露风险 |
| Refresh Token | 7-30 天 | 长期有效,用于续签 |
| 邮件验证链接 | 1-24 小时 | 一次性使用 |
| API Key | 不设 exp 或 1 年+ | 长期凭证 |
建议同时使用 Access Token + Refresh Token 双 Token 方案。
Base64URL 编码注意
JWT 使用 Base64URL 编码,与标准 Base64 的区别:
| 差异 | 标准 Base64 | Base64URL |
|---|---|---|
+ |
+ |
- |
/ |
/ |
_ |
填充 = |
有 | 无 |
使用 Base64 编解码工具 时注意选择 URL 安全模式。
常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
| 签名验证失败 | 密钥不匹配 | 确认生成和验证使用同一密钥 |
| Token 过期 | exp 时间已过 | 重新生成或使用 Refresh Token |
| Payload 乱码 | 未使用 Base64URL 解码 | 使用 JWT 解码工具 |
| 敏感信息泄露 | Payload 未加密 | 不要在 Payload 中放密码等敏感数据 |
| RS256 验证失败 | 公钥不匹配 | 确认公钥与私钥是同一对 |
总结
JWT 是现代 Web 认证的核心技术。理解三段式结构和 HS256/RS256 的区别,正确设置 Claims 和过期时间,是安全使用 JWT 的关键。JWT 生成器 和 JWT 解码工具 让你在浏览器中完成 Token 的创建、解码和验证全流程。
#JWT#Token生成#HS256#RS256#认证