开发者

JWT 解码器

粘贴任意 JWT,即可立即解码其头部和载荷——查看声明(claims)、过期时间和签名,无需离开浏览器或将数据发送到任何地方。

这个计算器对您有帮助吗?

什么是JWT 解码器?

JWT(JSON Web Token)是现代 Web API 表示身份验证和授权声明的标准方式。它是一种紧凑、自包含的令牌,由三部分组成——描述签名算法的头部、承载实际声明(如用户 ID、角色和过期时间)的载荷,以及让接收服务器能够验证令牌未被篡改的签名。 这款解码器即时读取头部和载荷,帮助你调试身份验证问题、检查 API 实际发送了哪些声明,或查看令牌何时过期——完全无需后端、命令行工具,也无需将敏感令牌粘贴到第三方服务器,因为一切都在你的浏览器本地运行。

何时使用此计算器

  • 通过检查令牌的声明和过期时间来调试 API 为何拒绝该令牌
  • 在支持排查或事件响应期间检查令牌的过期时间
  • 验证 SSO 或 OAuth 提供商是否正在发出您的应用程序所期望的声明。
  • 为面试准备或安全课程学习 JWT 的结构
  • 检查从浏览器开发者工具或服务器日志中捕获的令牌以了解其内容
  • 比较令牌之间的头部算法以调试算法不匹配导致的身份验证失败

步骤:

  1. 将你的 JWT 粘贴到输入框中,或点击“加载示例”尝试一个示例令牌。
  2. 输入的同时,头部和载荷会自动被解码。
  3. 以清晰易读的形式查看 iss、sub、exp、iat 等声明。
  4. 时间戳类声明(exp、iat、nbf)会自动转换为可读日期。

公式

JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature) 解码:按 "." 分割,对前两部分进行Base64URL解码,解析为JSON。 验证(本工具不执行):HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature

使用场景

  • 通过检查令牌的声明来调试 API 为何拒绝该令牌
  • 在支持团队排查问题时检查令牌的过期时间
  • 验证 SSO 或 OAuth 提供商发放的声明是否符合预期
  • 为面试准备或课程学习了解 JWT 的结构
  • 快速检查从浏览器开发者工具或服务器日志中复制的令牌

主要优势

  • 无需后端或命令行工具即可即时解码任何 JWT
  • 一切都在客户端运行——令牌永远不会发送到服务器
  • 自动将时间戳类声明转换为可读日期
  • 免费、无需注册,可处理任何算法的 JWT

专业提示

  • 调试“未授权”错误时,首先检查 'exp'——令牌过期是最常见的原因
  • 将头部中的 'alg' 与后端预期的算法进行核对,以发现算法不匹配的问题
  • 在服务器端验证签名之前,切勿将解码后的载荷当作身份证明
  • 使用短期令牌配合刷新令牌,而非长期有效的 JWT,以在令牌泄露时降低风险

需要避免的常见错误

  • 误以为解码后的 JWT 就是已验证的 JWT——解码只是读取内容,并不能确认其真实性
  • 在载荷中存储敏感数据(密码、密钥),却忘记了任何人都能读取它
  • 将生产环境的令牌粘贴到不受信任的在线解码器中
  • 在调试令牌有效期问题时,将 'exp'(过期时间)与 'iat'(签发时间)混淆

关键术语解释

声明(Claim):关于主体所声明的一条信息,例如用户 ID 或角色
头部(Header):JWT 的第一段,指定签名算法和令牌类型
载荷(Payload):JWT 的第二段,包含实际的声明内容
签名(Signature):JWT 的第三段,用于验证令牌未被篡改

相关概念

示例

以 eyJhbGciOiJIUzI1NiJ9 开头的令牌解码后头部为 {"alg":"HS256","typ":"JWT"}——表示该令牌使用 HMAC-SHA256 签名。

解读您的结果

解码器在 JWT 的两个点分隔符处进行拆分,并对前两段进行 Base64URL 解码。标头会告知您签名算法(如 HS256 或 RS256)和令牌类型。负载包含实际的声明 — 用户身份、权限和时间戳。 时间戳声明(exp、iat、nbf)会自动从 Unix 纪元转换为可读日期。如果 'exp' 显示过去的日期,则令牌已过期,大多数服务器将拒绝它。'sub'(主题)声明通常包含用户 ID,而 'iss'(签发者)标识创建该令牌的服务器。 请记住,解码并非验证。签名部分会显示,但在没有密钥或公钥的情况下无法验证。解码后的负载仅供参考 — 未经服务器端签名验证,切勿将其视为身份证明。

常见问题

什么是 JWT?
JSON Web Token(JWT)是一种紧凑、URL安全的方式,用于在两方之间传递声明(claims)。它由三个经Base64URL编码的部分组成,以点号分隔:头部(header)、载荷(payload)和签名(signature)。
把我的 JWT 粘贴到这个工具里安全吗?
解码完全在你的浏览器中通过 JavaScript 完成——令牌永远不会被发送到任何服务器。不过,请把 JWT 当作密码一样对待:避免将生产环境系统中的令牌粘贴到任何在线工具中,包括本工具。
为什么这个工具无法验证签名?
验证 JWT 的签名需要密钥(对于 HMAC 算法)或公钥(对于 RSA/ECDSA 算法),而这只有签发令牌的服务器才应该拥有。本工具只解码可读的头部和载荷——它永远无法访问该密钥。
'exp' 声明是什么意思?
'exp'(过期时间)是一个 Unix 时间戳,表示令牌何时失效。本工具会自动将其转换为可读的日期,方便你快速检查令牌是否已过期。
什么是 JWT?
JSON Web Token(JWT)是一种紧凑且对 URL 安全的方式来表示两方之间的声明。它由三个用点分隔的 Base64URL 编码部分组成:头部、载荷和签名。
把我的 JWT 粘贴到这个工具里安全吗?
常见算法包括 HS256(HMAC-SHA256,对称)、RS256(RSA-SHA256,非对称)和 ES256(ECDSA)。头部中的 'alg' 字段指定算法。Web API 最常用的是 HS256 或 RS256。
为什么这个工具无法验证签名?
'iat'(签发时间)是令牌创建的时间。'nbf'(生效时间)是令牌开始生效的时间。如果 'nbf' 在未来,即使令牌尚未过期,也应予以拒绝。
'exp' 声明是什么意思?
头部和负载仅经过 Base64URL 编码,并未加密。任何人都可以读取它们。切勿在 JWT 负载中存储密码、密钥或敏感的个人数据。只放入用户 ID、角色和时间戳等非敏感声明。
JWT 可以使用哪些算法?
访问令牌通常持续 15–60 分钟。刷新令牌可持续数小时到数天。短期访问令牌与长期刷新令牌相结合,可在安全性和用户体验之间取得平衡。
如何复制解码后的声明?
刷新令牌是一种长期有效的令牌,用于在无需用户重新认证的情况下获取新的访问令牌。当短期访问令牌过期时,客户端会发送刷新令牌以获取新的访问令牌。
如何复制解码后的声明?
解码后的头部和负载以格式化的 JSON 显示。您可以复制整个解码输出或单个声明值,用于调试或文档编写目的。

发现更多工具

精选于全站工具库的新发现。