JWT Decoder
Splits a token into parts and explains every field in plain words: dates instead of numbers, expiry in words, signature verified with your key. All in the browser.
The token payload is not encrypted — it is plain Base64. Anyone who gets the token can read it. The signature protects against tampering, not against reading.
You can paste it with the word Bearer — we strip it ourselves. The token is parsed right in your browser and never reaches our server.
What to check
Signature verification
algorithm: —The key is never sent anywhere: the signature is checked with the browser's built-in crypto. Without a key, the decoding above still works; the signature is simply not verified.
Header
| Field | Value | What it means |
|---|
Show as JSON Collapse JSON
Payload
| Field | Value | What it means |
|---|
Show as JSON Collapse JSON
People usually ask to "decrypt" a JWT, and that word hides a dangerous mistake. There is nothing to decrypt: the payload of a JWT is plain Base64, and anyone who gets the token can read it. The signature protects against forgery, not against reading.
This leads to the most common error: people put a phone number, an email, passport data, or even another token inside, treating the payload as a secret. We search for such fields by name and warn you: a token is a place for identifiers, not for the data itself.
Short names like iss, aud, nbf, and jti get human-readable labels, and time values turn into a plain date and a phrase like "expires in 2 hours" or "expired 5 days ago".
The decoder calls out the things that most often turn out to be a hole:
alg: none— the token is not signed at all, anyone can forge it, and a server that accepts such a token lets anyone in;- no
expfield — the token lives forever, and one that was stolen once keeps working for good; - an access token valid for months — that is how refresh tokens live, not access tokens;
- the token is expired or not valid yet.
The decoder shows what is written in the token, but it does not tell you whether the token is genuine. Enter a secret for HS256 or a public key for RS256 and ES256, and we will verify the signature. The answer is unambiguous: the signature matches or it does not. Without a key the decoding still works.
About the safety of the decoding itself
A token is a live pass: whoever holds it gets in under your name. And one general rule worth keeping: if a working token has passed through any online service, it is safer to treat it as compromised and issue a new one.
Rate this tool
Help us get better
Tell us what was missing.
Other tools
JSON Formatter
Format and repair JSON in the browser, flagging duplicate keys and long numbers
Regex Tester
Regex testing with a plain-language breakdown and hang protection
CSV to JSON
A table to JSON with honest types and a reverse check
JSON to CSV
JSON to a table for Excel, with verification and formula protection
SQL Formatter
A readable query layout, verified against the source, with risky spots flagged
XML Formatter
Readable XML, errors explained with a hint, verified against the source
XML Validator
Markup, XSD schema, sitemap, YML and RSS rules, with the path to each error
String Escape / Unescape
Nine modes in both directions, catches double escaping