JWT解析与验签

解析JWT的Header与Payload,校验HMAC与RSA/ECDSA签名,并给出过期时间等标准声明的状态

JWT 令牌

令牌只在浏览器本地解析,不会上传。但请注意:JWT 的 payload 只做了 Base64 编码而非加密,任何拿到令牌的人都能看到其中内容,粘贴生产环境令牌前请自行评估风险。

使用要点

  • 服务端必须固定校验算法,不能直接采信 header 里的 alg,否则会被 alg 篡改(如改成 none 或把 RS256 降级为 HS256)攻击。
  • JWT 一旦签发无法主动作废,需要即时失效能力时应配合短过期时间 + 刷新令牌,或维护黑名单。
  • 不要在 payload 里放密码、身份证号等敏感数据,它对持有者完全可见。
  • exp、nbf、iat 都是以秒为单位的 Unix 时间戳,用毫秒填会导致过期判断错误。

功能介绍

JWT解析与验签把令牌的三段结构拆开展示。Header与Payload按Base64URL解码后格式化输出,标准声明(iss、sub、aud、exp、nbf、iat、jti)单独列表展示并把时间戳转换为可读时间,已过期或尚未生效的令牌会用颜色直接标出。验签支持两类算法:HS256/HS384/HS512使用crypto-js以密钥(可按UTF-8、Base64、Hex解读)计算HMAC并与签名比对;RS256/RS384/RS512、PS256/PS384/PS512、ES256/ES384/ES512使用浏览器内置的Web Crypto导入SPKI格式的PEM公钥进行验签,无需任何额外依赖,但需要在HTTPS或localhost环境下运行。若令牌的alg为none,工具会给出明确的安全警告。解析与验签全程在本地完成,令牌不会上传。

使用说明

1. 把完整的JWT(三段以点分隔)粘贴到输入框;2. 立即可以看到Header、Payload与标准声明解析结果,以及距过期时间还有多久;3. 需要验签时选择算法:HMAC系列在下方填写密钥并选择密钥编码;RS/PS/ES系列粘贴以-----BEGIN PUBLIC KEY-----开头的PEM公钥;4. 点击"验证签名",绿色表示签名有效,红色表示无效或密钥不匹配;5. 点击"示例令牌"可载入一个用固定密钥现场签发的样例;6. 请记住Payload只是Base64编码而非加密,任何人都能读取,切勿在其中放置敏感信息;7. 服务端验签时必须固定期望算法,不能采信令牌Header中的alg字段。