JWT 解析 - 在线解码、过期检查与签名验证
解析 JWT 的 Header 与 Payload,把 exp、iat、nbf 翻成可读时间并判断是否过期,还能用密钥验证 HS256、HS384、HS512 签名
The tool itself switches to English, but this long-form guide is currently written in Chinese only.
JWT 解析 - 在线解码、过期检查与签名验证是什么
JWT 是前后端分离项目里最常见的登录凭证,它由三段 Base64 拼成:头部说明算法、载荷放用户信息与有效期、最后一段是签名。这个工具把三段解开并按字段展示,还会把 exp、iat、nbf 这些秒级时间戳翻成本地时间,同时判断「这个 token 现在还能不能用」。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用JWT 解析 - 在线解码、过期检查与签名验证
- 把 token 粘进输入框,带不带 Bearer 前缀都可以
- 顶部徽章会立刻告诉你状态:在有效期内、已过期、尚未生效、没有过期时间,以及最危险的「算法是 none」
- 下方分别展示 Header 与 Payload 的格式化 JSON,再下面一张表把标准字段(iss、sub、aud、exp)与自定义字段分开列出
- 想确认内容有没有被改过,在「验证签名」里填签名用的密钥点验证。只支持 HS256、HS384、HS512 这三种对称算法
示例
输入
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...输出
Header: {"alg":"HS256","typ":"JWT"};Payload 含 sub、expexp 会显示成本地时间与剩余有效期
常见问题
为什么 RS256 的 token 验证不了?
RS256 用非对称密钥,验证需要签发方的公钥,而公钥的获取方式每个系统都不一样(JWKS 地址、固定配置)。本工具只做本地 HMAC 验证,不联网取公钥,所以非对称算法只解析不验证。
token 没过期但接口还是返回 401,是什么原因?
常见有三类:服务端校验的签名密钥与签发时不一致;token 里的 aud 或 iss 与服务端配置不匹配;以及服务端有时钟偏差,或者还额外校验了 jti 是否已被拉黑。逐项对一遍比猜快。
在这里粘贴真实 token 安全吗?
解析与签名验证都在你的浏览器里完成,不会发到服务器。但真实生产环境的 token 仍然建议在测试环境用假数据调试——万一浏览器装了采集类插件,它读得到页面内容。
小提示
- Payload 只是 Base64 编码,不是加密。任何人拿到 token 都能看到里面的用户 ID、角色、邮箱,所以不要把敏感信息塞进去
- 时间戳单位是秒不是毫秒。自己拼 token 时写成毫秒,结果会是一个几万年后的过期时间,看起来永远有效
- alg 为 none 的 token 任何人都能伪造,因为根本没有签名。看到这个值就说明签发方有严重问题
- 「解出来是合法 JSON」不代表 token 可信。这个工具能判断过期时间,但只有签名验证通过才能说明内容没被篡改