JWT 在线解析与签名验证生成 打开工具

JWT 解析:解开三段不等于验证通过

解析 JWT 只需要 base64url 解码,不需要任何密钥——因为 Header 与 Payload 本来就是明文,只是编了个码。所以「解析成功」证明不了任何事,它只说明这段字符串格式正确。

三段分别是什么

header.payload.signature

前两段用 Base64URL 编码(+ / 换成 - _,去掉填充 =),所以能直接解成 JSON。

为什么解析不需要密钥

因为 Payload 从来没被加密过。JWT(更准确说是 JWS)提供的是完整性而不是机密性:签名保证「内容没被改」,但不保证「内容别人看不到」。

把 Token 贴进任何解析工具、甚至手动 base64url 解码,都能读到里面的用户 ID、角色、过期时间。所以不要把敏感信息放进 Payload——手机号、身份证、内部密钥都不该出现在这里。

需要机密性时要用 JWE(加密的 JWT),那是另一套格式,五段而不是三段。

解析成功说明什么、不说明什么

说明:这三段符合 JWT 的格式,Header 与 Payload 是合法 JSON,能解出来。

不说明:签名有效、签发方可信、没有过期、没有被篡改。任何人都能改 Payload 后重新编码,前两段照样能解析成功——只是签名对不上。

这个工具把解析、生成、验证拆成三件事,解析结果旁会明确提示「尚未验证签名」。这个提示不是多余的话,它区分了「看到一个 Token」和「信任一个 Token」。

Payload 里的标准声明

时间是 Unix 秒(10 位),不是毫秒。看到 13 位的时间戳基本可以判定签发方把毫秒塞进来了,这类 Token 的 exp 检查会永远通过(因为数值大得离谱)。

上面这些都不用装软件,也不用注册:打开页面就能用。

打开 JWT 在线解析与签名验证生成 →

常见问题

JWT 是加密的吗?

不是。普通 JWT(JWS)只是编码加签名,Payload 是明文,谁都能读。需要加密请用 JWE。

为什么我的 Token 解析失败?

常见原因:被截断(复制少了字符)、多了 Bearer 前缀、段数不是 3、某段不是合法 base64url。先确认拿到的是完整的三段字符串。

能解析过期的 Token 吗?

能。解析不检查时间,过期只是语义上的失效,格式依然合法。要看是否过期请用「验证签名」并检查 exp,或直接看 Payload 里的 exp 与当前时间。