JWT 签名工具
从载荷和密钥创建并签名 JWT(HS256/384/512)——使用 Web Crypto。
您的载荷和密钥使用 Web Crypto API 在您的浏览器本地签名,不上传任何内容,但请将其视为测试工具,避免粘贴真实的生产密钥或令牌。
需要检查令牌?试试 JWT 解码器。
关于 JWT 签名工具
此 jwt signer 使用 HMAC 算法 HS256、HS384 和 HS512,从 JSON 载荷和共享密钥创建并签名 JSON Web Token。粘贴您的声明,选择算法,工具便会构建头部、对所有内容进行 base64url 编码,并用 Web Crypto API 签名,生成完整的令牌。当您需要在线签名 jwt 以进行本地测试、模拟鉴权流程或生成 jwt 以验证后端如何校验 HMAC 签名时,它非常方便。开发者、QA 工程师和 API 测试人员可以快速创建 jwt 令牌,而无需搭建签名库。一切都在您的浏览器本地运行,因此载荷和密钥都在您的设备上处理,不会上传到任何服务器。
功能特性
- 使用 HS256、HS384 或 HS512 HMAC 算法签名令牌
- 自动构建 JWT 头部并进行 base64url 编码
- 使用浏览器原生的 Web Crypto API 计算签名
- 在签名前验证您的载荷是格式良好的 JSON
- 可为 HMAC 签名设置任意共享密钥
- 在您编辑载荷或密钥时实时更新签名后的令牌
- 输出完整、可直接使用的 header.payload.signature 令牌
- 可将签名后的令牌下载为 token.jwt 文件
如何使用 JWT 签名工具
- 将您的声明以 JSON 形式粘贴到载荷(JSON)输入框中。
- 用 HS256 / HS384 / HS512 切换选择签名算法。
- 在密钥字段中输入您的共享密钥。
- 从已签名 JWT(HMAC)输出中复制令牌,或将其下载为 token.jwt。
示例
输入
{
"sub": "1234567890",
"name": "Ada",
"iat": 1516239022
}
输出
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSIsImlhdCI6MTUxNjIzOTAyMn0.0J9-Vq0Qb8m8Pq3qkFf3kYwQ5kqS1q3y6n8m9Y4hXyU
使用 HS256 和密钥「your-256-bit-secret」签名的载荷(所示签名仅为示例)。
常见错误与故障排除
- 签名器显示 JSON 错误且不生成令牌。 — 请确保载荷是有效的 JSON,例如将字符串值用双引号括起来并移除尾随逗号。
- 因未设置密钥而签名失败。 — 请在密钥字段中输入一个值;没有共享密钥就无法签名 HMAC 令牌。
- 您的后端以签名无效为由拒绝令牌。 — 请确认验证方使用的密钥和算法(HS256/384/512)与您签名时所选的完全一致。
- 您期望得到 RS256 或 ES256 令牌。 — 本工具仅签名 HMAC 算法;请使用 HS256、HS384 或 HS512,它们共享一个密钥,而非公钥/私钥对。
常见问题
- 什么是 JWT Signer,它有什么作用?
- JWT Signer 使用 HMAC 算法 HS256、HS384 或 HS512,将 JSON 载荷和共享密钥转换为完整的、已签名的 JSON Web Token。
- 如何从载荷创建 JWT?
- 将您的声明以 JSON 粘贴,选择算法并输入密钥;工具会编码头部和载荷,并附加 HMAC 签名,生成完整的令牌。
- JWT Signer 支持哪些算法?
- 它使用 HMAC 算法 HS256、HS384 和 HS512 签名令牌,这些算法都使用单一共享密钥,而非公钥/私钥对。
- 我能验证或解码 JWT Signer 生成的令牌吗?
- 本工具仅签名令牌,但您可以将结果粘贴到 JWT 解码器中以检查头部和载荷。
- JWT Signer 会把我的密钥或载荷发送到任何地方吗?
- 不会。JWT Signer 完全在您的浏览器中使用 Web Crypto API 运行,因此您的密钥和载荷都在本地处理,绝不离开您的设备。
- 为什么我签名的令牌与另一个工具的输出不同?
- 签名随密钥和算法而变化;只有使用相同的密钥和 HMAC 算法时,相同的载荷才会产生相同的令牌。
相关工具
全部 ArrayKit 工具