← 返回工具箱

JWT 解析

JWT DECODER · 编解码与安全

把三段式 token 拆开看:Header 算法、Payload 声明、过期时间一目了然。纯解码,不验签。

JWT TOKEN
HEADER
PAYLOAD
声明解读
本地验签(可选)
编辑重编码
解码与验签均在本机完成;HS* 重签使用上方已填密钥,RS*/ES*/PS* 仅重编码 base64 段(不诱导粘贴私钥)。alg=none 仅解码并给出安全警告。请勿粘贴生产环境长期 token —— 虽然它哪里也不去。

>_ 使用指南 · GUIDE

把三段式 JWT token 粘贴进来,立即拆开三个部分分别展示:Header(签名算法)、Payload(全部声明字段)、签名本体(Base64 原文)。exp 过期时间、iat 签发时间、nbf 生效时间等声明以「本地可读时间 + 相对时间」双形式展示,已过期的项自动标红。

本工具支持本地验签:HS256/384/512 粘贴共享密钥,RS/PS/ES 家族粘贴公钥(PEM 或 JWK 格式均可,自动识别),浏览器内完成签名校验并区分「签名无效」与「密钥格式错误」两类提示。还支持编辑重编码:修改 payload 后一键重新生成 token——HS* 用已填密钥重签,RS*/ES*/PS* 仅重编码 base64 段(不诱导粘贴私钥)。

验签与解码全程在本机完成,密钥与 token 不出设备。仍建议不要粘贴生产环境的真实长期 token,用测试 token 即可。

>_ 常见问题 · FAQ

Q1 · JWT 的三段分别是什么?

Header(头部,声明签名算法如 HS256)、Payload(载荷,携带 sub/exp/iat 等声明)、Signature(签名)。前两段只是 Base64URL 编码,任何人都能解码看到内容,签名才是防篡改的部分。所以 JWT 的 Payload 不该放敏感明文。

Q2 · 这个工具能验证 token 是否有效吗?

能。粘贴签名密钥(HS* 家族)或公钥(RS*/PS*/ES* 家族,支持 PEM 与 JWK 两种格式),工具在你浏览器内本地验签:绿色标识表示签名有效,红色表示签名无效,密钥格式不对会单独提示。支持 HS256/384/512、RS256/384/512、PS256/384/512、ES256/384/512 全部主流算法。注意:验签只证明「签名与内容匹配」,token 是否被服务端吊销仍以你的服务端为准。

Q3 · 怎么知道 token 什么时候过期?

看 Payload 里的 exp 字段(Unix 时间戳,秒级)。本工具已自动换算成你本地时区的可读时间,并在 exp/nbf/iat 旁标注相对时间(如「3 小时后过期」),已过期的项标红。排查「莫名被登出」时,先看 exp:它早于当前时间,说明是正常过期,应查刷新 token 逻辑而不是登录逻辑。

Q4 · alg 为 none 的 token 是什么?能用吗?

alg: none 表示不签名——任何人都能伪造内容,安全上等同于明文。本工具对这类 token 给出显眼警告,只做解码展示。正规系统不应接受 alg=none 的 token(历史上多个 JWT 库因此出过绕过漏洞);如果你的服务端还在接受它,尽快修掉。

Q5 · token 没过期但接口返回 401,可能是什么原因?

常见原因:服务端换了签名密钥(旧 token 验签失败——用本工具的验签功能立刻能确认)、token 被主动吊销(如改密码后)、接口要求的 scope/角色不满足、多端登录策略踢出旧会话。先用本工具核对 payload 字段与签名,排除最简单的原因后再查服务端日志。

嵌入代码

把下面的代码复制到你的网页,即可将本工具嵌入为 iframe(自动隐藏导航与页脚)。

高度px
此工具在你的浏览器本地运行,输入内容不会上传。按 Ctrl K 可随时切换到其他工具。