JWT 解析 / 生成器
解析 JWT 三段结构,验证 HMAC 签名,支持自定义 Payload 一键生成令牌
JWT 输入
粘贴您的 JWT Token 进行解析
典型 Payload 示例
点击 Payload 加载到生成器
算法参考
| 算法 | 类型 | 密钥 | 安全级别 |
|---|---|---|---|
HS256 | HMAC 对称 | Shared Secret | 标准 |
HS384 | HMAC 对称 | Shared Secret | 标准 |
HS512 | HMAC 对称 | Shared Secret | 强 |
RS256 | RSA 非对称 | Private/Public Key | 强 |
ES256 | ECDSA 非对称 | EC Key Pair | 极强 |
标准 Claim 字段
| 字段 | 类型 | 说明 |
|---|---|---|
sub | string | 主题(用户 ID) |
iss | string | 签发者 |
aud | string | 受众 |
exp | number | 过期时间(Unix 时间戳) |
iat | number | 签发时间(Unix 时间戳) |
nbf | number | 生效时间(Unix 时间戳) |
jti | string | JWT 唯一标识符 |
关于 JWT 解析与生成工具
JWT(JSON Web Token)是目前 Web 应用中最广泛使用的无状态认证方案,被 OAuth 2.0、OpenID Connect 等主流授权协议采纳。一个 JWT 由 Header、Payload 和 Signature 三段 Base64Url 编码的 JSON 组成,通过 . 连接。
本工具在浏览器端完整实现了 JWT 的解析与生成,支持 HS256/HS384/HS512 三种 HMAC 签名算法,可用于调试 API 认证、验证 Token 有效性、快速生成测试令牌等场景,所有操作均在本地进行,保障您的密钥安全。
使用方法
解析模式:将 JWT Token 粘贴到输入框,工具自动 Base64Url 解码 Header 和 Payload,解析标准声明(exp/iat/nbf/sub/iss/aud/jti)并以可读格式展示。输入签名密钥后点击「验证签名」可通过 HMAC-SHA256/384/512 验证 Token 完整性。
生成模式:在 Payload 编辑器中编写 JSON(支持 iat/exp 时间戳快捷设置),选择 HS256/HS384/HS512 算法,输入 HMAC 密钥,点击生成即可获得三段式签名 Token。
安全提示
- 所有加解密与签名运算均通过浏览器 Web Crypto API 在本地执行,Token 和密钥不会通过网络传输至任何服务器。
- JWT Payload 仅做 Base64Url 编码,并非加密——切勿在 Payload 中存储密码、信用卡号等敏感信息。如需加密传输,应使用 JWE(JSON Web Encryption)规范。
- 生产环境建议使用 RS256 或 ES256 非对称算法。对称算法(HS256)的密钥需要在签名方和验证方之间共享,密钥泄露风险更高。
典型生产场景
调试 API 网关认证失败
用户反馈 401 错误,从浏览器 DevTools Network 面板复制 Authorization Header 中的 JWT,粘贴到解码区即可立即查看 Token 是否过期、签发者是否正确、算法是否匹配。结合签名验证功能确认 Token 未被中间人篡改。
验证第三方 IdP 签发的 Token
Auth0、Keycloak、Firebase Auth 等身份提供商签发的 JWT 通常使用 RS256 签名。本工具 HS256/384/512 验证适用于内部服务 Token 自检,对于 RS256 Token 可解码 Header/Payload 查看声明内容,签名验证需使用 IdP 提供的 JWKS 公钥端点。
CI/CD Pipeline 中快速生成测试令牌
集成测试环境中需要有效的 JWT 来模拟认证用户。使用生成模式填写测试用户 Payload,设置合适的过期时间(如 1 小时),用测试密钥签名后注入 CI 环境变量。注意:严禁将生产密钥硬编码到 CI 配置中。
微服务间 JWT 互信联调
微服务架构中,Gateway 签发的 JWT 需要被下游服务验证。调试时可复制 Gateway 签发的 Token 到解码区,查看 aud 字段是否正确指向目标服务,验证 exp 是否覆盖了服务间调用的最大时延。
排查 Token 刷新流程异常
当 Refresh Token 轮转机制异常时(如用户突然被登出),将 Refresh Token 粘贴到解析区检查 exp 和 iat 字段,确认 Token 有效期和签发时间是否符合预期,排除时钟偏差(clock skew)问题。
常见错误与避坑指南
将 Base64 当作 Base64Url
JWT 使用 Base64Url 编码(用 - 替代 +、用 _ 替代 /、去除尾部 =),而非标准 Base64。如果在后端手动拼接 JWT 时使用了标准 Base64 编码,Token 在网络传输中会被破坏。本工具自动处理两种编码差异,粘贴任意格式均可正确解码。
忽略算法白名单——「none 算法攻击」
JWT 规范允许 alg: "none" 表示无签名。如果服务端 JWT 库未强制校验算法白名单,攻击者可以发送 alg 为 none 的 Token 直接绕过签名验证。生产环境务必在后端强制指定接受的算法列表(如只接受 RS256),同时拒绝 HS256→RS256 的算法混淆攻击。
跳过 aud 和 iss 声明校验
仅验证签名和过期时间是不够的。必须同时校验 aud(audience)确保 Token 颁发给当前服务,校验 iss(issuer)确保 Token 来自受信任的签发方。忽略这些校验会导致 Token 跨服务滥用——一个为日志服务签发的 Token 不应被数据库服务接受。
密钥长度不满足算法最低要求
HS256 要求密钥至少 256 bits(32 字节),HS384 要求 384 bits(48 字节),HS512 要求 512 bits(64 字节)。使用过短的密钥(如 "secret")会严重降低签名强度。建议使用随机生成的密钥,通过环境变量或密钥管理服务(Vault/KMS)注入。
深度专题:对称与非对称签名算法选型
对称算法(HS256/HS384/HS512)使用同一个密钥签名和验证。架构简单,适合单体应用或内部工具。缺点是密钥需共享给所有需要验证 Token 的服务——密钥泄露面随服务数量线性增长。在微服务架构中,任何一个持有密钥的服务被攻破,整个集群的 Token 体系即告失效。
非对称算法(RS256/RS384/RS512/ES256/ES384/ES512)使用私钥签名、公钥验证。认证服务独占私钥,下游服务仅持有公钥——即使下游被攻破也无法伪造 Token。RS256 基于 RSA,兼容性最好但签名较长(约 342 字节);ES256 基于 ECDSA P-256 曲线,签名仅约 64 字节,同等安全级别下密钥更短,推荐用于移动端和带宽敏感场景。
实际选型建议:单服务或内部工具用 HS256 足够简单;多服务/微服务架构推荐 RS256 或 ES256;对接第三方 IdP(Auth0/Okta)时通常对方已指定 RS256。密钥管理方面,对称密钥存于环境变量或 Vault,非对称私钥务必使用 HSM 或云 KMS 保护,公钥通过 JWKS 端点分发。