JWT Decoder & Verifier
Decode, humanise and verify JSON Web Tokens — all client-side
JWT
Frequently Asked Questions
Everything you need to know about this tool
No. Every step — base64url decode, JSON parse, humanising claims, signature verification — runs inside your browser with the Web Crypto API. We also never attach the token to any analytics event.
HS256, HS384 and HS512 with a shared secret, and RS256, RS384 and RS512 with a PEM-encoded RSA public key. ES* and PS* tokens can still be decoded, but verification is not yet available.
We display the decoded content and mark it explicitly as Unsigned. Production servers should reject such tokens on principle — our status banner says so.
Clocks differ. We compare your local clock to the exp / nbf claims. A 30–60 second skew between the client and the issuer is normal; production validators usually allow it. You can ignore "Expires soon" warnings within that window.
Invalid means the signature bytes did not match. Key error means the key material itself was unusable — wrong PEM format, missing BEGIN/END markers, or a RSA public key supplied for an HMAC token. Check the key, not the signature.
It is a locally-signed HS256 demo with the secret "doctools" baked into the page source so you can try signature verification without hunting for a token. It is not a production key from anyone.