JWT 校验
用密钥、公钥、证书或 JWK 校验 JWT 签名,并可检查过期与生效时间;拒绝未签名的令牌,以及以公钥充当 HMAC 密钥的令牌。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整预期算法、HMAC 密钥格式、检查过期与生效时间 等
开始处理
在本机浏览器中处理,可随时取消
工具介绍
校验 JWT(JSON Web Token)是否由预期的密钥签名、是否已经过期。接口拒绝令牌时,可以用它判断问题出在签名、密钥还是有效期;在信任身份服务商签发的令牌之前,也可以先用它确认令牌真实可信。
支持用共享密钥、PEM 公钥或证书、JWK 校验 HS、RS、PS、ES、EdDSA 系列令牌。未签名的令牌(alg 为 none)以及用公钥充当 HMAC 密钥的令牌一律拒绝。校验在浏览器中完成,令牌和密钥不上传,密钥也不随工作流保存。
使用步骤
- 把令牌粘贴到“JWT”框,带不带“Bearer”前缀都可以;在“密钥(不随工作流保存)”中填入密钥或公钥。点击“使用示例”会载入 jwt.io 的示例令牌及其密钥。
- “预期算法”可以保持“按令牌头部”,也可以选择服务器要求的算法;校验 HS 令牌时,再设置“HMAC 密钥格式”。
- 保持勾选“检查过期与生效时间”;双方时钟有偏差时,可以设置几秒的“时钟容差”。
- 点击“运行”。校验通过时得到 verified.json,其中包含头部、载荷和可读的时间;不通过时会提示失败原因。
格式与限制
- 输入
- 文本
- 输出
- JSON
- 大小上限
- 1 MB
- 可调设置
- 预期算法;HMAC 密钥格式(文本、十六进制、Base64);检查过期与生效时间;时钟容差
- 隐私
- 文本与密钥只在当前浏览器会话中处理,不上传;密钥作为输入提供,不会随工作流或配方保存。
- 费用
- 免费,无需注册
常见问题
为什么要指定预期算法?
选“按令牌头部”时,工具采用令牌自己声明的 alg。指定服务器实际使用的算法后,alg 不同的令牌都会校验失败,与严格的服务端行为一致。
可以使用哪些密钥?
HS 令牌需要共享密钥(文本、十六进制或 Base64),或 oct 类型的 JWK。其他算法可以用 PEM 公钥、证书、单个 JWK,或者 RSA 私钥(使用其中的公钥部分)。手上是 JWKS 时,请从 keys 列表中取出与令牌 kid 对应的那一个密钥对象。
为什么提示签名有效但令牌已过期?
签名是对的,但按你设备的当前时间,exp 已经过去,或者 nbf 还没到。可以设置“时钟容差”,或者取消勾选“检查过期与生效时间”,只校验签名。
会检查签发者或受众吗?
不会。这里只检查签名以及 exp、nbf;iss、aud 等声明会显示在载荷中,需要你自己对照。
提示签名与密钥不匹配怎么办?
说明这把密钥不是签发时用的,或者令牌被改动过。校验 HS 令牌时还要检查“HMAC 密钥格式”:本该按 Base64 解码的密钥如果按文本读取,得到的是另一把密钥。
相关工具
JWT 签发
以 HS、RS、PS、ES 或 EdDSA 算法将 JSON 载荷签发为 JWT,可添加签发与过期时间;密钥单独输入,不随工作流保存。
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 加密、解密文本;密钥作为单独输入,不随工作流保存。