123问免费工具与知识服务
123问工具大全› 工具大全› 开发工具› JWT令牌解码

🎫 JWT令牌解码

Header · Payload · 签名算法 · Base64解码

JWT令牌解码常见问题

JWT由哪几部分组成?

JWT由三部分组成:Header(头部,含算法和类型)、Payload(载荷,含声明数据)、Signature(签名,用于验证令牌完整性)。三部分用点号(.)分隔。

JWT解码是否安全?

本工具仅在浏览器本地解码,不会将令牌数据发送到服务器,完全安全。请勿在不可信环境粘贴生产环境的有效令牌。

为什么不显示签名验证结果?

签名验证需要密钥(对称加密需要共享密钥,非对称需要公钥)。本工具前端解码展示JWT内容,如需验签请使用后端工具。

JWT里的exp/iat/nbf这些字段是什么意思?

它们是标准注册声明:exp到期时间、iat签发时间、nbf生效时间、sub主题、aud受众、iss签发者、jti唯一ID。本工具会把这些时间戳自动转成人话。

JWT和Session的区别是什么?

Session是服务端存储、客户端只存一个ID;JWT是无状态的,把用户信息编码进令牌本身,服务端不用存。JWT适合分布式/无状态场景,但令牌泄露风险更高。

JWT为什么不是加密的?

JWT默认只是Base64编码,不是加密,任何人都能解码看到内容。它靠签名保证「内容没被篡改」,而不是「内容保密」。敏感信息绝不能放进JWT。

JWT签名算法有哪些常见类型?

常见的有HS256(对称,用同一个密钥加解密)、RS256(非对称,用私钥签、公钥验)、ES256(基于椭圆曲线)。默认HS256最简单也最常用。

为什么JWT解码出来是乱码?

JWT的三段是Base64URL编码,不是普通Base64,字符集里没有+和/而是-和_。如果直接复制粘贴时缺了字符或混入换行,解码就会失败或乱码。

JWT令牌解码 - 示例演示

示例一:解码一个典型的HS256 JWT

输入:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
结果:Header: {"alg":"HS256","typ":"JWT"};Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022}
这是JWT官网的经典示例。解码后能看到三段内容,alg是签名算法,iat签发时间会被本工具转成具体日期。

示例二:解读标准声明字段

输入:一个含 exp、iat、nbf、sub 的JWT
结果:本工具会把 exp/iat/nbf 的时间戳转成可读的日期时间,并标注每个标准声明的含义
调试登录态时,主要看 exp 是否过期、iat 是否在有效期内,这是排查「token失效」最常见的两个字段。

示例三:解析自定义业务字段

输入:一个Payload含 userId、role、email 等自定义字段的JWT
结果:标准声明被解读,自定义字段以键值对形式完整展示在Payload JSON中
业务方常把用户ID、角色、邮箱等放进JWT,解码后能直观查看这些自定义数据,方便联调和排查权限问题。

JWT令牌解码深度解读

JWT三段式结构详解

JWT形如「xxx.yyy.zzz」,用两个点分成三段,每段都是Base64URL编码的JSON(签名段是密文)。理解三段各自的作用,是掌握JWT的关键。

JWT三段结构对照
段名称内容编码
第1段Header 头部签名算法(alg)、令牌类型(typ)Base64URL
第2段Payload 载荷标准声明+业务数据Base64URL
第3段Signature 签名对前两段+密钥的签名密钥派生

注意:Header和Payload只是Base64URL编码,不是加密,任何人都能解码看到明文。签名的目的是防止内容被篡改。

JWT的标准注册声明

JWT定义了一组标准的注册声明(Registered Claims),用于携带通用信息。虽然它们都是可选的,但使用JWT时通常会包含其中几个。

  • iss (Issuer):签发者,标识是谁签发了这个token。
  • sub (Subject):主题,通常是用户ID。
  • aud (Audience):接收方,规定这个token给谁用。
  • exp (Expiration Time):过期时间戳,过了这个时间token失效。
  • nbf (Not Before):生效时间,在此之前token不生效。
  • iat (Issued At):签发时间。
  • jti (JWT ID):唯一标识,用于防止重放。

服务端校验时最重要的就是检查 exp 是否过期、iss/aud 是否匹配,防止token被滥用。

HS256和RS256的区别

  • HS256:对称算法,签名和验证用同一个密钥。实现简单,适合单服务或能共享密钥的场景。
  • RS256:非对称算法,用私钥签名、公钥验证。适合多服务、第三方参与验证的场景,公钥可以公开。
  • ES256:基于椭圆曲线,密钥更短但安全性高,适合资源受限的设备。

安全提醒:不要使用算法混淆攻击(篡改alg字段),服务端验签时必须固定允许的算法白名单。

JWT的安全使用建议

  • 不要把密码、手机号等敏感信息放进Payload,因为是明文可见的。
  • 务必设置 exp 过期时间并检查,避免永久有效的token。
  • HS256的密钥要足够长且随机,存放在服务端。
  • 传输必须走HTTPS,防止令牌被中间人截获。
  • 登出时前端删除token,但服务端无法真正作废无状态JWT,可结合黑名单或缩短有效期。
  • 不要让用户能控制alg字段,防止算法混乱攻击。

JWT令牌解码参考数据

JWT标准注册声明速查

字段全称含义
issIssuer签发者
subSubject主题(通常为用户ID)
audAudience接收方
expExpiration Time过期时间
nbfNot Before生效时间
iatIssued At签发时间
jtiJWT ID唯一标识

常见JWT签名算法对比

算法类型特点适用场景
HS256对称同一密钥签名验证单服务/共享密钥
HS384对称比HS256更安全较高安全要求
HS512对称强度最高金融等高安全
RS256非对称私钥签公钥验多服务/第三方
ES256椭圆曲线密钥短安全高移动端/受限设备

使用说明

使用方法

1. 粘贴JWT令牌字符串。

2. 点击"解码"按钮。

3. 查看解析出的Header和Payload内容。

分享工具: Facebook Twitter 微博 复制链接