UnitConv
设计与开发

JWT 解码器

粘贴 JSON Web Token,立即解码其头部和载荷——完全在浏览器中处理,不上传任何内容

一切都在您的浏览器中本地运行。您的令牌绝不会被上传、存储或发送到任何服务器。本工具只解码令牌——不验证签名,因此不需要任何密钥或公钥。

JSON Web Token

关于本工具

JWT 解码器读取 JSON Web Token 并显示其内部内容。JWT 由用点分隔的三部分组成——头部、载荷和签名——前两部分只是经过 Base64URL 编码的 JSON。本工具将它们解码为可读的格式化 JSON,让您可以查看算法、令牌类型以及每一项声明。诸如 exp(过期)、iat(签发时间)和 nbf(生效时间)等标准时间声明会从原始 UNIX 秒转换为可读日期,过期的令牌会被标记出来。关键在于:本工具从不验证签名,也从不要求任何密钥或公钥;解码只需要令牌本身。因此一切都在您的浏览器中本地完成,不会上传任何内容,从而可以安全地查看令牌而不会将其泄露给服务器。

使用方法

  1. 1 将您的 JSON Web Token(header.payload.signature)粘贴到输入框中,或点击“加载示例”试用。
  2. 2 头部和载荷会被即时解码并显示为格式化 JSON。
  3. 3 查看 alg 和 typ 标记,并将 exp / iat / nbf 读取为可读日期;过期令牌会以红色高亮显示。
  4. 4 使用复制按钮获取解码后的头部或载荷。您粘贴的任何内容都不会离开浏览器。

工作原理

JWT 写作三段用点连接的 Base64URL 字符串:header.payload.signature。Base64URL 与标准 Base64 类似,但用 - 和 _ 代替 + 和 /,并且通常省略末尾的 = 填充。解码器恢复这些字符,补回缺失的填充,调用 atob 得到原始字节,再将其按 UTF-8 重新解释,使非 ASCII 声明能够正确显示。随后头部和载荷被解析为 JSON 并格式化。数值型的 exp、iat 和 nbf 声明是以秒为单位的 UNIX 时间戳,因此乘以 1000 并转换为日期;若 exp 处于过去,则令牌被标记为已过期。签名段按原样显示且从不校验,所以无需密钥,整个过程都留在您的设备上。

常见问题

本工具会验证 JWT 签名吗?

不会。它只解码头部和载荷以供阅读。验证签名需要签名用的密钥或公钥,本工具有意从不索取。这样一切都保持本地,您可以安全地查看令牌内容而不暴露任何密钥。

我的令牌会被发送到服务器吗?

不会。所有解码都通过 JavaScript 在您的浏览器中完成。您的令牌绝不会被上传、记录或存储,并且页面加载后即使离线也能继续工作。在此粘贴敏感令牌是安全的。

exp、iat 和 nbf 字段是什么意思?

它们是以秒为单位的 UNIX 时间戳表示的标准时间声明。exp 是令牌的过期时间,iat 是签发时间,nbf 是它生效的最早时间。本工具将每个值转换为可读日期,并在 exp 处于过去时将令牌标记为已过期。

没有密钥能读取 JWT 吗?

可以。JWT 的头部和载荷只是经过 Base64URL 编码而非加密,因此任何人无需密钥即可读取。密钥或公钥只用于验证签名(证明令牌未被篡改),仅查看内容时永远不需要它。

为什么我的令牌显示乱码或报错?

JWT 必须恰好有用点分隔的三部分,每部分都是有效的 Base64URL,且前两部分必须能解码为有效 JSON。如果某一部分缺失、被截断,或您误粘贴了加密的 JWE 而非签名的 JWS,解码器会报告错误而不是猜测。

相关工具与用途

将 JWT 解码器与 Base64 工具搭配以手动检查各段,与 JSON 格式化工具搭配以重新格式化复制的载荷,与 Unix 时间戳转换工具搭配以核对 exp/iat/nbf 时间。开发者在调试身份验证流程、OAuth/OpenID Connect 令牌、API 网关和单点登录时会用到它,快速读取令牌声明是日常工作的一部分。