JWT 调试器 / 解码器

粘贴任意 JWT 即可解码它用点分隔的三段——base64url 的头部、载荷与签名会以美化打印的 JSON 呈现,注册声明(exp、iat、nbf 等)会换算成本地时间。随后可用 WebCrypto API 验证签名:使用密钥的 HMAC(HS256/384/512),或使用 PEM 公钥的 RSA/ECDSA(RS256/384/512、ES256/384/512)。上方有一个 HS256 示例令牌可一键试用。全部在本地运行——令牌、密钥与公钥都不会被发送到任何地方。
JWT 令牌 格式:header.payload.signature(三段 base64url,以点分隔)
警告:这个令牌声明了 alg:none,即它没有签名。真实服务必须拒绝未签名的令牌。
声明值解读
共享密钥(Secret)
当前上下文中 crypto.subtle 不可用,签名验证已被禁用。请通过 https: 或从本地文件打开本页。
如何解读结果:头部通常带有 alg(签名算法)与 typ。换算成本地时间显示的注册声明有 iat(签发时间)、nbf(生效时间)与 exp(过期时间)——红色徽章表示令牌已过期,黄色表示 24 小时内过期。签名验证会计算签发方同样的 MAC,或检查你粘贴的 RSA/ECDSA 公钥,然后把令牌标记为 VALID 或 INVALID。只有浏览器 WebCrypto 层实现的算法才能验证;其他算法会报告为不支持,而不是猜测。

常见注册声明:sub(主题)是令牌所涉及的用户或实体——在你的样例中它只是一个数字 ID,但服务通常会在这里放邮箱、用户名或 UUID。iss 指明签发者,aud 指明预期受众,jti 是防止重放的唯一令牌 ID。这些声明不加密;拿到令牌的人都能读取,因此绝不要把密码或密钥放进 JWT 载荷。

隐私:解码与验证完全在本页通过 WebCrypto API 进行——令牌、你的密钥和任何公钥都不会被传输。对于 alg:none 令牌,页面会给出明确警告:真正的 API 永远不应接受未签名的令牌。