# JWT 解析器 - 在线解码 JSON Web Token、校验签名

> 免费在线 JWT 解析工具：解码 Header 与 Payload，显示是否过期；填入密钥或公钥（PEM、JWK、JWKS）即可校验签名，本地处理不上传。

- 网址: https://qilingtools.com/zh/jwt
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [隐私安全](https://qilingtools.com/zh/tags/privacy), [开发](https://qilingtools.com/zh/tags/dev), [编码解码](https://qilingtools.com/zh/tags/encode)
- 最后更新: 2026-11-11
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

粘贴一个 JWT（JSON Web Token），立刻拆出 Header 和 Payload 并格式化显示，exp、iat、nbf 这些时间戳换算成本地时间，标出「已过期」「尚未生效」「有效期内」以及还剩多久。想确认令牌是不是真的，在下面的「签名校验」里填上密钥或公钥：HS256/384/512 填签发用的密钥，RS、PS、ES 系列和 EdDSA 填公钥，PEM、JWK 或整份 JWKS 都行，结果马上显示签名有效还是无效。带 Bearer 前缀的直接粘贴也行；遇到五段的加密令牌（JWE）、alg: none、误填私钥这些情况都会说明原因。解码和校验都用浏览器自带的 WebCrypto 在本地完成，令牌和密钥不会发到任何服务器。

## 使用步骤

1. 粘贴完整的 JWT（形如 xxxxx.yyyyy.zzzzz），从请求头里复制的 Bearer 开头也可以
2. 查看解码后的 Header、Payload 和时间字段，确认是否过期
3. 要校验签名：在「签名校验」里填密钥（HS 系列）或公钥（RS、PS、ES、EdDSA），密钥是 Base64 存的就勾选「密钥是 Base64 编码的」
4. 看结果提示：签名有效、签名无效，或者密钥格式哪里不对

## 功能特点

- 解码 Header 与 Payload 并美化 JSON，各部分一键复制
- exp / iat / nbf 换算成本地时间，显示是否过期和相对时间；误用毫秒的令牌会识别并提示
- 签名校验：HS256/384/512、RS256/384/512、PS256/384/512、ES256/384/512、EdDSA（Ed25519）
- 公钥支持 PEM（BEGIN PUBLIC KEY 和 BEGIN RSA PUBLIC KEY）、JWK、整份 JWKS（按 kid 自动挑选）
- 识别常见误用：alg: none、粘贴了私钥或证书、算法和密钥类型对不上、JWE 加密令牌
- 解码和校验都在浏览器本地完成，令牌和密钥不上传

## 常见问题

### 解码出来的内容可信吗？

不一定。Header 和 Payload 只是 Base64URL 写的 JSON，没有加密，任何人都能解开、改掉内容（比如把 role 改成 admin、把 exp 往后推）再重新拼回去。能证明内容没被改过的只有第三段签名，所以判断可不可信要看「签名校验」的结果，而不是解码出来的内容。

### 签名校验要填什么？

看 Header 里的 alg。HS256、HS384、HS512 是对称签名，签发和校验用同一个密钥（secret），填签发时用的那串字符；有些系统把密钥存成 Base64，这时勾选「密钥是 Base64 编码的」，不勾的话会判成无效。RS、PS、ES 开头和 EdDSA 是非对称签名，签发用私钥、校验用公钥，填公钥即可：PEM 格式（-----BEGIN PUBLIC KEY----- 或 -----BEGIN RSA PUBLIC KEY-----）、单个 JWK，或者认证服务公开的整份 JWKS（通常在 /.well-known/jwks.json），工具会按令牌 Header 里的 kid 挑出对应的那把公钥。

### 各种算法的签名有多长？

第三段签名的长度由算法决定，可以用来快速判断令牌是不是被截断了。按 Base64URL 计算：HS256 是 32 字节、43 个字符，HS384 是 64 个字符，HS512 是 86 个字符；RS256 和 PS256 用 2048 位密钥时是 256 字节、342 个字符，4096 位密钥是 683 个字符；ES256 是 64 字节、86 个字符，ES384 是 128 个字符，ES512 是 132 字节、176 个字符；EdDSA（Ed25519）是 64 字节、86 个字符。ES 系列的签名是 R 和 S 直接拼接，不是 OpenSSL 默认输出的 DER 格式，拿 DER 格式的签名去拼 JWT 会校验失败。

### 提示「签名无效」常见原因有哪些？

最常见的是密钥不对：测试环境和正式环境的密钥弄混、密钥前后多了空格或换行、密钥其实是 Base64 存的却没勾选。其次是令牌被改过或复制时少了几个字符（对照上一条看签名长度）。用公钥时，如果认证服务轮换过密钥，要用 JWKS 里 kid 和令牌一致的那把，旧公钥校验新令牌自然不通过。

### alg: none 的令牌是怎么回事？

alg 为 none 表示令牌没有签名，第三段是空的，任何人都能随手伪造。规范允许这种写法，但正式系统不应接受它；过去有些 JWT 库会把 none 当成合法令牌放行，造成越权漏洞。本工具遇到 none 会直接提示「不应信任」，不做校验。

### exp、iat、nbf 是什么，单位是秒还是毫秒？

exp 是过期时间，iat 是签发时间，nbf 是生效时间（在这之前令牌不能用），规范规定都是从 1970-01-01 UTC 起算的秒数，比如 1767225600 是 2026-01-01 00:00 UTC。有些系统误用了毫秒（13 位数字），按秒算会变成几万年后，本工具发现数值超过 10 的 11 次方时按毫秒换算并提示一句。服务端判断过期时通常会留几十秒到几分钟的时钟误差。

### 五段的令牌为什么只显示 Header？

三段的是签名令牌（JWS），内容只是编码；五段的是加密令牌（JWE），第二段是加密后的内容密钥，第四段才是加密的正文，必须用接收方的私钥或共享密钥解密后才能看到。本工具不做解密，只显示它的 Header（里面有 alg、enc 等加密方式）。

### 令牌和密钥安全吗？

解码和签名校验都在你的浏览器里完成，令牌和密钥不会发送到任何服务器。校验只需要公钥，私钥不要粘贴到任何网页，本工具发现粘贴的是私钥也会提示。HS 系列的密钥就是签发令牌的凭据，校验正式环境的令牌时建议在自己的设备上进行，用完关闭页面。

### 文件会上传服务器吗？

不会。所有处理都在你的浏览器本地完成，没有任何网络上传，关闭页面即清除。

### 需要注册或付费吗？

不需要。本站完全免费，无需注册登录，没有次数限制。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：文字、图片和任意文件转 Base64，Base64 还原成文字或文件；支持中文 UTF-8 和 GBK、Data URI、URL 安全写法，解出图片可预览下载，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：把中文、空格和特殊符号转成 %E4%BD%A0 这样的百分号编码，或者把乱码一样的链接还原成文字。支持单个参数和整条网址、UTF-8 和 GBK、+ 号表示空格，本地实时转换不上传。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希计算工具：对文本或文件一次算出 MD5、SHA-1、SHA-256、SHA-384、SHA-512，粘贴官网校验值自动比对，几 GB 的大文件分块计算，本地完成不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：用浏览器的加密安全随机数批量生成 UUID v4（GUID）或按时间排序的 v7，可大写、去连字符、加花括号，一次最多 100 个，一键复制，本地生成不联网。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，自动识别 0x/0b/0o 前缀和空格、下划线分隔，超大整数不丢精度，本地实时计算。
- [正则测试](https://qilingtools.com/zh/regex): 免费在线正则表达式测试工具：实时高亮所有匹配，列出捕获分组和命名分组，支持 g/i/m/s/u 标志，可直接粘贴 /…/gi 写法，回溯失控会自动停止，本地运行不上传。
