# JWT 在线生成 / 签名 / 验签工具 - 支持 HS256、RS256、ES256、PS256

> 免费在线 JWT 生成器：编辑 Header 与 Payload，用 HS / RS / PS / ES 全系列算法签名，可生成 RSA / EC 密钥对并导出 PEM 与 JWK，支持验签与过期检查。

- 网址: https://qilingtools.com/zh/jwt-generate
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [隐私安全](https://qilingtools.com/zh/tags/privacy), [开发](https://qilingtools.com/zh/tags/dev)
- 最后更新: 2026-10-26
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

开发登录鉴权、调试网关或写接口测试时，经常需要一个指定内容、指定算法的 JWT。在这里编辑 Header 和 Payload 的 JSON，选择算法、填好密钥，令牌就会实时签好。HMAC 系列（HS256/384/512）支持文本、Base64 和 Hex 格式的密钥，密钥长度不足 RFC 7518 要求时会提示；RSA（RS256/384/512）、RSA-PSS（PS256/384/512）和 ECDSA（ES256/384/512）可以粘贴 PKCS#8、PKCS#1（BEGIN RSA PRIVATE KEY）或 SEC1（BEGIN EC PRIVATE KEY）格式的私钥或私钥 JWK，也可以一键生成测试用密钥对，同时给出公钥 PEM 和带 kid（RFC 7638 指纹）的公钥 JWK，方便配置到 JWKS。载荷编辑区提供 iat、nbf、exp（+15 分钟～+30 天）快捷按钮和 iss、sub、aud、jti 标准声明补全。切换到验证页，粘贴令牌和密钥（支持公钥 PEM、X.509 证书、JWK/JWKS）即可校验签名，并检查 exp、nbf、iat，可设置时钟容差、固定期望算法，alg: none 一律拒绝。只想查看令牌内容可以使用站内的 JWT 解析工具。

## 使用步骤

1. 选择签名算法，输入 HMAC 密钥，或粘贴私钥 / 一键生成密钥对
2. 编辑 Header 与 Payload，用快捷按钮添加 iat、exp 等时间声明
3. 复制生成的 JWT；需要时切到「验证签名」用密钥或公钥校验

## 功能特点

- HS256/384/512、RS256/384/512、PS256/384/512、ES256/384/512
- 一键生成 RSA / EC 密钥对，导出公钥 PEM 与带 kid 的 JWK
- 支持 PKCS#8、PKCS#1、SEC1 私钥与 JWK
- 验签支持公钥 PEM、X.509 证书、JWK / JWKS
- exp / nbf / iat 检查与时钟容差，拒绝 alg: none
- iat、exp 预设与标准声明一键补全
- WebCrypto 本地运算，密钥不上传

## 常见问题

### HS256 和 RS256 / ES256 有什么区别，该选哪个？

HS256 是对称签名，签发方和验证方共用同一个密钥，适合单个服务内部使用；RS256、PS256、ES256 是非对称签名，用私钥签名、公钥验证，公钥可以公开给其它服务或放进 JWKS，适合多服务、第三方验证的场景。ES256 的密钥和签名更短，PS256 是更现代的 RSA 填充方式。

### HMAC 密钥需要多长？

RFC 7518 要求 HMAC 密钥至少与哈希输出一样长：HS256 至少 32 字节（256 位），HS384 至少 48 字节，HS512 至少 64 字节。密钥过短时工具会给出提示。生产环境建议使用「随机生成」得到的高熵随机密钥，而不是好记的密码。

### 验证时提示签名无效，可能是什么原因？

常见原因有：密钥不对或格式选错（例如 Base64 密钥被当成文本）；用 RS 公钥验证 ES 令牌等算法不匹配；令牌被复制时截断或多了空格；Header / Payload 被修改过。签名有效但令牌已过期、尚未生效时，工具会单独列出 exp、nbf 问题。

### 在网页上生成和签名 JWT 安全吗？

所有签名、验证和密钥生成都通过浏览器内置的 WebCrypto 在本地完成，密钥和令牌不会发送到服务器。但仍建议只用它处理开发和测试用的密钥，不要把生产环境的私钥或长期有效的令牌粘贴到任何网页中。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：支持中文 UTF-8、URL 安全变体，文本与 Base64 互转，实时转换，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：encodeURIComponent 与 encodeURI 两种模式，处理中文、空格与特殊符号，本地实时转换不上传。
- [JWT 解析](https://qilingtools.com/zh/jwt): 免费在线 JWT 解析工具：解码 JWT 的 Header 与 Payload，展示过期时间、签发时间等，本地解析不上传，保护令牌安全。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希/摘要计算工具：对文本或文件计算 SHA-1、SHA-256、SHA-384、SHA-512，使用浏览器加密接口本地完成，文件不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：使用加密安全随机数批量生成符合 RFC 4122 的 UUID v4，可大写、去连字符、加花括号，一键复制。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，支持大整数（BigInt），本地实时计算。
