语言
简体中文

JWT 调试器

解码 JWT 并验证 HMAC 签名与时效声明

JWT 输入
在此粘贴 JWT(header.payload.signature)...

togotools.top 技术参考

技术参考

在浏览器本地解码 JWT 的 Header 和 Payload,检查 exp、nbf、iat 等 NumericDate 声明,并用共享密钥验证 HS256、HS384 或 HS512 签名。解码不等于信任,签名验证必须使用可信密钥。

能检查什么

  • 解析 JWT 的三段结构:Header、Payload 和签名。
  • 把 exp、nbf、iat 转换为可读时间,并标记过期或尚未生效状态。
  • 使用输入的共享密钥执行 HS256、HS384、HS512 HMAC 验签。
  • 所有 token 和密钥只在当前浏览器处理;页面不会向 token 的 issuer 发请求。

示例:检查过期声明

exp 是 Unix 时间戳(秒),表示 token 失效时间;nbf 表示生效时间。实际认证还受到服务端时钟偏差、撤销策略和权限检查影响。

jwt payload
{
  "sub": "user-123",
  "iat": 1767225600,
  "exp": 1767312000
}

安全边界

JWT 的 Payload 通常只是 Base64URL 编码,不是加密内容。任何拿到 token 的人都可以读取其中的非敏感字段,因此不要把密码、私钥或不必要的个人数据放入 Payload。

  • 只有使用正确的算法、可信密钥和服务端签名规则验证成功,签名结果才有意义。
  • 不要仅根据 alg 字段或解码结果判断 token 可信。
  • 在公共电脑或共享浏览器中处理真实生产 token 后,应清空输入并关闭页面。

常见问题

只解码 JWT 能证明它有效吗?

不能。解码只读取 Header 和 Payload,不能证明签名正确、token 未被撤销或用户仍有权限。

为什么 exp 看起来是很大的数字?

JWT NumericDate 使用 Unix 时间戳,通常是从 1970 年开始计算的秒数,不是毫秒。