JWT Decode / VerifyLocal processing · 0 network requests

Paste a JWT to decode its parts and inspect expiry. Verify HS256 and RS256 signatures locally without uploading keys or tokens.

Ctrl+↵ Run · auto-process on paste
INPUT · JWT TOKEN(eyJhbGciOi… 开头)
Waiting for input

What is a JWT and how do I decode it?

本工具处理常见的三段式签名 JWT(JWS):Header(声明算法).Payload(实际数据).Signature(签名),用 Base64Url 编码并以点号分隔。本工具解码前两段并检查签名。这种 JWT 只是编码不是加密——任何人都能读出 Payload,敏感信息不应放在里面。

Will the token be uploaded?

不会。解码完全在浏览器本地完成;验签使用浏览器内置的 Web Crypto API,密钥同样不离开你的电脑。建议用脱敏或测试 Token 排查问题,避免在共享设备上暴露有效凭据。

Why can signature verification fail?

① 密钥不对;② Token 被篡改;③ 算法不匹配(如 token 是 RS256 却用了 HS256 密钥)。另外「alg: none」的 Token 是危险信号,任何实现都不应接受它。

What do exp, iat and nbf mean?

exp=过期时间,iat=签发时间,nbf=生效时间,均为 Unix 时间戳。本工具会自动换算成可读时间,并标注是否已过期。

JWT 解码、验签和授权有什么区别?

解码只把 Base64URL 内容还原为 Header 与 Payload,任何人都能执行;验签用于判断内容是否被修改以及签名密钥是否匹配;是否允许访问仍应由服务端结合用户状态、受众和权限规则决定。

排查 JWT 的顺序

  1. 查看 alg 与 typ,拒绝未预期的算法。
  2. 检查 exp、nbf、iat 的 Unix 时间戳。
  3. 核对 iss(签发者)和 aud(受众)。
  4. 使用正确的 HS256 密钥或 RS256 公钥验签;不要把解码成功当成签名有效。

字段定义参考 RFC 7519,安全实践参考 RFC 8725。请优先使用测试或脱敏 Token。

JWT 解码示例

eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjAsImlhdCI6MCwibmJmIjowfQ.AA

这个测试 Token 的签名无效,只用于查看 exp、iat、nbf。解码不等于验签,验签不等于授权。

Read the full guide

Updated: · Local processing & limitations

用演示 Token 对比正确与错误密钥

  1. 点击“示例”,生成当前时间的 HS256 演示 Token。
  2. 输入演示密钥 chenshou-demo 并验证,结果为签名验证通过。
  3. 改填 wrong-demo 再验证,结果为签名不匹配。

两次都可解码,但只有正确密钥验签通过。此密钥公开且仅用于演示,不可用于业务系统。验签通过不代表拥有访问权限。

JWT 解码与验签教程