JWT
JWT 实用工具可解码和检查 JSON Web Token,让你无需私钥即可审查其结构、声明和安全属性。
使用工具
- 在输入字段中粘贴 JWT。工具接受标准的三部分格式,各部分以点分隔。
- 工具会自动拆分标头和载荷部分,并进行 Base64 解码。
- 在下方三个区域中查看解码后的输出。
检查不需要任何密钥材料。签名验证是单独的操作。
解码区域
标头
显示算法(alg)和密钥 ID(kid)字段。算法警告会显示在此处:
| 条件 | 警告级别 |
|---|---|
alg: none | 严重:令牌没有签名 |
alg: HS256 | 提示:对称算法;密钥较弱时可被暴力破解 |
alg: RS256 或 ES256 | 无警告 |
载荷
显示所有声明、各自的值及推断类型。解码的标准声明包括:
| 声明 | 含义 |
|---|---|
iss | 签发者 |
sub | 主体(通常为用户 ID) |
aud | 受众 |
exp | 过期时间 |
nbf | 生效时间下限 |
iat | 签发时间 |
jti | JWT ID(唯一令牌标识符) |
自定义声明显示在标准声明下方。
过期检查
如果令牌包含 exp 声明,工具会将其与当前时间比较,并显示以下状态之一:
- 有效:令牌尚未过期。
- 已过期:令牌已超过过期时间,并显示已过期的时长。
- 无过期时间:令牌没有
exp声明。
签名
显示原始的 Base64url 编码签名。除非你提供密钥,否则工具不会尝试验证;此区域用于参考及确认签名存在。
需要关注的事项
- 某些库会在不验证的情况下接受
alg: none令牌。测试目标应用是否接受它们。 - 长期有效的令牌(
exp比iat晚许多天甚至多年)可能表明应用没有轮换令牌。 - 存储在未加密载荷声明中的敏感数据(个人身份信息、内部 ID、角色标记)可被任何持有令牌的人读取。
- 没有
jti的令牌无法逐个撤销。