JWT 解析 — 不用把令牌交出去也能看内容
看清一个令牌里装了什么 —— 而不用把它交给任何人。
在你的设备上运行 你粘贴的内容由你自己的浏览器处理,不会发送到任何服务器,离开页面后也不会留在任何地方。
一句话答案
JSON Web Token 可以在浏览器里免费解析,全程不传输。令牌按点号拆成三段,头部和载荷经 Base64url 解码后格式化为 JSON,注册的时间声明 iat、nbf 和 exp 会另外换算成日期,并标注是否已经过期。签名会原样显示但不做校验,因为校验需要签名密钥,而任何密钥都不该被粘贴进一个网页。
一览
| 支持输入 | 一个 JWT(header.payload.signature) |
|---|---|
| 输出格式 | 格式化 JSON,时间声明附带日期 |
| 处理方式 | 浏览器本地 |
| 价格 | 免费,无次数限制 |
| 账号 | 无需注册 |
JWT 并没有被加密。它的头部和载荷只是 Base64url 编码的 JSON,任何拿到令牌的人都能读;签名只能证明令牌是由持有密钥的一方签发的,并不会遮住其中的内容。正因如此,解析一个 JWT 完全是本地、离线的操作 —— 这也是它能够在页面内完成的前提。
这也说明了“在哪里解析”为什么重要。出现在 bug 报告里的 JWT 往往是一份还活着的凭据:在它过期之前,任何持有者都能以那个用户的身份行事。把它粘贴到一个在服务端解析的网站,等于把这份凭据整个交出去 —— 这是这个工具背后不设服务器的最有力理由。
使用步骤
- 1
粘贴令牌
整段粘进来即可,前面带不带 Bearer 都行。三段之间以点号分隔。
- 2
点击转换
头部和载荷会以格式化 JSON 呈现,时间类声明另外换算成日期。
- 3
查看有效期
exp 声明会按你设备的时钟标注为“已过期”或“仍然有效”。
- 4
复制你需要的部分
复制解析结果,或者下载成 .json 文件。
常见问题
我的令牌会被发到服务器吗?
不会,这正是这个页面存在的意义。拆分和 Base64 解码都在你自己的标签页里完成。JWT 通常是一份还能用的凭据,任何把它传输出去的做法,等于把一个账号拱手让人。
能校验签名吗?
不能,而且是刻意如此。校验需要签名密钥或公钥,而让人把签名密钥粘贴进网页,正是本站要避免的做法。签名会原样显示以便肉眼比对,并明确标注“未验证”,免得有人把“没有红色警告”误读成“已通过”。
JWT 是加密的吗?
不是。头部和载荷是 Base64url 编码的 JSON —— 那是编码,不是加密,拿到令牌的人都能读。所以千万不要把持有者不该看到的内容放进 JWT 的载荷。
为什么这里说已过期,服务端却还认?
exp 是拿你自己设备的时钟去比的。如果那个时钟不准,或者服务端为时钟偏差留了几秒余量,两边在临界点前后就会给出不同结论。
什么都解不出来,是我的令牌坏了吗?
先确认它确实有三段、以点号分隔,并且复制时没有被截断。中间混进一个换行,或者最后一段丢了,是最常见的原因。