Pack Camo

JWT 解码器

查看令牌的头部和声明,检查是否过期,并验证签名。 所有处理都在本地完成,不会上传任何内容。

输入
JWT
输出
Header · payload · signature check

已编码的令牌

HS256

签名

需要密钥?去生成一个

头部

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

载荷

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "iat": 1767225600,
  "exp": 1893456000
}

读取令牌,但不要轻信

JWT 由三段 Base64URL 编码的内容用点号连接而成:声明算法的头部、包含声明(claims)的载荷,以及覆盖前两者的签名。任何人都能读取前两部分,所以令牌里绝不能放任何机密信息;只有签名才能证明令牌出自掌握密钥的人。

解码器会显示什么

  • 头部。签名算法(alg)和令牌类型,有时还有指明由哪个密钥签名的密钥 ID(kid)。
  • 载荷。各项声明:令牌属于谁(sub)、谁签发的(iss)、面向谁(aud),以及你的应用添加的任何内容。
  • 时间。iat、nbf 和 exp 是自 1970 年起的秒数。解码器会按你所在的时区显示为日期,并告诉你令牌是否已过期或尚未生效。
  • 签名。对于 HS256、HS384 和 HS512,输入密钥后,解码器会重新计算签名并告诉你是否匹配。使用 RS、ES 或 PS 算法签名的令牌同样可以解码,但验证它们需要签发方的公钥。

常见问题

如何解码 JWT?
把令牌粘贴到输入框中。头部和载荷会在你输入时被解码并格式化,时间类声明会显示为易读的日期。
任何人都能读取我的 JWT 内容吗?
可以。头部和载荷只是编码,并未加密,所以任何拿到令牌的人都能读取。切勿把密码或其他机密放进 JWT 载荷。
如何验证 JWT 签名?
对于 HS256、HS384 或 HS512 令牌,在“签名”部分输入密钥,并选择它是纯文本还是 Base64。解码器会用该密钥重新对头部和载荷签名,并告诉你结果是否与令牌的签名一致。
为什么我的令牌显示“签名无效”?
要么密钥不对,要么格式不对。如果你的库会从 Base64 解码密钥,就必须在选中 Base64 的情况下输入,否则字节不会匹配。签名之后被修改过的令牌同样会验证失败。
我的令牌会被发送到服务器吗?
不会。解码和验证都在你的浏览器中运行,所以你可以放心粘贴来自生产环境的令牌,它们不会离开你的设备。