What a JWT contains
A JSON Web Token is three Base64URL-encoded parts separated by dots: a header (the signing algorithm and key ID), a payload of claims (who the token is for, when it expires, what it allows) and a signature. The header and payload are only encoded, not encrypted — anyone holding the token can read them, which is exactly what this page does. Don't put secrets in a JWT payload.
Timestamps such as exp (expiry), iat (issued at) and nbf (not before) are shown in your local time with how long ago or
how far ahead they are, and the status tells you at a glance whether the token has expired.
Decoding is not verifying
Reading a token proves nothing about who issued it: anyone can create a token with any payload. Only a valid signature shows it was issued by someone holding the key. To check one here:
- HS256/384/512 — enter the shared secret (tick Base64-encoded if your secret is stored that way, as with some Auth0 and Azure setups).
- RS, PS, ES and EdDSA — paste the issuer's public key as PEM (
-----BEGIN PUBLIC KEY-----), a JWK, or a whole JWKS document; the key matching the token'skidis picked automatically. Identity providers publish their keys at a JWKS URL, usually listed in/.well-known/openid-configuration.
A server must also check exp, nbf, iss and aud and reject alg: none; a correct signature alone isn't enough.
Is my data uploaded?
No. Decoding and verification run in your browser, so nothing you add is sent to gratistools.be. See the privacy page for details.