JWT工具

FAQ

什么是 JWT?

JWT(JSON Web Token)是一种紧凑、URL 安全的令牌格式,广泛用于身份认证、授权以及系统之间安全传输数据。 JWT 可以通过数字签名来验证内容完整性,并帮助检测令牌是否被篡改。

JWT 的三部分分别是什么?

JWT 由三个使用点(.)分隔的 Base64URL 编码部分组成。

  • Header(头部):包含令牌类型和签名算法等元数据。
  • Payload(载荷):包含用户信息和其他声明(Claims)。
  • Signature(签名):用于验证令牌内容是否被修改。

支持哪些签名算法?

当前工具支持以下 JWT 签名算法:

  • HS256、HS384、HS512(HMAC)
  • RS256、RS384、RS512(RSA)

对于 HMAC 算法,请输入签名时使用的 Secret Key;对于 RSA 算法,请输入 PEM 格式的公钥。

iat、nbf 和 exp 分别是什么意思?

JWT 中常见的时间相关字段包括:

  • iat(Issued At):令牌签发时间。
  • nbf(Not Before):令牌生效时间。
  • exp(Expiration Time):令牌过期时间。

本工具会自动将这些 Unix 时间戳转换为可读时间,并检测令牌是否已过期或尚未生效。

不输入密钥也能解码 JWT 吗?

可以。

  • JWT 的 Header 和 Payload 本质上只是 Base64URL 编码的数据。
  • 解码时不需要 Secret Key 或公钥。
  • 只有在验证签名时才需要提供对应的验证密钥。

如何验证 JWT 签名?

验证签名的步骤如下:

  • 将 JWT 粘贴到输入框中。
  • 输入对应的验证密钥。
  • 点击“解码&验签”。

HS256、HS384、HS512 需要输入签名时使用的 Secret Key;RS256、RS384、RS512 需要输入 PEM 格式的 RSA 公钥。

“签名验证失败”是什么意思?

出现该提示通常有以下几种原因:

  • 输入的验证密钥不正确。
  • JWT 的 Header 或 Payload 被修改过。
  • JWT 实际使用的签名算法与 Header 中声明的不一致。
  • 提供的 RSA 公钥与签发令牌时使用的私钥不匹配。

JWT 会上传到服务器吗?

不会。

  • JWT 解码和签名验证均在浏览器本地完成。
  • JWT 内容和验证密钥不会上传到服务器。
  • 敏感令牌、密钥和认证数据始终保留在你的设备上。