仅在客户端

JWT 解码器

粘贴 JWT 以检查其头部、载荷和声明。解码完全在浏览器中完成 — 你的令牌永远不会发送到服务器。

在你的浏览器中本地解码,不会发送到任何地方。

解码成功。令牌无过期声明。
sub
1234567890
iat
2018-01-18T01:30:22.000Z (1/18/2018, 1:30:22 AM)

头部

{
  "alg": "HS256",
  "typ": "JWT"
}

载荷

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

签名

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

签名验证需要 secret 或公钥。本工具不验证签名,仅解码。

JWT 是什么?

JSON Web Token (JWT) 是一种紧凑、URL 安全的在两方之间传递声明的方式。它由三部分组成 — 头部、载荷和签名 — 用点分隔。头部和载荷是 base64url 编码的 JSON。签名使用头部指定的算法和 secret 或私钥计算,接收方可验证令牌未被篡改。JWT 常用于 REST API 的身份验证和信息交换。

常见 JWT 声明

issIssuer (签发者)

谁签发了令牌 — 通常是标识身份服务器的 URL。

subSubject (主题)

令牌描述谁 — 通常是用户 ID。

audAudience (受众)

令牌面向谁 — 预期接受它的 API 或服务。

expExpiration (过期时间)

在此 Unix 时间戳之后令牌不应被接受。

nbfNot Before (生效时间)

在此 Unix 时间戳之前令牌不应被接受。

iatIssued At (签发时间)

令牌签发时的 Unix 时间戳。

jtiJWT ID

令牌的唯一标识 — 用于防止重放攻击。

JWT 解码器常见问题

把我的 JWT 粘贴到这里安全吗?

是。解码完全在你的浏览器中通过 JavaScript 完成 — 令牌不会发送到我们的服务器。你可以在解码时打开 DevTools → Network 验证。即便如此,避免在任何在线解码器中粘贴能访问生产系统的令牌。

这个工具能验证签名吗?

不行。验证签名需要 secret 或公钥,绝不应该粘贴到在线工具。请在自己的后端用签发者公钥(非对称算法)或共享 secret 验证签名。

这个工具支持哪些算法?

所有。本工具仅解码 base64url 编码的 JSON 部分,因此支持任意签名算法 (HS256、RS256、ES256、EdDSA 等)。算法在头部的 `alg` 字段中。

为什么我的令牌比其他人的短?

JWT 长度取决于载荷内容 (声明越多越长) 和签名算法 (RSA 签名比 HMAC 更长)。仅含少量声明、以 HS256 签名的紧凑令牌可能不到 200 字符。声明多或使用 RSA 签名的令牌通常 500+ 字符。

JWT 和 JWS/JWE 有什么区别?

JWS (JSON Web Signature) 是签名但未加密的 — 任何人都能读取载荷。JWE (JSON Web Encryption) 则对载荷加密。实际中大多数 "JWT" 其实是 JWS — 签名但可见。本工具解码 JWS。加密的 JWE 没有解密密钥无法解码。