JWT 解码校验

拆解 Header/Payload/Signature,支持密钥校验签名

Ctrl+Enter 执行 · Ctrl+K 清空

输入

13

输出

字符数:0|行数:0

使用说明

粘贴完整的 JWT Token,点击「解码」查看 Header/Payload/Signature。在「密钥」字段填入密钥后点击「校验签名」验证有效性。

关于JWT 解码校验

JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),用于在网络应用之间安全地传递声明信息。JWT 通常由三部分组成:Header(头部,描述令牌类型与签名算法)、Payload(载荷,包含用户身份与权限声明)、Signature(签名,用于验证令牌完整性),三部分以点号(.)连接,形如 xxxx.yyyy.zzzz。

JWT 广泛应用于现代 Web 应用的身份认证与信息交换:单点登录(SSO)、API 接口鉴权、OAuth 2.0 Access Token、微服务间调用凭证等。理解 JWT 内部结构对调试认证流程、排查权限问题、安全审计至关重要。注意 JWT 的 Header 与 Payload 部分使用 Base64URL 编码(非加密),任何人都可以解码查看内容,因此切勿在 Payload 中存放敏感信息。

本 JWT 解码工具使用浏览器原生 atob 函数解码 Header 与 Payload 部分,并以格式化 JSON 形式展示。所有解码操作在浏览器本地完成,Token 不会上传至任何服务器,可放心解码生产环境的 Token。

核心特性

三段式自动解析

自动识别 JWT 的 Header.Payload.Signature 三段结构,分别解码展示。

安全警告

自动检测 alg=none、缺失签名段、exp 已过期 / 即将过期(5 分钟内)等高风险情况并醒目标注。

时间声明可读化

exp、iat、nbf、auth_time 等时间戳声明自动附带 ISO 8601 可读时间,无需心算。

格式化 JSON 输出

解码后的 Header 与 Payload 以缩进 JSON 形式展示,便于阅读其中的声明字段。

Base64URL 兼容

正确处理 Base64URL 编码(替换 - 为 +、_ 为 /、补充 = 填充),与 JWT 标准一致。

本地解码无上传

所有解码在浏览器内完成,包含用户身份信息的 Token 不会上传服务器。

使用场景

1

调试 OAuth 登录流程

OAuth 2.0 登录返回的 Access Token 通常是 JWT,解码后可查看用户 ID、过期时间、权限范围等声明。

2

排查权限问题

当用户报告权限不足时,解码其 JWT 查看角色声明(role)与权限声明(scope),快速定位问题。

3

验证 Token 过期

解码 Payload 中的 exp(过期时间)字段,与当前时间对比,判断 Token 是否已失效。

4

安全审计

审计 JWT 实现时,解码 Token 检查是否包含敏感信息、是否使用弱签名算法(如 none、HS256 短密钥)。

常见问题

JWT 解码等于解密吗?

不等于。JWT 的 Header 与 Payload 仅使用 Base64URL 编码,任何人都可以解码查看,没有加密。JWT 的安全性来自 Signature 部分的签名,确保 Token 未被篡改。切勿在 Payload 中存放密码、密钥等敏感信息。

为什么我的 Token 解码失败?

常见原因:1) Token 不完整(缺少某一段);2) Token 中包含空格或换行;3) Token 实际上不是 JWT 而是其他格式(如 opaque token)。请检查 Token 是否为标准的三段式结构。

能验证 JWT 签名吗?

本工具仅解码 Header 与 Payload,不验证签名。签名验证需要服务端密钥(HS256)或公钥(RS256),属于服务端逻辑。但工具会自动检测 alg=none、缺失签名段、exp 过期 / 即将过期等高风险情况并醒目提示;如需完整的签名验证,请使用 jwt.io 等在线工具或后端库。

JWT 中常见的声明字段有哪些?

标准声明包括:iss(签发者)、sub(主体,通常为用户 ID)、aud(接收方)、exp(过期时间)、iat(签发时间)、nbf(生效时间)、jti(唯一 ID)。自定义声明则根据业务需要添加,如 role、scope、email 等。