This tool does not verify signatures
Decode JWT headers and payloads and inspect expiry at a glance.
This tool does not verify signatures
Decode a JSON Web Token's header and payload, see exp/iat/nbf as readable local and UTC timestamps, and get an immediate flag if the token is expired or uses the insecure alg:none. This tool never checks a signature — it decodes, it does not verify.
A JSON Web Token is three Base64URL-encoded segments joined by periods: a header, a payload, and a signature. This tool splits the token on those periods, decodes the header and payload segments back to JSON, and renders them — that's decoding, and it's all that happens here.
Verifying a JWT is a different operation entirely: it means re-computing (or checking) the signature against a secret or public key to confirm the token wasn't tampered with and was actually issued by who it claims. This tool intentionally does not do that, because doing it safely would require you to paste a secret key into a web page — which you should never do, on this site or any other. If you need real verification, do it server-side with a proper JWT library and your actual signing key.
The exp, iat, and nbf claims are Unix timestamps (seconds since epoch) by the JWT spec, so we convert them to both your local timezone and UTC to make it obvious whether a token is expired without you doing the math yourself. Tokens whose header advertises alg: "none" are flagged in red — that algorithm means "no signature at all," and a handful of real-world JWT libraries have historically had vulnerabilities around trusting it.