What is a JWT?
A JSON Web Token (JWT) is a compact, URL-safe string that carries claims about a subject between parties. It is built from three base64url-encoded sections — header, payload, and signature — joined by dots. JWTs are widely used for authentication and authorization in API integrations, single sign-on, and mobile apps.
Is it safe to paste a JWT into this decoder?
Decoding is entirely safe: a JWT payload is base64url-encoded plain text, not encrypted, so it can be read by anyone who holds the token. No token you paste here is sent to a server — everything runs locally in your browser. That said, a JWT may contain sensitive data, so treat it as confidential, the same way you would an access token.
Does this tool verify the JWT signature?
No. Signature verification requires the issuer's signing key, which lives on the server and is never sent to the browser. This decoder shows you the signature but does not validate it. A decoded token should be treated as untrusted until verified by the issuing service.
What does the JWT signature actually prove?
The signature proves the header and payload were signed by whoever holds the matching key. HMAC algorithms (HS256/384/512) use a shared secret held by issuer and verifier. Asymmetric algorithms (RS, ES, PS) use a private key to sign and a public key to verify. A valid signature tells verifiers the token was not tampered with after signing.
What is the difference between HS256 and RS256?
HS256 is a symmetric HMAC algorithm — issuer and verifier share a secret key. It is fast but the secret must be distributed to every verifier. RS256 is asymmetric RSA — the private key signs and the public key verifies. Anyone can verify an RS256 token using the public key, while only the issuer can create one.
What does 'exp' mean on a JWT?
exp (expiration time) is a Unix timestamp in seconds after which the token must not be accepted by a verifier. It is the primary clock for token lifecycle: short expirations reduce the window in which a stolen token can be reused, which is why most providers issue access tokens with expirations measured in minutes and refresh the token via a refresh token.
Why does my JWT payload say iat but not show a readable date?
iat is stored as a Unix timestamp — whole seconds since January 1, 1970 UTC — which is compact but not human-friendly. This decoder converts it for you into UTC, your local timezone, and a relative phrase, so you can tell at a glance when the token was issued.
What does the 'none' algorithm mean?
'none' means the JWT has no cryptographic signature. Anybody who can read the token can also modify its payload undetectably. It is only appropriate in contexts where integrity is guaranteed some other way, and production servers should generally reject 'none' tokens outright.
What are the standard JWT claims?
The registered claims are sub (subject), iss (issuer), aud (audience), exp (expiration), nbf (not before), iat (issued at), and jti (JWT ID). OpenID Connect adds azp, nonce, at_hash, auth_time, acr, and amr. This tool recognizes these and shows you what each one means.
Are JWTs encrypted?
No. A standard JWT (JWS) payload is base64url-encoded, not encrypted — anyone can decode it. There is a separate format, JWE (JSON Web Encryption), that encrypts the content, but it is far less common. Never put secrets or personal data in a plain JWT payload.
Can I use a JWT to make API calls?
Yes — that is the most common use. Send the token in the Authorization header as a Bearer token: 'Authorization: Bearer <token>'. The API verifies the signature, checks iss and aud, and enforces exp before honoring the claims. Browsers can store and attach these tokens, though the protection depends on where the token is kept.
Why do some tokens have a 'kid' header claim?
kid is a key identifier. Issuers rotate signing keys over time, and kid tells a verifier which public key from its key set to use when checking this particular token. Without kid, a verifier would have to try every key it knows.
What happens when a token is missing an exp claim?
Without exp, the token has no expiration and remains usable indefinitely if stolen. The security analysis here flags missing exp as a warning. Most production systems require exp, and if you are building an issuer, always set it.
Is the JWT data sent to any server by this tool?
No. The decoder runs entirely in your browser. The token you paste never leaves your machine. You can verify this yourself: disconnect your network and paste a token — the tool still works. This is the same privacy guarantee as the other TechFixGen security tools.