JWT Decoder
Decode a JSON Web Token to see its header, payload and expiry, check its signature with a secret or public key (RS256, ES256), and sign a changed one.
Runs in your browser. Nothing you enter is uploaded.
How to use
This tool decodes JSON Web Tokens (JWTs), the signed tokens many websites and APIs use to prove who you are.
- Paste a token into JSON Web Token. You can paste it with a
Bearerprefix or across several lines; the extra parts are removed. Press Load an example to try it with a sample token. - The token is shown again with its three parts in colour: the header, the payload and the signature.
- Header and Payload show the decoded JSON, ready to copy. Large numbers stay exact.
- Claims explains the standard fields.
expshows when the token expires and whether it already has.nbfshows when it starts being valid, andiatwhen it was issued. Issuer, subject, audience and token ID are listed too. - Anything unusual appears under Check this. That includes unsigned tokens (
alg: none), missing signatures and dates in the future.
To check the signature, use Verify the signature. For HS256, HS384 and HS512, enter the shared secret, and change Secret format if it's stored as Base64. For RS, PS, ES and EdDSA tokens, paste the issuer's public key: PEM, a certificate, a JWK or a whole JWKS. The result says whether the token was really signed with it.
Edit and sign with a secret makes a new token from a changed payload, for testing your own app.
Decoding is not the same as trusting. Anyone can read a JWT, because the payload is only encoded, not encrypted. Only a matching signature shows that it hasn't been changed.
Tokens often grant access to accounts, so treat them like passwords. This page decodes and checks them in your browser. The token and secret are never sent anywhere, and the secret is never saved.
Frequently asked questions
Is it safe to paste my JWT here?
The token is decoded and checked in your browser with JavaScript, and nothing is sent to a server. Even so, treat live tokens like passwords and avoid sharing screenshots of them.
Can anyone read the contents of a JWT?
Yes. The header and payload are only base64url encoded, so anyone with the token can read them. Never put secrets in a JWT payload. The signature stops changes, not reading.
How do I check an RS256 or ES256 token?
Paste the issuer's public key under Verify the signature. Most issuers publish their keys as a JWKS, at an address ending in /.well-known/jwks.json. Open it, copy all of it and paste it here. The tool picks the key by the token's "kid".
Related tools
- Base64 encoder Encode text or files to Base64 and decode Base64 back to text or a file.
- JSON formatter Format, validate and minify JSON in your browser, see it as a tree with paths, and fix JavaScript-style JSON.
- Hash generator Get CRC32, MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files, make HMACs, and check a download against its checksum or a SHA256SUMS file.
More encoding tools
- URL encoder Percent-encode or decode URLs and query strings in your browser.