示例:
JWT Token
HEADER
粘贴 JWT 后这里显示已解码的 Header
PAYLOAD
粘贴 JWT 后这里显示已解码的 Payload
SIGNATURE
签名(Base64URL 原文,HMAC 算法可在下方校验)
🔐 HMAC 签名校验
仅 HS256 / HS384 / HS512 算法可在浏览器本地校验。粘贴生成 Token 时使用的密钥(secret):

JWT 的常见使用场景

🔑
API 认证
后端签发短期 JWT,前端在 Authorization: Bearer ... 头中携带。本工具帮你快速看清 Token 里到底放了什么。
🔄
OAuth / OIDC 调试
OAuth2 access_token、id_token 大多是 JWT。粘贴 Token 即可查看 iss、aud、scope、exp,定位 401/403 问题。
过期时间排查
服务器与客户端时钟漂移会导致 JWT 看似已过期。本工具直观显示剩余时间或过期多久。
签名校验
对 HS256 类对称算法,输入密钥即可本地校验,确认 Token 没有被篡改。校验过程不离开浏览器。

使用技巧

  • 三段着色:粘贴后输入框中 Header、Payload、Signature 会以红 / 紫 / 蓝三色分段高亮,方便肉眼区分。
  • 时间声明:iat、exp、nbf 等数字时间戳会自动转为本地时间,红色 = 已过期,黄色 = 时间异常(如 iat 在未来),绿色 = 有效。
  • 本地签名校验:HS256/384/512 用浏览器原生 SubtleCrypto.verify,密钥不离开本机。RS / ES 算法需公钥,目前未实现在线校验。
  • JWT ≠ JWE:本工具只解析 JWS(已签名)的 JWT,对加密的 JWT(5 段,xxx.xxx.xxx.xxx.xxx)不做解密。
  • 不要把密码放进 Payload:JWT 是明文 Base64URL 编码,任何拿到 Token 的人都可读。Payload 应只放无害的标识字段。
常见问题
粘贴 JWT 后会被发送到服务器吗?
不会。Token 完全在你的浏览器内解码(atob + JSON.parse),从不离开你的设备。HMAC 签名校验也使用浏览器原生 SubtleCrypto 在本地完成。可以放心粘贴生产环境 Token。
支持校验 RS256 / ES256 等非对称算法吗?
当前内置 HS256 / HS384 / HS512 三种 HMAC 对称算法的本地校验。RS / PS / ES 系列依赖 PEM 或 JWK 格式的公钥,由于公钥分发场景较复杂,暂未开放在线校验入口。Token 本身依然能正常解码并展示算法和过期时间。
为什么显示 'iat in future' 或 'expired'?
JWT 的 iat(签发时间)、exp(过期时间)、nbf(生效时间)均为 Unix 秒级时间戳。如果 iat 在未来或 exp 已过去,工具会用红色 / 黄色 / 绿色标签直观提示,帮你快速排查时区或时钟漂移问题。
JWT 解码 ≠ 解密,对吗?
对。常见的 JWT(如 HS256/RS256 签名后的 Token)只是 Base64URL 编码,并未加密,任何人拿到后都可读出 Payload 内容。请勿把密码、银行卡号等敏感信息明文写入 JWT。如需保密内容应使用 JWE(加密的 JWT),或在传输层使用 HTTPS 并将敏感数据放在仅服务端可见的 Session 中。