什么是JWT 解码器?
JWT(JSON Web Token)是现代 Web API 表示身份验证和授权声明的标准方式。它是一种紧凑、自包含的令牌,由三部分组成——描述签名算法的头部、承载实际声明(如用户 ID、角色和过期时间)的载荷,以及让接收服务器能够验证令牌未被篡改的签名。
这款解码器即时读取头部和载荷,帮助你调试身份验证问题、检查 API 实际发送了哪些声明,或查看令牌何时过期——完全无需后端、命令行工具,也无需将敏感令牌粘贴到第三方服务器,因为一切都在你的浏览器本地运行。
何时使用此计算器
- 通过检查令牌的声明和过期时间来调试 API 为何拒绝该令牌
- 在支持排查或事件响应期间检查令牌的过期时间
- 验证 SSO 或 OAuth 提供商是否正在发出您的应用程序所期望的声明。
- 为面试准备或安全课程学习 JWT 的结构
- 检查从浏览器开发者工具或服务器日志中捕获的令牌以了解其内容
- 比较令牌之间的头部算法以调试算法不匹配导致的身份验证失败
步骤:
- 将你的 JWT 粘贴到输入框中,或点击“加载示例”尝试一个示例令牌。
- 输入的同时,头部和载荷会自动被解码。
- 以清晰易读的形式查看 iss、sub、exp、iat 等声明。
- 时间戳类声明(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'(签发者)标识创建该令牌的服务器。
请记住,解码并非验证。签名部分会显示,但在没有密钥或公钥的情况下无法验证。解码后的负载仅供参考 — 未经服务器端签名验证,切勿将其视为身份证明。

