JWT 解析 - 在线解码、过期检查与签名验证

解析 JWT 的 Header 与 Payload,把 exp、iat、nbf 翻成可读时间并判断是否过期,还能用密钥验证 HS256、HS384、HS512 签名

JWT 解析 - 在线解码、过期检查与签名验证是什么

JWT 是前后端分离项目里最常见的登录凭证,它由三段 Base64 拼成:头部说明算法、载荷放用户信息与有效期、最后一段是签名。这个工具把三段解开并按字段展示,还会把 exp、iat、nbf 这些秒级时间戳翻成本地时间,同时判断「这个 token 现在还能不能用」。

所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。

怎么用JWT 解析 - 在线解码、过期检查与签名验证

  1. 把 token 粘进输入框,带不带 Bearer 前缀都可以
  2. 顶部徽章会立刻告诉你状态:在有效期内、已过期、尚未生效、没有过期时间,以及最危险的「算法是 none」
  3. 下方分别展示 Header 与 Payload 的格式化 JSON,再下面一张表把标准字段(iss、sub、aud、exp)与自定义字段分开列出
  4. 想确认内容有没有被改过,在「验证签名」里填签名用的密钥点验证。只支持 HS256、HS384、HS512 这三种对称算法

示例

输入

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

输出

Header: {"alg":"HS256","typ":"JWT"};Payload 含 sub、exp

exp 会显示成本地时间与剩余有效期

常见问题

为什么 RS256 的 token 验证不了?

RS256 用非对称密钥,验证需要签发方的公钥,而公钥的获取方式每个系统都不一样(JWKS 地址、固定配置)。本工具只做本地 HMAC 验证,不联网取公钥,所以非对称算法只解析不验证。

token 没过期但接口还是返回 401,是什么原因?

常见有三类:服务端校验的签名密钥与签发时不一致;token 里的 aud 或 iss 与服务端配置不匹配;以及服务端有时钟偏差,或者还额外校验了 jti 是否已被拉黑。逐项对一遍比猜快。

在这里粘贴真实 token 安全吗?

解析与签名验证都在你的浏览器里完成,不会发到服务器。但真实生产环境的 token 仍然建议在测试环境用假数据调试——万一浏览器装了采集类插件,它读得到页面内容。

小提示

  • Payload 只是 Base64 编码,不是加密。任何人拿到 token 都能看到里面的用户 ID、角色、邮箱,所以不要把敏感信息塞进去
  • 时间戳单位是秒不是毫秒。自己拼 token 时写成毫秒,结果会是一个几万年后的过期时间,看起来永远有效
  • alg 为 none 的 token 任何人都能伪造,因为根本没有签名。看到这个值就说明签发方有严重问题
  • 「解出来是合法 JSON」不代表 token 可信。这个工具能判断过期时间,但只有签名验证通过才能说明内容没被篡改

同类开发工具