跳到主要内容
FreeOnlineTools Go
简体中文
如何

如何安全地解码 JWT 令牌并检查声明

作者:FreeOnlineTools Team · 更新日期:2026-09-02

快速解答

要解码 JWT:将令牌粘贴到 JWT 解码器中,标头和有效负载会立即显示为 JSON 格式。该工具在本地解码 Base64URL 编码的部分 - 您的令牌永远不会离开您的浏览器。请记住:解码仅显示内容;它不验证签名。

介绍

JWT (JSON Web 令牌) 是一种紧凑的、URL 安全的令牌格式,用于身份验证和信息交换。 JWT 具有由点分隔的三个部分: header.payload.signature。标头指定算法和令牌类型,有效负载包含声明(用户 ID、角色、过期时间),签名证明令牌未被篡改。解码 JWT 可以让您检查其内容以进行调试 - 但解码并不能验证真实性。本指南向您展示如何在浏览器中安全地解码 JWT。

步步

  1. 打开JWT解码器工具

    进入JWT解码器工具页面。该工具接受任何 JWT 字符串(由点分隔的三个 Base64URL 编码部分)。

  2. 粘贴您的 JWT 令牌

    将 JWT 粘贴到输入字段中。典型的 JWT 如下所示:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.signature。该工具自动检测这三个部分。

  3. 查看解码后的标头

    该工具 Base64URL 解码第一部分并将其显示为 JSON。标头通常包含“alg”(算法,例如 HS256)和“typ”(类型,通常为“JWT”)。

  4. 检查解码后的有效负载(声明)

    该工具对第二部分进行解码,并将声明显示为 JSON 格式。常见声明包括“sub”(主题/用户 ID)、“iat”(发布于)、“exp”(过期)和“role”(用户角色)。

  5. 检查签名(第三部分)

    该工具显示签名部分。注意:解码不验证签名。要进行验证,您需要签名密钥和验证库。在未验证签名服务器端的情况下,切勿相信 JWT 的声明。

示例

解码一个简单的 JWT

输入: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTY5MzUyNjQwMH0.signature

输出: Header: {"alg":"HS256","typ":"JWT"} Payload: {"sub":"user1","name":"Alice","iat":1693526400}

JWT 带有过期声明

输入: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY5MzYxMjgwMH0.sig

输出: Header: {"alg":"HS256"} Payload: {"sub":"admin","exp":1693612800}

常见问题

  • 混淆解码和验证 — 解码 JWT 仅读取其内容;它不能证明令牌是真实的。始终使用签名密钥验证签名服务器端。
  • 信任过期的令牌 - 检查“exp”声明并拒绝过期的令牌。 “exp”值是以秒为单位的 Unix 时间戳。
  • Base64 与 Base64URL —JWT 使用 Base64URL 编码(无填充,- 和 _ 代替 + 和 /)。标准 Base64 解码器在 JWT 部件上将失败。
  • 任何拥有令牌的人都可以读取有效负载 —JWT 有效负载中的敏感数据。不要在有效负载中存储密码、信用卡号或其他机密。

提示

  • 在信任任何声明之前,始终验证服务器端的 JWT 签名 - 单独解码并不是身份验证。
  • 检查“exp”(过期)和“nbf”(不在之前)声明,以确保令牌在当前时间有效。
  • 将短期令牌(15-60 分钟)与刷新令牌一起用于长时间会话 — 最大限度地减少令牌泄露时造成的损失。
  • 使用我们的 JWT 解码器进行安全的本地调试 - 您的令牌永远不会离开您的浏览器。

相关工具

相关指南

参考