JWT生成器
生成带有自定义标头、有效载荷声明和 HMAC 签名算法(HS256/HS384/HS512)的签名 JSON Web Tokens (JWT)。包含快速声明预设、过期助手、实时令牌预览以及 JWT 三个段的视觉分解。
检测到广告拦截,导致我们无法展示广告
MiniWebtool 依靠广告收入免费提供服务。如果这个工具帮到了你,欢迎开通 Premium(无广告 + 更快),或将 MiniWebtool.com 加入白名单后刷新页面。
- 或升级 Premium(无广告)
- 允许 MiniWebtool.com 显示广告,然后刷新
JWT生成器
欢迎使用 JWT生成器,这是一个快速且免费的在线工具,用于创建已签名的 JSON Web Token。无论您是测试身份验证流、构建 API、调试集成,还是学习 JWT 的底层工作原理,此生成器都能让您完全控制令牌 Header、Payload 声明以及 HMAC 签名算法。只需点击一下即可输出有效的 HS256、HS384 或 HS512 令牌,并并排检查每个片段。
什么是 JSON Web Token?
JSON Web Token (JWT) 是 RFC 7519 定义的一种紧凑且 URL 安全的凭据格式。JWT 在两方之间承载关于主体的声明,并通过加密签名证明其完整性。由于令牌是自包含的,接收者无需回传签发者即可验证它——这一特性使 JWT 成为现代 Web 和移动应用无状态身份验证的核心支柱。
每个 JWT 都由三个以点连接的 base64url 编码部分构建:
- Header (头部) — 一个 JSON 对象,声明令牌类型 (
typ) 和签名算法 (alg)。 - Payload (负载) — 一个 JSON 对象,保存声明,例如用户 ID、过期时间以及任何自定义数据。
- Signature (签名) — 对编码后的 Header 和 Payload 进行的 HMAC 或 RSA 签名,保护它们不被篡改。
base64url(header).base64url(payload).base64url(signature)示例:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
JWT生成器的工作原理
此工具严格遵循 RFC 7519 §7.1 的 JWT 签名配方:
- 将 Header JSON 序列化为其紧凑形式(无空格)并进行 base64url 编码。
- 对 Payload JSON 执行相同操作。
- 用点分隔符连接两者。这就是签名输入。
- 使用您的密钥和选择的 SHA-2 算法计算签名输入的 HMAC。
- 对生成的签名字节进行 base64url 编码。
- 将所有内容连接为
header.payload.signature。
是什么让这个生成器与众不同
- 三片段颜色可视化 — Header(玫瑰红)、Payload(紫色)、Signature(青色),让您可以瞬间识别各部分。
- 快速声明调色板 — 一键插入
iss、sub、aud、iat、nbf和jti。 - 过期助手 — 预设 1 小时、1 天、7 天或 30 天的按钮,自动计算正确的 Unix 时间戳。
- 实时令牌预览 — 编码后的 Header 和 Payload 在您输入时同步更新,让您看到每次编辑如何改变令牌。
- 智能 Header 同步 — 切换算法会自动更新 Header 的
alg字段。 - Base64 密钥切换 — 如果您的密钥以 Base64 存储(JWS 二进制密钥约定),启用该选项后,工具会在签名之前对其进行解码。
- 分段复制按钮 — 独立复制 Header、Payload、Signature 或完整令牌。
- 声明摘要 — 识别出的标准声明会列出描述,并在适用时显示人类可读的时间戳。
选择正确的算法
此工具支持的三种 HMAC 变体在功能上完全相同,区别仅在于底层的 SHA-2 哈希和签名长度:
- HS256 — 使用 SHA-256 的 HMAC。256 位签名。几乎所有 JWT 签发库的默认设置,也是最具互操作性的选择。
- HS384 — 使用 SHA-384 的 HMAC。384 位签名。针对未来密码分析的安全性略高。
- HS512 — 使用 SHA-512 的 HMAC。512 位签名。当政策要求最长标准哈希时非常有用。
这三者都依赖于签发者和验证者持有的共享密钥。RFC 7518 §3.2 要求密钥长度至少与哈希输出长度一致:HS256 为 256 位,HS384 为 384 位,HS512 为 512 位。
标准注册声明
RFC 7519 §4.1 定义了一组 JWT 签发者和验证者应识别的标准声明。它们都是可选的,但得到了广泛支持:
iss(签发者) — 识别谁创建了令牌。通常是 URL 或服务名称。sub(面向的用户) — 识别令牌关于谁,通常是用户 ID。aud(受众) — 识别令牌预期的接收者。可以是单个字符串或数组。exp(过期时间) — 超过该 Unix 时间戳后,令牌必须被拒绝。nbf(生效时间) — 在该 Unix 时间戳之前,令牌不得被接受。iat(签发时间) — 记录令牌创建时间的 Unix 时间戳。jti(JWT ID) — 允许令牌被撤销或单独跟踪的唯一标识符。
如何使用此工具
- 选择签名算法 — 点击 HS256、HS384 或 HS512。Header 会自动更新以匹配。
- 编辑 Header(可选) — 默认 Header 包含
alg和typ。如果您的验证者需要,可以添加自定义kid(密钥 ID)。 - 构建 Payload — 以 JSON 格式输入您的声明,或点击快速声明按钮插入标准字段。过期助手会根据您选择的相对时长写入正确的 Unix 时间戳。
- 设置密钥 — 输入您的 HMAC 共享密钥。点击眼睛图标可显示密钥。如果您的密钥是 Base64 编码的,请勾选复选框,以便工具在签名之前对其进行解码。
- 生成 JWT — 点击“生成 JWT”。完整令牌、三个片段卡片、结构图和识别出的声明摘要将同时渲染。
- 复制所需内容 — 使用各片段的复制按钮或“复制令牌”按钮,将编码后的值带入 Postman、curl 或您的客户端应用中。
常见应用场景
身份验证和授权
- 登录成功后签发访问令牌。
- 编码用户身份 (
sub) 加上角色或权限声明。 - 签署短期令牌(15–60 分钟)并根据需要刷新。
API 集成测试
- 构建模拟令牌,测试 API 如何响应过期、未来日期或格式错误的声明。
- 为单元测试和 CI 管道生成固定 JWT。
- 在本地环境中模拟类似生产的令牌,而无需连接真实的认证服务器。
单点登录 (SSO) 调试
- 将已知正常的 JWT 与您的提供商发送的令牌进行对比,找出规范偏离之处。
- 检查上游签发者使用的签名算法和密钥 ID (
kid)。
常见问题解答
这里创建的 JWT 是真实的、有效的令牌吗?
是的。该令牌是对规范编码后的 Header 和 Payload 使用 HMAC 签名的。任何使用相同密钥的 JWT 库都能成功验证它。
为什么我的令牌看起来和我在其他地方生成的完全一样?
因为 JWT 是确定性的:给定相同的 Header、Payload 和密钥,每个符合规范的库都会生成完全相同的字符串。如果您看到差异,请检查 JSON 序列化顺序、键拼写和密钥编码是否都匹配。
我可以解码 JWT 以验证我生成的内容吗?
是的。可以将此工具与 JWT 解码器配合使用来检查片段。解码只是反转了 base64url 步骤 — 验证签名仍然需要密钥。
为什么我的密钥因太短而被拒绝?
RFC 7518 建议密钥长度至少为哈希输出长度:HS256 为 256 位。工具本身不强制执行最小长度,但行为良好的验证者可能会拒绝短密钥。在实际使用中,请使用随机生成的 32 字节以上的密钥。
此工具支持 RS256、ES256 或 EdDSA 吗?
目前不支持 — 此工具专注于基于 HMAC 的算法,因为它们只需要共享字符串。非对称算法 (RS*, PS*, ES*, EdDSA) 需要密钥对和 PEM 处理,更适合专用工具。
我的密钥和 Payload 会被发送到服务器吗?
表单通过 HTTPS 提交以计算签名。除了请求的生命周期外,不会记录或存储任何内容。无论如何,请勿在此处输入生产环境密钥 — 将其视为公共测试环境。
其他资源
引用此内容、页面或工具为:
"JWT生成器" 于 https://MiniWebtool.com/zh-cn//,来自 MiniWebtool,https://MiniWebtool.com/
由 miniwebtool 团队制作。更新于:2026年4月26日