JWT 解码器

解码 JWT 以读取头部、载荷声明和签名,把 exp、nbf、iat 显示为日期并给出过期状态。本地运行,不会上传任何内容。

开头的 "Bearer " 会被自动去除。

头部(Header)
{
  "alg": "HS256",
  "typ": "JWT"
}
载荷(Payload)
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}
算法HS256
签名SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
解码不会校验签名。任何人都能生成任意内容的令牌——信任之前请用 JWT 验证工具和正确的密钥进行验证。

什么是 JWT 解码器?

JWT 解码器会把 JSON Web Token 拆分为头部、载荷和签名,并对 JSON 进行格式化输出。时间声明(exp、nbf、iat)会被转换为易读的 UTC 日期和相对时间,状态标记会告诉你令牌是已过期、尚未生效还是没有过期时间。它只做解码,不会验证签名。

如何使用 JWT 解码器

  1. 粘贴令牌(开头的 Bearer 会被自动去除)。
  2. 查看解码后的头部(算法、类型、密钥 ID)和载荷声明。
  3. 查看过期状态以及 exp/nbf/iat 日期。
  4. 在信任任何声明之前,请先用 JWT 验证器和正确的密钥进行验证。

示例

输入
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
输出
Header {"alg": "HS256", "typ": "JWT"} · payload {"sub": "1234567890", "name": "John Doe", "iat": 1516239022} · status: no expiration

何时使用 JWT 解码器

适合调试身份认证:查看令牌携带了哪些声明、权限范围、受众或过期时间。不要把解码出的声明当作可信数据,任何人都可以创建内容任意的令牌。加密令牌(JWE,五个部分)没有密钥就无法解码。

JWT 解码器 的工作原理

紧凑格式的 JWS 由点号分隔的三部分 Base64URL 组成。前两部分经解码(Base64URL → 字节 → UTF-8)后按 JSON 解析;第三部分是二进制的签名数据,所以原样显示。时间声明是 NumericDate 值(自 1970-01-01 UTC 起的秒数),并与你设备的时钟比较。任何内容都不会离开你的浏览器。

常见用例

  • 查明 API 返回 401 的原因:令牌过期了,还是受众不对?
  • 读取访问令牌中的角色或权限范围。
  • 查看头部中的 kid,了解使用了哪个签名密钥。
  • 检查 OpenID Connect 提供商签发的 ID 令牌。

安全提示

解码只在你的浏览器中进行。请像对待密码一样对待 JWT:任何持有有效令牌的人,在它过期之前都可以使用它。

常见问题

粘贴生产环境的令牌安全吗?

令牌在本地解码,不会被发送到任何地方。但有效的令牌就是一种凭据,如果你把它分享给了不受你控制的地方,请将其吊销。

为什么解码不等于验证?

载荷只是经过 Base64URL 编码,并未加密。验证需要用密钥或公钥检查签名。

exp、nbf 和 iat 是什么意思?

exp 是过期时间,nbf 是“不早于”(在此之前令牌无效),iat 是签发时间,三者都是自 Unix 纪元起的秒数。

探索更多分类