JWT Debugger
jwt 调试器

JSON Web 令牌调试器

在本地解码、检查和验证 JSON Web 令牌 (JWT)。标头、有效负载数据和签名结构的颜色编码解析。

编码令牌(粘贴 JWT)
标题:算法和代币类型 已解码
 
有效负载:数据/声明 已解码
 
签名:完整性检查 本地验证
验证公式:

HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), )

🔒 签名有效。
已复制到剪贴板!
jwt 调试器

JSON Web 令牌调试器

在本地解码、检查和验证 JSON Web 令牌 (JWT)。标头、有效负载数据和签名结构的颜色编码解析。

使用 JWT 调试器掌握 JSON Web 令牌

在现代 Web 开发和 API 安全领域,JSON Web 令牌 (JWT) 已成为身份验证和信息交换的事实上的标准。然而,如果没有合适的工具,调试这些令牌可能会是一个挑战。 JWT 调试器是一款功能强大、以开发人员为中心的实用程序,旨在直接在浏览器中解码、检查和验证 JWT 结构。通过提供标头、有效负载和签名的颜色编码细分,该工具简化了理解令牌组成、验证声明和确保数据完整性的过程。无论您是经验丰富的后端工程师还是与 OAuth 2.0 提供商集成的前端开发人员,掌握 JWT 调试对于构建安全可靠的应用程序至关重要。本指南将引导您了解 JWT 架构的复杂性、数字签名的关键作用,以及如何利用 JWT 调试器进行高效的本地分析而不损害隐私。

了解 JSON Web 令牌 (JWT) 架构

JSON Web 令牌 (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全传输信息。该信息可以被验证和信任,因为它是经过数字签名的。 JWT 可以使用秘密(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。由于 JWT 结构紧凑,因此可以轻松地通过查询参数、POST 主体变量或内部 HTTP 标头(通常在授权承载方案下)发送它们,这使它们成为现代 Web 身份验证的行业标准。 JWT 调试器允许您粘贴任何令牌并立即查看其解码的组件,帮助您了解应用程序中的数据流和身份验证。通过可视化三部分结构,您可以快速识别所使用的算法、正在传输的声明,并验证令牌在传输过程中没有被篡改。

JWT 的三部分结构

标准 JSON Web 令牌由由点分隔的三个不同部分组成 (.):

  • 标头:标头通常由两部分组成:令牌的类型(JWT)和所使用的签名算法,例如 HMAC SHA256 (HS256) 或 RSA (RS256)。
  • 有效负载:有效负载包含声明。声明是关于实体(通常是用户)和附加元数据的声明。常见声明包括 iss (发行人)、exp (过期时间)和 sub(主题)。
  • 签名:签名是通过使用密钥或公共证书对编码的标头和负载进行签名来计算的,从而验证令牌的真实性。

JWT 调试器通过对每个部分进行颜色编码来增强这种理解:标头采用一种颜色,有效负载采用另一种颜色,签名采用不同的色调。这种视觉分离使得您正在检查的令牌的哪一部分立即显而易见。例如,在调试身份验证流程时,您可以快速检查 exp 声明是否设置正确,或者 iss 与您预期的发行人匹配。这种实时解码无需手动解码 Base64Url 字符串,从而为开发人员在开发和测试期间节省了大量时间。

Base64Url 编码解释

JWT 的每个部分均使用 Base64Url 编码 (RFC 4648) 单独编码。 Base64Url 是标准 Base64 的修改版,它将字符 + 替换为 -,字符 /_,并删除所有尾随填充字符 =

这种格式使 JWT 可以安全地包含在 URL 中,无需进行百分比编码,但请务必记住,Base64Url **不是加密**。任何获得 JWT 的人都可以使用标准工具立即解码标头和有效负载。机密数据不得存储在有效负载中,除非已加密(例如使用 JWE)。 JWT 调试器会自动为您解码这些 Base64Url 字符串,以可读的格式化视图呈现 JSON。这在调试来自第三方身份提供商的令牌时特别有用,因为您可以立即检查声明,而无需手动解码每个段。该工具还突出显示任何格式错误的 Base64Url 字符串,帮助您在开发管道的早期捕获编码错误。

令牌完整性和数字签名

JWT 的关键安全价值在于其数字签名。当服务器收到令牌时,它会使用标头、有效负载及其密钥重新计算签名。如果计算出的签名与令牌上附加的签名匹配,则服务器知道令牌是真实的且未被篡改。即使客户端更改了有效负载的单个字节(例如用户权限或电子邮件字段),签名也将不匹配,从而导致服务器拒绝令牌。 JWT 调试器提供签名验证功能,允许您在本地测试此完整性检查。通过输入令牌和密钥(或 RS256 的公钥),该工具会计算预期签名并将其与令牌中的签名进行比较。这对于调试身份验证问题非常有用,因为您可以确定问题是否出在令牌的内容、签名密钥或服务器端验证逻辑中。

安全私密解码

我们的在线 JWT 调试器使用浏览器内的本地 JavaScript 执行 100% 客户端。不会将令牌输入、标头或机密上传到远程服务器。这确保了完整的数据隐私,使您能够在测试和开发期间安全地解码身份验证令牌。无论您是使用包含敏感用户 ID 的生产令牌还是使用机密业务逻辑测试令牌,您都可以相信所有处理都保留在您的计算机内。该工具不需要任何网络请求,非常适合离线开发环境或气隙系统。这种客户端架构还意味着解码令牌时没有延迟,在您粘贴或键入令牌字符串时提供即时反馈。对于关心数据主权和遵守 GDPR 或 HIPAA 等法规的团队来说,JWT 调试器提供了安全、透明的令牌分析解决方案,无需暴露任何第三方数据。

实际用例和高级技巧

JWT 调试器对于各种开发场景都是不可或缺的。与 Google、Facebook 或 Auth0 等 OAuth 2.0 提供商集成时,开发人员通常需要检查访问令牌内的声明以了解用户角色和权限。该工具的颜色编码解析可以轻松区分标准声明(例如 subaudiat)以及特定于您的应用程序的自定义声明。此外,在调试API身份验证失败时,您可以使用内置的验证功能快速验证令牌的签名是否有效。对于高级用户,该工具支持对称(HS256、HS384、HS512)和非对称(RS256、RS384、RS512、ES256、ES384、ES512)算法,允许您测试使用不同加密方法签名的令牌。请记住,密钥或公钥永远不会通过网络发送;所有验证都在您的浏览器本地进行,以保证安全性。最后,JWT 调试器可以通过尝试不同的有效负载并查看签名如何变化来帮助您学习 JWT 结构,这使其成为刚接触基于令牌的身份验证的开发人员的绝佳教育资源。

常见问题

如何解码 JWT 令牌?

要解码 JSON Web 令牌 (JWT),请将令牌拆分为用点分隔的三个部分(标头、有效负载和签名)。然后,使用 Base64Url 解码器对标头和有效负载部分进行解码,从而生成人类可读的格式化 JSON 字符串。签名部分用于验证真实性。

在线粘贴我的 JWT 安全吗?

是的,如果完全在客户端解码。许多在线实用程序将令牌发送到后端服务器,从而产生安全风险。在 say.tools 中,JWT 调试器使用本地 JavaScript 在浏览器中 100% 执行。不会通过互联网上传或发送任何令牌值或密钥。

JWT 中的标头、有效负载和签名是什么?

标头定义了令牌元数据,包括签名算法(例如 HS256)。有效负载包含声明(用户数据和令牌属性,例如过期时间)。签名是标头、有效负载和密钥的加密计算哈希,可保护令牌的完整性。

任何人都可以读取 JWT 的内容吗?

是的。标准 JWT 已签名但未加密。标头和有效负载采用 Base64Url 进行编码,很容易逆转。因此,您永远不应该将机密凭据或密码放置在标准 JWT 有效负载中。

首页