安全提示
JWT 的 Header 和 Payload 仅使用 Base64Url 编码(非加密),任何人都可以解码查看。 请勿在 JWT 中存放密码、密钥等敏感信息。 本工具纯浏览器端运行,Token 数据不会上传到服务器。

JWT Token 解析

粘贴 JWT Token,自动解码 Header、Payload,支持签名验证
等待输入...
示例:
JWT 结构详解
Header (Base64Url 编码的 JSON)
{ "alg": "HS256", "typ": "JWT" }
Payload (Base64Url 编码的 JSON)
{ "sub": "user123", "name": "John", "iat": 1516239022, "exp": 1516242622 }
Signature (签名)
HMACSHA256(base64Url(header) + "." + base64Url(payload), secret)
Header

包含算法(alg)和类型(typ)。alg 定义签名算法(HS256/RS256 等),typ 通常为 JWT。

Payload

包含声明(Claims):iss(签发者)、sub(主题)、exp(过期时间)、iat(签发时间)等。

Signature

使用密钥对 Header 和 Payload 签名,确保 Token 未被篡改。验证时需要相同密钥。

关于 JWT
JWT 是什么?由哪些部分组成?
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全传输信息。它由三部分组成,用点号(.)分隔:

Header(头部):包含算法(alg)和类型(typ),使用 Base64Url 编码。
Payload(载荷):包含用户数据和声明(Claims),如 exp(过期时间)、iat(签发时间),同样 Base64Url 编码。
Signature(签名):使用 Header 指定的算法和密钥对前两部分签名,用于验证 Token 未被篡改。
JWT 的 Payload 可以存放敏感信息吗?
绝对不可以。 JWT 的 Header 和 Payload 仅使用 Base64Url 编码,不是加密,任何人都可以轻松解码查看原始内容。

绝对不能存放:密码、信用卡号、身份证号、密钥等敏感信息。
适合存放:用户 ID、用户名、角色、权限、过期时间等非敏感数据。

如需保护敏感信息,应对 JWT 进行加密(JWE),或使用 HTTPS 传输。
如何验证 JWT 的签名?
签名验证需要以下步骤:

1. 从 Header 获取算法(alg)。
2. 使用相同的算法和密钥(Secret 或公钥)重新计算签名。
3. 将计算结果与 JWT 中的 Signature 部分对比。

如果一致,证明 Token 未被篡改;如果不一致,说明 Token 可能被伪造。

注意: 对称算法(HS256)使用相同密钥签名和验证;非对称算法(RS256)使用私钥签名、公钥验证。
JWT 过期了怎么办?
JWT 的 Payload 中通常包含 exp(过期时间)声明。当当前时间超过 exp 时,Token 过期,服务器应拒绝该请求。

处理方式:
1. 重新登录:用户重新输入凭证获取新 Token。
2. Refresh Token:使用长期有效的 Refresh Token 获取新的 Access Token。
3. 自动续期:在 Token 即将过期时自动刷新(需后端支持)。

本工具会自动检查 exp(过期时间)和 nbf(生效时间),并显示 Token 状态。
三部分解码

自动解析 Header、Payload、Signature,原始编码和 JSON 格式对比显示

签名验证

支持 HS256/HS384/HS512 对称算法验证,确保 Token 未被篡改

过期检查

自动识别 exp(过期时间)和 iat(签发时间),显示 Token 有效期状态

纯前端处理

Token 数据在浏览器端解析,不会上传到服务器,保障隐私安全