JWT解密/加密工具
快速解析和验证JWT令牌,支持编码和解码
解密JWT
加密JWT
⚡ 快速配置
JWT结构
JWT完全指南
什么是JWT?
JWT结构详解
🔵 Header(头部)
包含令牌类型和签名算法。通常包含:
- typ: 令牌类型(JWT)
- alg: 签名算法(HS256、RS256等)
🟢 Payload(负载)
包含声明(claims)。常见声明:
- sub: 主题(用户ID)
- iat: 签发时间
- exp: 过期时间
- 自定义声明
🔴 Signature(签名)
用于验证令牌的完整性和真实性。由以下部分组成:
- HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
常见签名算法
| 算法 | 类型 | 说明 |
|---|---|---|
| HS256 | 对称 | HMAC with SHA-256,使用共享密钥 |
| HS384 | 对称 | HMAC with SHA-384 |
| HS512 | 对称 | HMAC with SHA-512 |
| RS256 | 非对称 | RSA with SHA-256,使用公钥/私钥 |
| RS384 | 非对称 | RSA with SHA-384 |
| RS512 | 非对称 | RSA with SHA-512 |
| ES256 | 非对称 | ECDSA with SHA-256 |
JWT的应用场景
🔐 身份认证
用户登录后,服务器生成JWT并返回给客户端,客户端在后续请求中携带JWT进行身份验证。
🔄 跨域认证
在微服务架构中,JWT可以跨越不同的域进行认证。
📱 移动应用
移动应用可以使用JWT进行无状态认证,减少服务器负担。
🔗 API授权
用于API的授权和访问控制。
JWT的优点和缺点
✅ 优点
- 无状态:服务器不需要存储会话信息
- 可扩展:适合分布式系统
- 跨域:支持CORS
- 移动友好:适合移动应用
- 安全:使用签名验证完整性
❌ 缺点
- 令牌大小:比会话ID更大
- 无法撤销:签发后无法立即撤销
- 泄露风险:如果密钥泄露,所有令牌都不安全
- 时间同步:需要服务器和客户端时间同步
常见问题
Q: JWT是否加密?
A: JWT默认不加密,只是编码。Payload中的数据可以被解码看到。如需加密,使用JWE。
Q: JWT过期后怎么办?
A: 使用Refresh Token获取新的JWT,或重新登录。
Q: 如何安全地存储JWT?
A: 在浏览器中存储在HttpOnly Cookie中,或使用内存存储。
Q: JWT和Session有什么区别?
A: JWT无状态,Session有状态。JWT适合分布式系统,Session适合单体应用。
使用示例
📝 典型JWT令牌
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyNDI2MjJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
同类工具推荐
二维码生成器
专业的在线二维码生成器,支持文本、URL、电话、邮箱、WiFi等多种内容生成QR码。生成的二维码可被微信、支付宝、QQ等应用扫描识别。可自定义大小、颜色、容错级别。完全免费,本地生成,保护隐私。
立即使用图片Base64互转
专业的在线图片Base64互转工具,支持图片转Base64编码、Base64转图片。支持JPG、PNG、GIF、WebP等多种格式。可预览、复制、下载。完全免费,本地处理,保护隐私。
立即使用Cron 表达式
专业的在线 Cron 表达式生成器,支持快捷预设(每分钟、每5分钟、每小时等),轻松生成和验证定时任务表达式。支持字段编辑、实时验证、中文描述。完全免费,本地处理,保护隐私。
立即使用