JWT 生成器
您可在浏览器中直接生成并签署 JWT :输入有效载荷声明(标准格式sub、aud、exp等或自定义内容),选择算法(使用共享密钥的HS256或使用私钥的RS256/ES256),系统便会生成三部分组成的令牌。该工具适用于本地开发、负载测试及验证问题复现场景。
如何生成 JWT
-
1
编写有效载荷
标准声明(`sub`、`iss`、`aud`、`exp`、`iat`、`nbf`)以及您的应用程序所需的任何自定义声明。
-
2
选择算法
采用共享密钥的HS256/384/512算法,或采用PEM格式私钥的RS256/ES256算法。
-
3
提供密钥
可共享 HMAC 的密文,或粘贴RSA/ ECDSA 的私钥。两者均保留在您的浏览器中。
-
4
生成
输出结果为带符号的令牌。请复制该令牌,在测试中使用,并通过 JWT 解码器进行解码以检查其内容。
经认证用户令牌的典型负载
{
"iss": "https://auth.example.com",
"aud": "api.example.com",
"sub": "user_12345",
"iat": 1713398400,
"nbf": 1713398400,
"exp": 1713402000,
"jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
"scope": "read:profile write:posts"
}
算法选择:HMAC 算法与非对称算法
| 算法 | 关键类型 | 适用场景 |
|---|---|---|
| HS256 | 256位共享密钥 | 能自行签名和验证的单体算法 |
| HS384/512 | 加密长度更长 | 与 HS256 相同,安全性更强 |
| RS256 | RSA 2048+ | 发行方签名;多项服务均使用公钥进行验证 |
| ES256 | ECDSA P-256 | 与 RS256 相同,但特征码更小 |
| EdDSA | Ed25519 | 最快速的非对称认证算法,所需密钥长度最短 |
密钥强度
- HMAC 密钥的熵值必须至少与算法输出长度相当。HS256 算法需要 256 个随机比特(32 字节);若少于此数量则易被暴力破解。
- RSA 密钥长度至少为 2048 位;对于长期使用的令牌,可使用 3072 位或 4096 位。
- ECDSA(ES256)在密钥长度显著更短且签名速度更快的前提下,提供了与 RSA 3072 相当的安全性。
有效期指南
| 令牌类型 | 典型 exp 有效期 |
|---|---|
| 访问令牌 | 5–60分钟 |
| 刷新令牌 | 天至周 |
| 密码重置 | 5–15分钟 |
| 邮箱验证 | 24小时 |
| 服务间 | 1–5分钟(较短) |
短期到期+刷新机制的令牌是现代主流模式;而长期有效的访问令牌一旦被攻破,其撤销难度极高。
常见错误
- **在生产环境中重复使用测试密钥。**若密钥安全性不足,生成器会标记HS256密钥及其输出 JWT 为“仅限测试”状态,请务必重视此警告。
- 未使用
exp的签名。 无有效期的 JWT 永久有效。除非有充分理由且被列入撤销名单,否则务必设置exp。 - 在验证端直接采用头部中的
alg。 始终在验证端将算法列入白名单;切勿遵循令牌的要求。 - 在此处粘贴真实的私钥。 该生成器可在您的浏览器中运行,请将私钥视为机密信息:请使用测试密钥而非生产密钥。
常见问题
不。签名操作通过Web Crypto API在您的浏览器中完成。密钥始终保留在您的设备上。不过,生产密钥必须在受控环境中生成和签名,而非在浏览器中进行。
对于需要统一服务签名与验证的单体系统,HS256已足够适用;而当签发方与验证方分离时,RS256或ES256更为合适,此时可共享公钥而不泄露签名密钥。
访问令牌的处理时间通常为5至15分钟。建议使用有效期较长的刷新令牌以确保用户体验流畅。切勿在未包含 exp 索引的情况下签发 JWT。
该工具支持输出 alg: none 以对损坏或未签名的令牌进行针对性测试,并会显示醒目的警告提示。切勿在生产代码中使用此类令牌。
相关工具
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
加密标识符
粘贴密文或哈希值后,系统会显示可能使用的算法或编码方式:MD5、SHA、bcrypt、AES、RSA、Base64等。
校验和验证器
计算任意文本的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 或 CRC32 校验和,并与预期值比较,获得明确的匹配或不匹配结果。
A1Z26 密码编码器
使用 A1Z26 密码(A=1, B=2, ... Z=26)编码文本,或把数字序列解码回字母,并可自定义分隔符。
CSR 生成器
生成 PEM 格式的证书签名请求及对应的 RSA 私钥。指定通用名称、组织字段和密钥大小(2048、3072 或 4096 位)。
密码类型识别器
粘贴密文,识别器会给出可能的编码/密码方案:Base64、hex、二进制、摩斯、凯撒或替换、JWT 及常见哈希。
此工具还提供其他语言版本
- JWT-generator [SV]
- مولد JWT [AR]
- JWT-generator [NL]
- Generator JWT [PL]
- Bộ tạo JWT [VI]
- ตัวสร้าง JWT [TH]
- Generador de JWT [ES]
- JWTジェネレーター [JA]
- Generator JWT [ID]
- Générateur de JWT [FR]
- JWT-Generator [DE]
- Gerador de JWT [PT]
- JWT 생성기 [KO]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT Generator [EN]
- Generatore JWT [IT]