JWT 签发
以 HS、RS、PS、ES 或 EdDSA 算法将 JSON 载荷签发为 JWT,可添加签发与过期时间;密钥单独输入,不随工作流保存。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整算法、HMAC 密钥格式、添加签发时间 等
开始处理
在本机浏览器中处理,可随时取消
工具介绍
把 JSON 载荷签发为 JWT(JSON Web Token)。开发接口时,可以用它生成测试令牌,重现后端应当接受的令牌,或者在写代码之前先试一试角色、过期时间等声明。
HS256、HS384、HS512 使用共享密钥签名,RS、PS、ES、EdDSA 系列使用 PEM 私钥或 JWK 签名,还可以自动添加签发时间(iat)和过期时间(exp)。签发在浏览器中完成,载荷和密钥不上传,密钥也不随工作流保存。
使用步骤
- 在“载荷(JSON)”中以 JSON 对象填写声明,在“密钥(不随工作流保存)”中填入密钥或私钥。点击“使用示例”会载入示例载荷和密钥 your-256-bit-secret。
- 选择“算法”(默认 HS256);使用 HS 算法时,再设置“HMAC 密钥格式”。
- 保持勾选“添加签发时间”以写入 iat,并在“有效期”中填写秒数:3600 为 1 小时,0 表示不添加过期时间。
- 点击“运行”,预览令牌并下载为 token.txt。
格式与限制
- 输入
- 文本
- 输出
- 纯文本
- 大小上限
- 1 MB
- 可调设置
- 算法;HMAC 密钥格式(文本、十六进制、Base64);添加签发时间;有效期
- 隐私
- 文本与密钥只在当前浏览器会话中处理,不上传;密钥作为输入提供,不会随工作流或配方保存。
- 费用
- 免费,无需注册
常见问题
不同算法需要什么密钥?
HS 算法使用共享密钥,可写成文本、十六进制或 Base64,也可以是 oct 类型的 JWK,PEM 密钥会被拒绝。RS、PS、ES、EdDSA 需要私钥:PKCS #8 或传统 RSA/EC 格式的 PEM,或者私钥 JWK。暂不支持带密码的私钥。
载荷里已经有 iat 或 exp 会怎样?
勾选“添加签发时间”时,iat 会被替换为当前时间;“有效期”大于 0 时,exp 会被替换为当前时间加上这些秒数。想保留自己的值,请取消勾选“添加签发时间”,并把“有效期”设为 0。
令牌头部包含哪些字段?
头部只有 alg 和 typ(值为 JWT),这里无法添加 kid 等其他头部字段。
为什么提示密钥不能用?
RS、PS 算法要求 RSA 密钥至少 2048 位,密钥类型也必须与算法对应,例如 ES256 需要 P-256 密钥。可以用“密钥对生成”工具生成合适的密钥。
签发后怎样检查令牌?
把令牌和相同的密钥(或对应的公钥)粘贴到“JWT 校验”中验证签名,或者用“JWT 解码”查看载荷。iat 和 exp 按你设备的当前时间计算。
相关工具
JWT 校验
用密钥、公钥、证书或 JWK 校验 JWT 签名,并可检查过期与生效时间;拒绝未签名的令牌,以及以公钥充当 HMAC 密钥的令牌。
JWT 解码
查看 JWT 的头部、载荷以及签发、生效、过期时间,不校验签名。
RSA / SM2 加解密与签名
用 RSA 密钥(PEM:PKCS#1、PKCS#8、公钥或证书)或 SM2 密钥(十六进制或 PEM)加密、解密、签名或验签;密钥只在浏览器中使用,不随工作流保存。
HMAC 消息认证码
使用 MD5、SHA-1、SHA-2、SHA-3 或 SM3 以密钥计算文本的 HMAC;密钥单独输入,不随工作流保存。
凯撒密码与摩斯电码
凯撒密码(自定义位移)、ROT13、ROT47、Atbash 的加密与解密,以及国际摩斯电码的编码与解码。
对称加密与解密(AES / SM4 / DES)
使用 AES(CBC、ECB、CTR、CFB、OFB、GCM)、SM4、DES、3DES、Blowfish、RC2、RC5、RC6、RC4、Rabbit 或 XOR 加密、解密文本;密钥作为单独输入,不随工作流保存。