跳到主要内容

JWT 生成器

自定义 Header/Payload 生成并 HS256 签名 JWT

生成 HS256/384/512 签名 JWT;密钥与 payload 均不上传,使用 Web Crypto 本地签名。需 HTTPS 或 localhost。

为什么需要 JWT 生成

做登录、做接口联调、给前端塞一个测试 token,时常要现场造一个 JWT(JSON Web Token)看看结构、验证签名。手写 header.payload.signature 三段 base64 很容易把 . 漏了或签名算错。

本工具用 HS256/384/512 生成 JWT:填 header、payload 和密钥,即时算出完整三段式 token,并展示每段的明文,方便你核对。

概念与公式

JWT 由三部分用 . 连接:header.payload.signature

  1. header(JSON):{"alg":"HS256","typ":"JWT"},base64url 编码。
  2. payload(JSON):业务声明(如 subexpname),base64url 编码。
  3. signatureHMAC-SHAxxx( base64url(header) + "." + base64url(payload), 密钥 ),再 base64url 编码。

最终:xxxxx.yyyyy.zzzzzalg 里的 HS 表示 HMAC 对称签名(同一把密钥签和验)。

注意:JWT 依赖 Web Crypto(crypto.subtle),需在 HTTPS 或 localhost 安全上下文下生成;HTTP 明文站点无法运行。

细分场景

  • 接口联调:造一个带 exp 的测试 token 发给后端验证。
  • 教学演示:直观看 header/payload/signature 三段结构。
  • 本地开发:给前端塞一个临时 token 跳过登录。

怎么用本工具

填 header(默认 {"alg":"HS256","typ":"JWT"})、payload(JSON)、密钥,选算法(HS256/384/512),点「生成」即得完整 token,下方分别展示三段解码内容。复制整段或单段均可。

常见场景与实例

例:带过期时间 payload {"sub":"user1","exp":1893456000} → 生成 token,解码后能看到声明与过期时间。

相关工具:HMAC 生成API Key 生成

隐私说明

全程浏览器本地用 Web Crypto 计算,不联网、不上传你的 payload 与密钥;请勿在公共设备填入生产级敏感声明。

常见问题

JWT 的三段是什么?
Header(算法与类型)、Payload(声明数据)、Signature(对前两段的签名)。用点连接:xxxxx.yyyyy.zzzzz。本工具生成时实时显示三段。
HS256 和 RS256 有什么不同?
HS256 用对称密钥(同一密钥签名与验证),简单适合服务内;RS256 用非对称密钥对(私钥签、公钥验),适合多方。本工具当前支持 HS256(以及一个仅演示的 none)。
alg=none 有什么用?
none 表示不签名,仅用于查看 JWT 结构或教学,生产环境绝对禁止(可被随意伪造)。本工具提供它是为了演示,请勿在真实系统使用 none。
密钥安全吗?
签名用的密钥只在你浏览器本地用于 Web Crypto 计算,不会上传或保存。但仍建议别用生产真实密钥在公网工具上操作,演示请用测试密钥。