← 返回工具箱

JWT / STRUCTURE INSPECTOR

JWT 解码器

读取 JWT Compact Serialization 的 Header、Payload 和 Claims。三段通常是 JWS,五段通常是加密 JWE;能看到内容只说明编码可解,不代表签名正确、来源可信或权限有效。

本地处理

输入只在当前浏览器解析,不会为了解码发送到服务器。

解码 ≠ 验签

任何人都能改写未加密的 Header 和 Payload,再重新编码。

JWE 不会被假装解密

五段 JWE 只展示受保护 Header,其余部分保持密文。

COMPACT TOKEN

粘贴 JWT

297 个字符外层空白会忽略,Token 内部空白会报错

DECODE RESULT

结构已解析,但尚未验签

3 段 JWS
字节数
297
算法
HS256
类型
JWT
Key ID
demo-key

Header

{
  "alg": "HS256",
  "typ": "JWT",
  "kid": "demo-key"
}

Payload

{
  "iss": "https://id.flooc.com",
  "sub": "seal-user",
  "aud": [
    "web-app",
    "api"
  ],
  "iat": 1783065600,
  "nbf": 1783065600,
  "exp": 1783152000,
  "jti": "demo-001",
  "role": "editor"
}

REGISTERED CLAIMS

标准字段速查

issIssuer
https://id.flooc.com

谁签发了 Token

subSubject
seal-user

Token 所代表的主体

audAudience
["web-app","api"]

预期接收方,可以是字符串或数组

expExpiration Time
1783152000

2026-07-04T08:00:00.000Z · 过期时刻,NumericDate 秒

nbfNot Before
1783065600

2026-07-03T08:00:00.000Z · 在此之前不可接受

iatIssued At
1783065600

2026-07-03T08:00:00.000Z · 签发时刻

jtiJWT ID
demo-001

Token 唯一标识

接下来该检查什么

先固定允许算法

服务端应由配置决定允许哪些算法,不能只相信 Token Header 自报的 alg。

再验证签名和密钥来源

只有签名通过,Header 与 Payload 才能被视为未被篡改;签名通过也不等于权限判断完成。

最后验证 Claims

按业务同时检查 iss、aud、exp、nbf、jti 与权限字段,不能只看 exp。

RELATED TOOLS

查看全部工具 →

USE & REVIEW

JWT 解码器常见问题

查看全部工具指南 →

JWT 能被解码,是否说明 Token 真实有效?

不能。常见三段 JWT 的 Header 和 Payload 只是 Base64URL 编码,不是加密,任何人都能读取、修改并重新编码。只有使用服务端预先信任的算法和密钥完成签名验证,再检查 issuer、audience、时间与权限,才能决定是否接受。页面会一直保留“未验签”提示,避免把可读误当可信。

三段 JWS 和五段 JWE 有什么区别?

三段形式通常是 JWS:Header.Payload.Signature,Payload 可直接解码,Signature 用于完整性保护。五段形式通常是 JWE:Protected Header、Encrypted Key、IV、Ciphertext、Authentication Tag,Claims 位于密文中。解码器只读取 JWE 的受保护 Header,不会在没有密钥和认证流程时假装还原 Payload。

为什么粘贴 Bearer Token 后显示段数错误?

Authorization Header 常写成“Bearer 空格 JWT”,但 Compact Token 本身不包含 Bearer 前缀、空格或换行。请只复制第一个点号前的 Header 到最后一个 Signature 字符。终端自动换行通常只是显示效果;若真实内容里混入换行,页面会明确报错。

exp、nbf 和 iat 为什么按秒显示,而不是毫秒?

JWT RFC 把这些字段定义为 NumericDate,即从 1970-01-01T00:00:00Z 起算的秒数,并允许非整数。JavaScript Date.now() 返回毫秒,直接写入会多三个数量级。解码页只转换展示;需要按参考时刻、leeway 和临界边界判断时,应使用 JWT 时间检查器。

alg=none 或空 Signature 代表什么?

alg=none 表示 Unsecured JWT,内容没有签名或 MAC 保护,任何人都能改。空 Signature 配合其他算法同样说明结构不完整。它们可以用于理解格式,但不应被普通认证接口接受;生产实现必须显式配置允许算法,不能看到 Header 写什么就照做。

粘贴的 JWT 会上传或保存吗?

不会。Base64URL 解码、JSON 解析、Claim 展示和报告生成都在当前浏览器完成,页面没有为了处理 Token 而发送请求。生产 Token 仍可能包含用户身份、内部地址和权限信息,不应放进截图、工单、聊天或公开报告;最稳妥的是使用脱敏或测试 Token。