JWT(JSON Web Token)由 Header、Payload、Signature 三段组成,中间以两个点分隔,广泛用于接口鉴权、单点登录与无状态会话。这个工具把解析、生成、验证三件事放在同一页面,用三个页签切换:解析不需要密钥,生成与验证才需要 Secret 或密钥。
粘贴 Token 后自动拆分为三段:Header 与 Payload 经 Base64URL 解码并格式化为 JSON,Signature 原样保留,三段都可以单独复制。页面同时读取 alg、typ、kid 等头部字段,识别 iss、sub、aud、jti 等标准声明,并把 iat、nbf、exp 三个时间戳换算成本地时间。
根据时间声明自动判定 Token 的整体状态:有效、即将过期、已过期、尚未生效,或没有时间声明,并显示距离过期的剩余时间。这样排查登录态异常时,可以立即区分是 Token 过期、还没到生效时间,还是签名本身有问题。自定义声明可在 Payload JSON 中直接查看。
生成页签允许直接编辑 Header 与 Payload 的 JSON,提供格式化与压缩两个按钮,并可一键写入常用声明(其中 exp 默认写入当前时间加一小时)。选择算法并填入对应密钥后即可签发 Token:HMAC 系列使用 Secret,支持按 UTF-8 文本处理,也支持以 0x 开头按十六进制解析;RSA 与 EC 系列可粘贴 PEM 私钥或 JWK。JSON 格式有误时会直接提示。
共支持 12 种算法:HS256、HS384、HS512,RS256、RS384、RS512,PS256、PS384、PS512,以及 ES256、ES384、ES512。其中 HS 系列为 HMAC 签名,RS 与 PS 系列基于 RSA,ES 系列基于 ECDSA,页面会对需要安全上下文的算法加以标注。
验证需要与签名对应的公钥:RSA 使用 SPKI 或 PKCS#1 公钥 PEM 或 JWK,EC 使用 SPKI 公钥 PEM 或 JWK。验证结果逐项展示签名是否有效、是否过期、是否已生效,失败时给出具体原因。如果粘贴的是私钥,页面会提示应改用对应公钥。
RS、PS、ES 系列依赖浏览器提供的 WebCrypto 接口,该接口只在安全上下文可用,因此需要 HTTPS 环境;HS 系列不受影响,在 HTTP 下同样可以正常生成与验证。
Token、Secret、私钥与公钥全部在浏览器本地处理,没有任何服务端计算接口,输入内容不会上传服务器,也不会被保存。请注意 JWT 的 Payload 只是 Base64URL 编码而非加密,任何人拿到 Token 都能读出其中内容,不要在 Payload 中放置敏感信息。
评论 0