JWT 解析 / 签名 / 验签

我要提建议

解析 JWT,并支持 HS256/384/512 与 RS256/384/512 签名、验签,可检查 exp / nbf,全程本地 Web Crypto。

相关工具

这个工具是做什么的

JWT 由 header、payload、signature 三段 Base64URL 组成,常用于 OAuth 与无状态登录。本工具覆盖三件事:解析并格式化 header / payload,便于排查 iss、exp、sub 等声明;用 HS256/384/512(共享密钥的 HMAC)或 RS256/384/512(RSA 私钥签名)生成完整令牌;用密钥或公钥验签,并单独报告 exp 是否过期、nbf 是否尚未生效。需要澄清一个常见误解:JWT 常被说成「加密」,但签名(JWS)只保证内容没被篡改,payload 本身仍是明文可读的,真正加密载荷的是 JWE。所有运算都在本机用本地引擎完成,Token 与密钥数据不出设备。

使用方法

  1. 解析:粘贴完整 JWT 或带 Bearer 前缀的 Token,点「解析」查看 header 与 payload。
  2. 签名:选算法(HS* 填共享密钥,RS* 填私钥 PEM),编辑 payload,可一键填入 iat / exp,点「生成 JWT」。
  3. 验签:粘贴令牌与密钥/公钥,点「验签」查看签名是否有效以及 exp / nbf 状态。

常见问题

JWT 的「加密」和签名是一回事吗?
不是。常见的三段式 JWT 是 JWS(签名),只保证内容没被篡改,payload 依旧是 Base64URL 明文、任何人可读;真正加密载荷的是 JWE(五段式),用得少得多。所以不要把密码之类的敏感信息直接写进 payload。
HS 和 RS 算法怎么选?
HS256/384/512 用同一把共享密钥签名与验签,实现简单、性能好,适合只有一个服务端或客户端与服务端共享密钥的场景;RS256/384/512 用私钥签名、公钥验签,公钥可以安全分发给多方(前端、第三方)用于验签,私钥始终不外发,适合多方验证的场景。本工具还可直接粘贴私钥来验签——会自动从中推导公钥。
验签通过就说明 Token 可信吗?
验签通过只说明「内容与该密钥匹配、没有被篡改」,不代表业务上一定可信:密钥是否泄露、签发方是否可信、令牌是否被重放都要另行判断。因此本工具把 exp / nbf 单独列出,不与签名有效性混为一谈。
解析失败常见原因?
段数不是 3、某段为空、或 header/payload 不是合法 Base64URL JSON。请确认复制完整且未截断。
Token 会被上传吗?
不会。解码完全在本地进行。仍请勿在生产环境把含敏感信息的 Token 分享给他人。
和 Base64 工具有什么关系?
JWT 各段使用 Base64URL 编码。若只需解码单段,也可使用 Base64 工具;本工具按 JWT 规范自动拆分三段。