什么是JWT 解码?
JWT 解码工具把 JSON Web Token 的三段结构拆开,展示 Header 与 Payload 的内容,并把 iat、exp 等时间戳换算成可读时间。解码在浏览器内完成,令牌不会上传,可用于调试生产环境 Token。
怎么用JWT 解码?
- 1把完整的 JWT 粘贴进来(形如 xxxxx.yyyyy.zzzzz)。
- 2查看 Header 里的算法与 Payload 里的声明。
- 3检查 exp 是否已过期、iss 与 aud 是否符合预期。
- 4需要验证签名时,请在后端用密钥校验,前端只做解码。
在代码里怎么实现?
一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。
JavaScript
Shell
// 仅解码,不验证签名
const decodePayload = (token) => {
const part = token.split('.')[1];
const json = atob(part.replace(/-/g, '+').replace(/_/g, '/'));
return JSON.parse(decodeURIComponent(escape(json)));
};常见错误与排查
| 现象 | 成因 | 修复 |
|---|---|---|
| 解码报错:段数不足 | 复制时丢掉了签名段,或多复制了 Bearer 前缀。 | 去掉 Bearer 与空格,确认字符串里有两个英文句点。 |
| exp 显示的时间早于现在 | 令牌已过期,服务端会返回 401。 | 用刷新令牌重新获取,或检查服务器与客户端时钟是否偏移。 |
常见问题
在线解码 JWT 安全吗?+
本工具的解码完全在你的浏览器内执行,没有任何上传请求,因此可以用于调试含敏感声明的生产令牌。但请注意通用原则:任何未验证过实现的在线工具都不应粘贴长期有效的高权限令牌。
为什么解码不需要密钥?+
因为 JWT 的 Header 与 Payload 只是 Base64URL 编码,不是加密,任何人拿到令牌都能读取内容。密钥只用于生成和验证第三段签名,这也是不能把敏感信息放进 Payload 的原因。
这个工具会校验签名吗?+
不会。校验签名需要密钥,而密钥不应出现在浏览器里。签名校验必须在你的后端服务完成,前端解码只用于查看声明内容与排查过期问题。
相关工具
全部工具Base64 编码 / 解码
Base64 Encoder & Decoder
Base64 编码与解码,支持 UTF-8 与 URL-safe
文件 Base64 转换
File to Base64
文件转 Base64 与 Data URI,文件不上传
URL 编码 / 解码
URL Encoder & Decoder
URL 编码解码,区分整串与参数两种语义
HTML 实体转义 / 反转义
HTML Entity Encoder
HTML 实体转义与反转义
Hex 与文本互转
Hex to Text Converter
文本与十六进制互转,支持多种分隔风格
Unicode 转义 / 还原
Unicode Escape Converter
Unicode 转义与还原,支持三种写法