JWS

JWT 生成器

生成 HS256 测试 JWT 或无签名 none Token

JWT 与令牌
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日
选项模式
输入

先填 payload 和 secret,直接生成 JWT;Header 固定,支持 HS256 与无签名 none;高级模式提供场景样例。

输出
生成结果会显示在这里
🔒 本地生成 · 不保存密钥与 Payload 草稿
页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

将 JSON 对象生成为三段式 JWT,支持 HS256 和无签名 none。Header 固定为所选 alg 与 typ: JWT;Secret 按 UTF-8 文本使用,不自动解码 Base64 或十六进制。工具不检查声明是否符合服务端策略。输入与结果仅在内存中保留,打开页面时会删除旧版 Secret/Payload 草稿。请用公开测试样例排障,生产凭据应由应用受控的签发系统生成。

生产可用片段

经 Node.js 独立核对的 HS256 固定样例

text

算法:HS256
Secret(UTF-8 文本,公开测试密钥):toolskit-public-test-key-32-bytes!
Payload: {"sub":"demo"}
预期 Token:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkZW1vIn0.QbFoHZpyPTQMOX7-Zw5xSs1N_BXJdWPM5ZMhN9RrUwI
工具不会自动添加 exp;不能用该公开密钥签发真实凭据。

常见问题

可以编辑 Header,或使用 HS384、HS512、RSA 吗?

不可以。目前只有 HS256 和 none,Header 固定为 alg 与 typ: JWT,没有自定义 kid 或 Header 编辑器。将 kid 放进 Payload 只会增加一个声明,不会成为用于选取密钥的 Header 字段。

HS256 的 Secret 如何解释?

按原始 UTF-8 文本使用;通过非空白检查后,首尾空格也属于密钥字节。看起来像 Base64 或十六进制的字符串不会自动解码,验签端必须使用相同字节。公开示例密钥仅供测试;生产 HS256 应使用至少 256 位的高熵密钥,并由应用保护。

Payload 接受哪些输入?

仅接受 JSON 对象,拒绝 null、数组、数字等其他根类型。对象解析后会紧凑序列化再签名。exp、nbf、iat、iss、aud 不会由工具自动生成、校验或纠正。

none 会生成什么?

生成 alg: none、第三段为空的无签名 Token,因此结果以点结尾。它仅适合检查测试格式,不能证明身份;服务端不能因为 Token 可以解码就接受无签名凭据。

签名密钥与 Payload 会保存吗?

不会上传,也不保存为浏览器草稿;打开页面时会删除旧版 localStorage 草稿。编辑输入或点击清空,会使尚未完成的生成任务失效,并移除显示结果。

为什么生成 HS256 Token 后服务端仍然拒绝?

服务端可能要求其他算法、不同密钥字节、指定密钥 ID、不同声明或时间窗口。解码器只能查看声明,不能验签;请分别核对签名,以及接收应用对签发者、受众、时间和权限的要求。

继续浏览