🎫JWT 解析器 - 在线解码 JSON Web Token、校验签名
粘贴一个 JWT(JSON Web Token),立刻拆出 Header 和 Payload 并格式化显示,exp、iat、nbf 这些时间戳换算成本地时间,标出「已过期」「尚未生效」「有效期内」以及还剩多久。想确认令牌是不是真的,在下面的「签名校验」里填上密钥或公钥:HS256/384/512 填签发用的密钥,RS、PS、ES 系列和 EdDSA 填公钥,PEM、JWK 或整份 JWKS 都行,结果马上显示签名有效还是无效。带 Bearer 前缀的直接粘贴也行;遇到五段的加密令牌(JWE)、alg: none、误填私钥这些情况都会说明原因。解码和校验都用浏览器自带的 WebCrypto 在本地完成,令牌和密钥不会发到任何服务器。
正在加载工具...
如何使用JWT 解析
- 1粘贴完整的 JWT(形如 xxxxx.yyyyy.zzzzz),从请求头里复制的 Bearer 开头也可以
- 2查看解码后的 Header、Payload 和时间字段,确认是否过期
- 3要校验签名:在「签名校验」里填密钥(HS 系列)或公钥(RS、PS、ES、EdDSA),密钥是 Base64 存的就勾选「密钥是 Base64 编码的」
- 4看结果提示:签名有效、签名无效,或者密钥格式哪里不对
常见问题
- 解码出来的内容可信吗?
- 不一定。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 系列的密钥就是签发令牌的凭据,校验正式环境的令牌时建议在自己的设备上进行,用完关闭页面。
- 文件会上传服务器吗?
- 不会。所有处理都在你的浏览器本地完成,没有任何网络上传,关闭页面即清除。
- 需要注册或付费吗?
- 不需要。本站完全免费,无需注册登录,没有次数限制。
功能特点
- 解码 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 加密令牌
- 解码和校验都在浏览器本地完成,令牌和密钥不上传