JWT解析器
解码 JWT(JSON Web Token)的 Header、Payload、Signature,展示载荷声明和过期时间
关于 JWT解析器
- JWT(JSON Web Token)是一种紧凑的身份验证令牌,由 Header.Payload.Signature 三部分组成
- 本工具解码 Header 和 Payload(Base64Url 解码),并格式化展示其中的声明(claims)
- 常用于调试 OAuth2/OpenID Connect 登录流程、检查 Token 有效期和权限范围
操作说明
- 粘贴完整的 JWT 字符串(格式:xxxxx.yyyyy.zzzzz),点击「解析」
- 工具会自动识别算法类型、过期时间(exp)、签发时间(iat)等标准声明
- 支持 Ctrl+Enter 快捷键触发解析
注意事项
- 本工具仅解码 JWT,不验证签名(签名验证需要密钥,无法在前端安全完成)
- 请勿将生产环境的真实 Token 粘贴到任何在线工具中
- 所有处理均在浏览器本地完成,不会上传任何数据
JWT 知识点
什么是 JWT?
JWT(JSON Web Token,RFC 7519)是一种开放标准,用于在各方之间以 JSON 对象的形式安全传输信息。 由于信息经过数字签名,可以被验证和信任。JWT 可以使用 HMAC 算法或 RSA/ECDSA 公私钥对进行签名。
JWT 结构
JWT 由三部分组成,用 . 分隔:
Header.Payload.Signature
Header(头部)
声明令牌类型和签名算法,Base64Url 编码。
{"alg": "HS256",
"typ": "JWT"}
Payload(载荷)
包含声明(Claims),即关于实体和附加数据的陈述,Base64Url 编码。
{"sub": "1234567890",
"name": "Zhang San",
"exp": 9999999999}
Signature(签名)
对 Header 和 Payload 的签名,用于验证消息未被篡改。
HMACSHA256( base64(header) + "." + base64(payload), secret )
标准声明(Registered Claims)
| 字段 | 全称 | 说明 | 是否必须 |
|---|---|---|---|
iss | Issuer | 签发者,标识签发 JWT 的主体 | 可选 |
sub | Subject | 主题,标识 JWT 所面向的用户 | 可选 |
aud | Audience | 受众,标识 JWT 的接收方 | 可选 |
exp | Expiration Time | 过期时间,Unix 时间戳(秒),超过此时间 Token 失效 | 推荐 |
nbf | Not Before | 生效时间,在此时间之前 Token 不可用 | 可选 |
iat | Issued At | 签发时间,Unix 时间戳(秒) | 推荐 |
jti | JWT ID | JWT 唯一标识符,用于防止重放攻击 | 可选 |
常用签名算法
| 算法 | 类型 | 说明 | 适用场景 |
|---|---|---|---|
HS256 | 对称(HMAC) | HMAC + SHA-256,使用同一密钥签名和验证 | 单体应用、内部服务 |
HS384 | 对称(HMAC) | HMAC + SHA-384 | 需要更高安全强度的场景 |
HS512 | 对称(HMAC) | HMAC + SHA-512 | 高安全要求场景 |
RS256 | 非对称(RSA) | RSA + SHA-256,私钥签名、公钥验证 | 微服务、第三方验证 |
ES256 | 非对称(ECDSA) | ECDSA + SHA-256,密钥更短、性能更好 | 移动端、IoT 设备 |
none | 无签名 | 不签名,存在安全风险,生产环境禁止使用 | 仅测试 |
安全注意事项
- JWT Payload 仅做 Base64Url 编码,不加密,任何人都可以解码查看内容,切勿在 Payload 中存放密码、密钥等敏感信息
- 始终验证签名,拒绝
alg: none的 Token,防止算法混淆攻击(Algorithm Confusion Attack) - 设置合理的
exp过期时间,避免 Token 长期有效带来的安全风险 - 使用 HTTPS 传输 JWT,防止中间人截获
- 将 JWT 存储在
httpOnly Cookie中比localStorage更安全,可防止 XSS 攻击窃取 Token - 需要主动吊销 Token 时,可结合黑名单(Redis)或使用短期 Token + Refresh Token 机制