JWT 签名验证器

用 HMAC 密钥、PEM 公钥、X.509 证书、JWK 或 JWKS 验证 JSON Web Token 的签名,并在本地检查 exp、nbf、签发者和受众。

算法: HS256

随机字节数至少应与哈希长度相同(HS256 为 32 字节)。短密码可被离线暴力破解。

验证通过 jose 库在本地完成。只有提供密钥时令牌才算“已验证”——没有密钥,任何工具都无法证明 JWT 是真实的。

什么是 JWT 验证器?

这个工具验证 JSON Web Token 是否使用你提供的密钥签名且未被修改,以及它的时间声明此刻是否有效。它支持用于 HS256/384/512 的共享密钥,或用于 RS、PS、ES 和 EdDSA 令牌的 PEM 公钥、X.509 证书、JWK 或 JWKS,并可选地检查签发者、受众和时钟容差。

如何使用 JWT 验证器

  1. 粘贴令牌;其头部中的算法会显示出来。
  2. 输入密钥(HS*)或公钥、证书、JWK 或 JWKS。
  3. 可选地设置时钟容差、期望的签发者和期望的受众,或勾选“仅检查签名”。
  4. 点击“验证”并查看结果;验证成功时会显示载荷和时间声明。

示例

输入
The jwt.io sample token (HS256) with secret your-256-bit-secret
输出
✓ Signature verified with HS256 and the time claims are valid.

如果密钥填成 wrong-secret,结果为:签名验证失败。

何时使用 JWT 验证器

适合确认令牌由预期的服务器签发、调试“签名无效”错误或测试密钥轮换。没有正确的密钥,任何工具都无法验证 JWT。请避免把生产环境的密钥粘贴到任何网站;最好使用公钥,它可以放心分享。

JWT 验证器 的工作原理

验证使用 jose 库和 Web Crypto 在本地运行。只允许令牌头部中指明的算法,并且始终拒绝 alg 为 "none" 的令牌。HMAC 令牌用密钥的 UTF-8(或 Base64 解码后)字节验证;非对称令牌则用导入的 SPKI、X.509、JWK 或本地 JWKS(按 kid 匹配)验证。签名通过后,会把 exp 和 nbf 与你设备的时钟(加上容差)比较,如果你填写了 iss/aud 也会比较它们。每种失败都会给出具体原因。

常见用例

  • 密钥轮换之后,检查令牌是用当前密钥还是旧密钥签名的。
  • 排查网关拒绝令牌的原因(过期、受众错误还是签名无效)。
  • 用提供商的 JWKS 验证 OpenID Connect 的 ID 令牌。
  • 确认令牌没有被篡改。

安全提示

验证在你的浏览器中进行;密钥和令牌不会被上传。公钥可以放心分享,密钥则不能。

常见问题

没有密钥能验证令牌吗?

不能。签名只能用密钥(HMAC)或签发者的公钥来检查。不用密钥的解码什么也证明不了。

在哪里获取公钥?

OpenID Connect 提供商会在 /.well-known/openid-configuration 中列出的 jwks_uri 发布 JWKS。把那段 JSON 粘贴到这里即可。

为什么签名有效却仍然失败?

令牌可能已过期、尚未生效(nbf),或签发者、受众与你填写的不同。提示信息会告诉你是哪项检查失败。

推荐的下一步

探索更多分类