JWT 解码器

粘贴 JSON Web Token,本地解析 Header 与 Payload,自动检测过期状态

🛡
纯本地工具:JWT 仅在浏览器内解析,不会上传到任何服务器。可放心粘贴包含敏感信息的 Token。
⚠
检测到 JWT 中可能包含敏感字段()。本工具纯本地运行,数据不会离开您的浏览器,请放心使用。

Header(头部)

Base64Url
等待输入...

Payload(载荷)

Base64Url
等待输入...

原始 Token

3 段结构
等待输入...

签名验签(本地公钥验证)

⚠ HS256 密钥粘贴到网页仅建议开发环境测试用,生产密钥禁止粘贴。
粘贴 JWT 与公钥后点击「验证签名」查看结果

JWT 解码使用方法

把 Token 粘贴进输入框(形如 eyJhbGciOi... 的三段式字符串),右侧即时展示解码结果:Header(签名算法 alg、令牌类型 typ)、Payload(全部 Claims:sub、iat、exp、自定义字段等)以格式化 JSON 呈现,无需手动 base64。工具同时做三项自动检查:exp 过期时间是否已超(显示剩余有效期)、格式是否为合法三段式、字符串里是否包含敏感字段(如 password、secret)并给出提示。编码、解码、检查全部在浏览器本地完成。

典型排查场景:接口报 401 时先看 exp 是否过期、iat 是否超前(服务器时钟不同步);排查权限问题看 payload 里的角色/范围字段有没有签对;调试第三方登录回调时确认签发方(iss)和受众(aud)与预期一致。一句话记住三段结构:Header 和 Payload 只是 Base64Url 编码(可逆、人人可读),第三段 Signature 才是防篡改的——所以永远不要在 Token 里放敏感明文。

JWT 验签使用方法

本工具已支持本地公钥验签:RS256 / ES256 使用 PEM 格式公钥(公钥本身无保密需求),HS256 仅建议开发环境测试。选择算法后粘贴对应密钥,点击「验证签名」即可在浏览器本地完成校验,结果仅 yourself 可见。若 JWT 的 header.alg 与所选算法不一致,会先行提示「算法不匹配」;若 Token 被篡改或密钥不对,则显示「签名无效」。验签通过且 exp 已过期时,过期 badge 仍会独立显示,两者互不覆盖。

常见问题

解码会泄露我的 Token 吗?不会。解码在浏览器本地进行,无网络请求、无存储,刷新即消失。本工具新增本地验签功能后,密钥同样不会离开浏览器。但生产环境的 HS256 secret 仍禁止粘贴到任何在线工具,建议在本地后端或官方库中验证。

为什么 JWT 不算加密?JWT 的前两段是 Base64Url 编码而非加密,任何人拿到 Token 都能直接读出内容(本工具就是证明)。它的安全目标是「防篡改」而非「保密」——签名保证了 Payload 没被改过,但内容本身是公开的。需要保密请配合 HTTPS 并避免在 Payload 中放敏感数据,或使用 JWE 加密令牌。

签名校验怎么做?本工具能验吗?本工具已支持 RS256 / ES256 公钥验签(公钥本身无保密需求)与 HS256 测试验签(密钥粘贴仅限开发环境)。RS256 / ES256 使用 PEM 公钥在浏览器本地调用 WebCrypto 验证;HS256 因密钥需保密,不建议在在线工具中使用。生产环境仍推荐在后端用官方库(PyJWT、jsonwebtoken 等)验证。

报错 "Invalid token" 一般是什么原因?常见四种:① 只复制了三段中的一两段;② Token 带了 Bearer 前缀或引号——去掉再试;③ Token 是不透明的 session ID(形如随机长串、没有点号分隔),那不是 JWT;④ Base64Url 段里混入了换行或空格。

Token 过期了怎么续?过期是设计行为,Payload 里的 exp 由签发方写死、无法修改(改了签名就不匹配)。正确做法是走刷新流程:用 refresh token 换新 access token,或重新登录。临时调试想"延长"有效期,只能由签发方调整过期时间后重新签发。