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 与密钥数据不出设备。
使用方法
- 解析:粘贴完整 JWT 或带 Bearer 前缀的 Token,点「解析」查看 header 与 payload。
- 签名:选算法(HS* 填共享密钥,RS* 填私钥 PEM),编辑 payload,可一键填入 iat / exp,点「生成 JWT」。
- 验签:粘贴令牌与密钥/公钥,点「验签」查看签名是否有效以及 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 规范自动拆分三段。