🪪 JWT 解码工具
在浏览器本地查看 JWT 的 Header、Payload 和时间字段。Token 不会上传,页面也不会验证签名。
作者:kaenfsk · 更新于 2026 年 10 月 12 日 · 内容与维护标准
这个工具做什么,不做什么
JWT(JSON Web Token,RFC 7519)通常由 Header、Payload 和 Signature 三段组成,中间用点号分隔。本站工具会解析前两段并进行 Base64URL 解码,把 JSON 以缩进格式展示,同时把 exp、iat、nbf 等时间字段转换为北京时间,帮助你快速排查 Token 是否过期、字段是否符合预期。
它不会验证签名,也不会向颁发 Token 的服务器发送请求。所谓“验签”需要持有密钥或公钥,并按照 Header 中的算法正确执行密码学运算;仅凭浏览器里的字符串无法证明 Token 没有被伪造。因此本页面适合调试和教学,不能作为安全系统的授权依据。
JWT 三段结构
| 部分 | 内容 | 本工具的处理 |
|---|---|---|
| Header | 通常包含 alg、typ、kid 等元数据 | Base64URL 解码并格式化 JSON |
| Payload | 包含 iss、sub、aud、exp、iat 等声明和业务字段 | 解码、格式化并识别标准时间字段 |
| Signature | 服务端按算法生成的签名值 | 只显示字符长度,不验证,不猜测密钥 |
请注意,Payload 只是 Base64URL 编码,不是加密。任何拿到 Token 的人都能读取其中的字段,所以不要把密码、身份证号、支付信息或长期有效的密钥直接放进 JWT。需要保密时,应先加密再放入 Token,或者不要把敏感信息放进 Token。
常用声明字段怎么看
- iss(issuer):签发者。用于判断 Token 是否来自预期的认证服务。
- sub(subject):主体标识。通常是用户 ID,但不应该依赖它直接做权限判断。
- aud(audience):接收方。验证时要确认当前服务在允许的受众列表中。
- exp(expiration time):过期时间,使用 Unix 秒级时间戳。没有 exp 的 Token 可能长期有效,需要特别留意。
- nbf(not before):生效时间。当前时间早于 nbf 时应拒绝使用。
- iat(issued at):签发时间,用于判断 Token 新旧和辅助排查缓存问题。
- jti(JWT ID):唯一标识,可用于防重放或撤销列表,但需要服务端配合才能生效。
一次规范的 JWT 排查流程
- 先确认字符串确实有三段,且没有复制到多余空格、换行或引号。
- 解码 Header,确认 alg、typ、kid 与后端配置一致,尤其不要在没有明确理由时接受 alg 为 none 的 Token。
- 解码 Payload,检查 sub、aud、iss 和业务字段是否符合当前环境和用户身份。
- 把 exp、nbf、iat 与服务器时间对照。客户端时间错误很常见,不能只根据本地时间判断。
- 最后回到服务端日志,验证签名、撤销状态、权限和密钥版本。解码工具只能提供线索,不能替代这一步。
常见问题与安全边界
为什么解码成功不代表 Token 合法?
Base64URL 是公开的编码方式,任何人都可以修改 Payload 后重新编码。如果没有验证签名,伪造者可以随意修改用户 ID 或角色字段。生产系统的授权必须由服务端使用可信密钥验签,并同时检查过期时间、受众、签发者和撤销状态。
为什么页面提示“未过期”,接口仍可能返回 401?
exp 只是其中一个条件。接口还可能因为签名错误、密钥轮换、aud 不匹配、账号被禁用、Token 被撤销或服务器时间偏差而拒绝请求。排查时应同时查看响应中的 WWW-Authenticate 信息和认证服务日志。
可以把生产环境的 Token 粘贴到别的网站吗?
不建议。Token 往往等同于短期登录凭据,任何第三方网站、日志、截图或聊天工具都可能记录它。本站所有解析都在当前浏览器内完成,但更稳妥的做法仍然是在受控的本地环境中使用测试 Token。
接口返回 401 时的排查决策表
| 现象 | 先检查 | 仍失败时继续查 |
|---|---|---|
| 本地正常,部署后全部 401 | 服务端公钥、密钥 ID 和环境变量 | 网关是否重写 Authorization 头 |
| 刚登录就提示过期 | exp 单位和服务器时间 | 签发服务是否使用了毫秒或错误时区 |
| 解码成功但验签失败 | alg、kid、密钥轮换 | 是否对原始 JWT 字符串做了换行或解码 |
| 部分用户 401 | aud、iss、tenant 和角色字段 | 用户是否被禁用、登出或撤销 |
| 偶发 401 | 多实例时钟偏差和缓存密钥 | 网关重试或 Token 过期边界 |
哪些声明可以“看一眼”,哪些必须服务端验证
解码工具适合确认结构、字段名、时间格式和错误环境,但不能证明 Token 可信。iss、aud、exp、nbf、算法和签名都应由服务端按可信配置验证;sub、角色和租户字段只有验签后才能作为授权依据。客户端可以读取部分字段改善交互,但隐藏按钮或路由不等于权限控制。
隐私说明
输入内容只存在于当前页面内存中,本站代码不会把 Token 发送到服务器,也不会写入 Cookie 或 localStorage。页面会加载 Google AdSense 脚本,但广告服务不会获得输入框中的内容。关闭或刷新页面后,解析结果会消失。