JWT编码/解码
在线JWT(JSON Web Token)编码与解码工具,支持HS256/HS384/HS512、RS256/RS384/RS512、ES256/ES384/ES512算法。解码JWT令牌的Header与Payload,可选验证签名有效性;自定义Header与Payload生成JWT令牌;一键生成HMAC/RSA/ECDSA密钥对。
JWT解码
JWT编码
密钥生成
JWT解码与签名验证
Header
// 解码结果将显示在此处...
Payload
签名验证
生成JWT令牌
生成的JWT
生成签名密钥对
私钥 (Private Key)
公钥 (Public Key)
功能特性
一键解码
粘贴JWT令牌即可自动拆分并解码Header与Payload,支持base64url解码与JSON格式化展示。
签名验证
提供密钥后可验证HMAC/RSA/ECDSA签名是否有效,帮助排查令牌篡改或密钥不匹配问题。
自定义生成
自由编辑Header和Payload的JSON内容,选择9种签名算法生成符合RFC 7519规范的JWT令牌。
密钥生成
一键生成HMAC对称密钥或RSA/ECDSA非对称密钥对,Base64编码输出,可直接用于JWT签名。
复制便捷
所有解码结果与生成内容均支持一键复制到剪贴板,方便粘贴到Postman、curl或其他工具中使用。
安全本地
解码操作完全在浏览器本地完成(Base64解码),不向后端传输Token数据,保护敏感信息。
使用说明
JWT解码
- 切换到「JWT解码」标签页,将完整的JWT令牌粘贴到Token输入框。
- 如需验证签名,在「密钥」输入框中填入对应的密钥(HMAC算法)或私钥(RSA/ECDSA算法)。
- 点击「解码」按钮,Header和Payload将自动格式化显示,签名验证状态以颜色标识(绿色=有效,红色=无效)。
- 不填写密钥时,仅解码Header和Payload,不验证签名。
JWT编码
- 切换到「JWT编码」标签页,选择签名算法(如HS256)。
- 编辑Header JSON(通常包含
alg和typ字段)和Payload JSON(包含自定义声明)。 - 在「密钥」框中输入对应算法的密钥或私钥。
- 点击「生成JWT」按钮,生成的令牌将显示在下方结果区域。
密钥生成
- 切换到「密钥生成」标签页,选择密钥类型(HMAC/RSA/ECDSA)和密钥长度。
- 点击「生成密钥」按钮,私钥和公钥将自动生成并显示。
- RSA密钥默认生成2048位,ECDSA根据算法选择P-256/P-384/P-521曲线。
- 生成的密钥为Base64编码(PKCS#8格式),可直接用于本工具的JWT编码功能。
典型使用场景
- API认证调试:解码后端返回的JWT令牌,检查用户ID、角色、过期时间等声明是否正确。
- OAuth2.0开发:生成测试用Access Token,模拟授权服务器签发令牌给客户端。
- 签名验证:排查JWT签名不匹配问题,验证密钥是否正确、算法是否一致。
- 微服务安全:生成RSA/ECDSA密钥对,在服务间使用非对称JWT实现安全认证。
- 教学演示:直观展示JWT三段结构(Header.Payload.Signature)与Base64URL编码原理。
常见问题
JWT的三个部分分别是什么?
JWT由三部分组成,以点号
.分隔:Header(头部,包含算法类型alg和令牌类型typ)、Payload(载荷,包含声明/Claims,如用户ID、角色、过期时间等)、Signature(签名,使用Header指定的算法对Header和Payload进行签名,防止篡改)。前两部分使用Base64URL编码,可直接解码查看内容。
HS256和RS256有什么区别?
HS256(HMAC-SHA256)是对称签名算法,签名和验证使用同一个密钥,计算速度快,适合单体应用。RS256(RSA-SHA256)是非对称签名算法,使用私钥签名、公钥验证,安全性更高,适合微服务架构中授权服务器签发令牌、资源服务器验证令牌的场景。ES256(ECDSA)同样是非对称算法,密钥更短、速度更快。
不提供密钥可以解码JWT吗?
可以。JWT的Header和Payload部分仅使用Base64URL编码(非加密),任何人都可以解码查看内容。密钥仅用于验证Signature部分的有效性,确认令牌未被篡改。因此,切勿在JWT的Payload中放置密码、身份证号等敏感信息。
生成的密钥格式是什么?
HMAC密钥为Base64编码的随机字节串。RSA和ECDSA密钥对使用PKCS#8格式,同样以Base64编码输出。如需PEM格式,可在Base64字符串前后添加
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----等标记。
本工具是免费的吗?数据安全吗?
完全免费,无需注册登录。JWT解码功能在浏览器本地完成(Base64URL解码),不向后端传输Token数据。JWT编码和密钥生成功能通过后端API处理,仅在请求过程中传输数据,不会被持久化存储。
JWT的exp声明过期后还能解码吗?
可以解码。JWT的过期时间(exp声明)只是Payload中的一个数值,解码时不会检查是否过期。本工具的签名验证也不检查生命周期(ValidateLifetime=false),方便开发者查看过期令牌的内容。在实际应用中,验证中间件通常会检查exp并拒绝过期令牌。