JWT解码工具

在线 JWT 解码工具,本地解析 JSON Web Token 的 Header、Payload,显示算法、签发时间、过期时间等,数据不上传,适合调试登录态和接口。

功能说明

本工具用于解码 JWT(JSON Web Token)字符串。JWT 由三段组成,分别以点号(.)分隔:Header(头部)、Payload(载荷)、Signature(签名)。工具会将 Header 和 Payload 从 Base64URL 编码还原为 JSON 文本,并对 JSON 中的键名、字符串、数字和布尔值进行颜色高亮,方便阅读。同时,工具会识别 Payload 中常见的 iat(签发时间)、exp(过期时间)、nbf(生效时间)字段,将其 Unix 时间戳转换为本地可读时间,并判断 exp 是否已过期。签名段仅展示原始内容,不进行任何验证。

使用方法

计算原理

JWT 的 Header 和 Payload 使用 Base64URL 编码,与标准 Base64 的区别在于:- 代替 +,_ 代替 /,且省略末尾的 = 填充字符。解码时,先将 Base64URL 字符替换回标准 Base64 字符,补足填充符,再用 atob() 解码为二进制字符串,最后通过 decodeURIComponent(escape()) 还原为 UTF-8 文本。时间戳字段(如 iat、exp、nbf)为 Unix 时间戳(秒),乘以 1000 后转换为 Date 对象,再格式化为本地时间字符串。过期判断基于当前时间(秒)与 exp 值比较。

注意事项

JWT 解码失败,提示“格式不正确”怎么办?

请检查输入的 JWT 是否完整,且包含两个点号(.),即共有三段。有些 JWT 可能只包含两段(如某些简化场景),但标准 JWT 必须有三段。另外,请确保没有多余的空格或换行。

为什么解码后 Payload 中的中文显示为乱码?

JWT 的 Payload 通常使用 UTF-8 编码,本工具已按 UTF-8 解码。如果仍然乱码,可能是原始 JWT 使用了其他编码(如 ISO-8859-1),这种情况较少见,建议检查生成 JWT 的代码是否使用了 UTF-8。

工具能验证签名吗?

不能。本工具仅解码并展示签名段,不进行任何签名验证。签名验证需要知道密钥(HMAC)或公钥(RSA/ECDSA),且涉及复杂的密码学计算。如需验证,请使用专业的 JWT 库(如 jsonwebtoken、jose 等)。

exp 字段显示“已过期”是否准确?

判断基于您设备的当前时间与 exp 值比较。如果您的设备时间不准确,判断结果可能不准确。另外,exp 是 Unix 时间戳(秒),工具已正确换算。请注意,有些 JWT 的 exp 可能是字符串形式,工具也能识别并转换。