JWT 解码器:查看标头、有效载荷和过期时间

即时解码 JSON Web Tokens (JWT)。在浏览器中安全地查看标头 (header)、有效载荷 (payload) 和签名 (signature)。

JWT 解码器

报告问题

发现漏洞或对 JWT 解码器:查看标头、有效载荷和过期时间 有建议?请告诉我们!

这个 JWT 解码器如何解析令牌

一个 JSON Web Token 将三个部分打包进一个字符串中:标头、有效载荷和签名。该解码器会把编码后的令牌拆分成这三部分,将标头和有效载荷还原为可读的 JSON,并提取出算法、签发时间和过期时间,让你无需编写任何代码就能查看令牌内容。

标头、有效载荷与签名

令牌通过两个点被分成三部分:标头.有效载荷.签名。前两部分是经过 base64url 编码的 JSON,因此对它们解码只是一种可逆的转换,并不是解密。标头中记录了签名算法,即 alg 字段,例如 HS256 或 RS256,以及令牌类型。有效载荷中包含各项声明(claim):一个 subject 标识符、应用自定义字段,通常还有以 Unix 秒存储的 iat(签发时间)和 exp(过期时间)。签名是根据标头和有效载荷计算出的加密值,要验证它需要用到创建它时使用的密钥或私钥,因此读取令牌内容和验证令牌真伪是两件不同的事。有些令牌的 alg 被设为 none,没有签名,只由标头.有效载荷两部分组成;该解码器同样接受这种较短的形式,并将签名部分留空。base64url 和普通 base64 的区别在于,它用连字符和下划线代替加号和斜杠,而且通常省略作为填充符的等号,因此解码时需要先把这些字符换回来,再按 JSON 解析。

实际示例

粘贴一个像下面这样的令牌,它会被拆分成三段带颜色的部分,随后标头和有效载荷会以格式化的 JSON 形式显示出来。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1MDI5Mzg0NzY2IiwibmFtZSI6IldhbmcgRmFuZyIsImlhdCI6MTcxMTgwMDAwMCwiZXhwIjoxNzE5NTc2MDAwfQ.ix6CO4ma5Wxgu9y_NjhllBAjZmM

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

{
  "sub": "5029384766",
  "name": "Wang Fang",
  "iat": 1711800000,
  "exp": 1719576000
}

Algorithm 徽标显示的是从标头中读取到的 HS256。iat 的值对应 2024 年 3 月 30 日,exp 的值对应 2024 年 6 月 28 日;由于该日期已经过去,Status 徽标会显示 EXPIRED。这一切都不在服务器上进行:解码过程在浏览器中完成,而且由于工具无法访问创建签名所用的密钥,它永远不会去验证签名是否真实。

常见问题