JWT解码器

即时解码JWT令牌,查看头部、载荷和签名。提供HMAC签名验证、有效期检查和历史记录保存功能。

最后更新: 2026/02/28

JWT解码器

JWT令牌输入
签名验证(可选)
所有数据仅在浏览器中处理
最近历史全部删除
没有保存的历史记录

输入JWT令牌后将自动解码

100%浏览器处理: 输入的JWT和Secret Key不会发送到服务器。所有解码和验证仅在浏览器中进行,关闭页面后数据将被删除。

什么是JWT解码器?

JWT解码器是分析JSON Web Token(JWT),确认头部、载荷、签名,并验证令牌有效性的工具。可以轻松分析API认证、OAuth、SSO等使用的JWT令牌,是开发和调试的必备工具。

只需粘贴令牌即可立即解码,直观确认算法、过期时间、签发信息等所有声明。对于HMAC算法,输入Secret Key即可验证签名有效性。

适用场景

  • API调试 – 确认REST API认证令牌内容并检查过期情况
  • OAuth开发 – 实现OAuth 2.0 / OpenID Connect时分析access_token、id_token
  • 认证错误解决 – 查找”Token expired”、”Invalid signature”等认证错误原因
  • 安全审查 – 确认JWT中包含的敏感信息并检查安全漏洞
  • 学习目的 – 理解JWT结构和工作原理的实践
  • 客户端开发 – 测试前端的令牌解析和过期处理逻辑

主要功能

  • 实时解码 – 输入JWT后立即分离头部、载荷、签名并以JSON格式显示
  • 过期时间验证 – 分析exp、iat、nbf声明,显示令牌有效性和剩余时间
  • HMAC签名验证 – 使用Secret Key验证HS256、HS384、HS512算法的签名
  • 声明详细分析 – 一目了然地确认iss、sub、aud等标准声明
  • 语法高亮 – 用颜色区分JSON键、字符串、数字、布尔值
  • 历史记录保存 – 将最近解码的5个JWT保存到本地以快速重用
  • 剪贴板复制 – 单独复制头部、载荷、签名
  • 示例JWT – 立即加载测试用示例令牌以确认功能

使用方法

  1. 输入JWT – 在左侧输入框粘贴要分析的JWT令牌(以eyJ…开头的字符串)
  2. 确认结果 – 右侧显示分离的Header(算法)、Payload(数据)、Signature(签名)
  3. 确认过期 – 在顶部状态卡确认令牌有效性和剩余时间
  4. 验证签名(可选) – 如果是HMAC算法,输入Secret Key后显示签名有效性
  5. 复制/使用 – 用各部分的复制按钮将所需部分复制到剪贴板

理解JWT结构

JWT由点(.)分隔的三部分组成:

组成要素 内容 示例
Header 算法(alg)和令牌类型(typ) {"alg":"HS256","typ":"JWT"}
Payload 声明(Claims) – 令牌中包含的信息 {"sub":"123","name":"John"}
Signature 用密钥签名头部+载荷的值 HMACSHA256(header.payload, secret)

标准JWT声明

声明 说明 示例
iss 签发者 (Issuer) https://auth.example.com
sub 主体 (Subject) – 用户ID user_12345
aud 受众 (Audience) – 令牌接收者 my-app
exp 过期时间 (Expiration Time) 1735689600 (Unix timestamp)
iat 签发时间 (Issued At) 1735686000 (Unix timestamp)
nbf 生效时间 (Not Before) 1735686000 (Unix timestamp)
jti 令牌唯一ID (JWT ID) abc123xyz

支持的算法

  • HS256 (HMAC + SHA-256) – 对称密钥算法,最常用。可用Secret Key验证签名
  • HS384 (HMAC + SHA-384) – 比HS256更长的哈希,更高的安全性
  • HS512 (HMAC + SHA-512) – 最长的HMAC哈希,最高安全性
  • RS256, RS384, RS512 – RSA非对称密钥算法(仅支持解码,不支持签名验证)
  • ES256, ES384, ES512 – ECDSA椭圆曲线算法(仅支持解码)

* RSA、ECDSA算法的签名验证需要公钥,当前版本仅支持HMAC算法的签名验证。

个人信息保护

此工具100%在浏览器中运行。输入的JWT令牌和Secret Key绝不会发送到服务器,所有解码和签名验证仅在用户设备上进行。关闭浏览器后所有数据将被删除。(历史记录保存在本地存储中,可随时通过”全部删除”删除)

详细说明

JWT解码器的结果基于输入值与所选条件计算得到。

涉及最终决策时,请结合官方标准或专业意见进行复核。

常见问题

JWT解码需要Secret Key吗?

不需要,JWT的Header和Payload仅进行Base64Url编码,无需Secret Key即可解码。Secret Key仅用于签名(Signature)验证。因此,不应在JWT中包含敏感信息。

令牌显示已过期该怎么办?

如果JWT的exp(过期时间)声明早于当前时间,则显示为已过期。过期的令牌会被服务器拒绝,因此需要使用刷新令牌或重新登录以获取新令牌。

为什么会出现签名不匹配?

如果输入的Secret Key与签发令牌时使用的密钥不同,则会出现签名不匹配。此外,对于RSA或ECDSA算法,由于此工具仅支持HMAC,因此显示为”仅支持HMAC”。请确认正确的Secret Key。

JWT和基于会话的认证有什么区别?

基于会话的认证是服务器保存会话信息并通过cookie管理会话ID。而JWT的信息包含在令牌本身中,服务器无需保存状态(Stateless)。JWT适用于微服务、移动应用、SPA,会话适用于传统Web应用。

JWT中不应包含哪些信息?

JWT的Payload未加密,仅进行编码,任何人都可以查看。因此,绝不应包含密码、信用卡号、身份证号等敏感信息。仅包含用户ID、权限(role)、过期时间等必需信息。

输入的JWT会发送到服务器吗?

不会,此工具100%在浏览器(客户端)中运行。输入的JWT和Secret Key不会发送到服务器,所有解码和验证仅通过JavaScript在浏览器中处理。可以在网络选项卡中直接确认。

匿名意见 1

可能让其他用户感到不适的内容或重复留言,可能会根据运营规则被隐藏或删除。

剩余字数: 120

还没有评论,欢迎留下第一条意见。