JWT 生成器
生成 HS256 测试 JWT 或无签名 none Token
先填 payload 和 secret,直接生成 JWT;Header 固定,支持 HS256 与无签名 none;高级模式提供场景样例。
完整说明还包括常见问题处理、操作示例、代码片段、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、不同声明或时间窗口。解码器只能查看声明,不能验签;请分别核对签名,以及接收应用对签发者、受众、时间和权限的要求。
继续浏览