← Takora

JWT Decoder

Decode JWT Header and Payload Instantly

JWT tokens appear in every authorization header, but the three dot-separated segments look like random noise until you decode them. The JWT Decoder splits a token into its header and payload, base64url-decodes each part, and pretty-prints the JSON so you can see the algorithm, the claims, and the expiry at a glance. Debugging a 401 response, checking which claims your identity provider issued, or explaining a token to a colleague becomes a ten-second task. One warning matters more than the rest: this tool never verifies the signature. Decoding only reads the visible parts of the token; proving authenticity requires the issuer's secret or public key, which this page never asks for.

How to Decode a JWT

  1. Copy the full token, including all three segments and their dots, from your request headers or application logs.
  2. Paste it into the input box. The decoder splits on the dots and decodes the first two segments for display.
  3. Read the header, which names the signing algorithm such as HS256 or RS256.
  4. Read the payload, which holds the claims like sub, exp, and iat.
  5. Check the exp claim against the current time to see whether the token is already expired.
  6. Copy the decoded output into your ticket, bug report, or integration notes.

Real Example: Reading a Token's Claims

Take the classic example token issued with the key your-256-bit-secret. The decoder renders the first two segments as readable JSON and leaves the signature segment untouched, because inspecting it would require the secret key.

SegmentRaw valueDecoded
HeadereyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9{"alg":"HS256","typ":"JWT"}
PayloadeyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ{"sub":"1234567890","name":"John Doe","iat":1516239022}
SignatureSflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cNot decoded — verifying it requires the secret key

Pasted together, the full token is eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c. The payload here carries an email-less identity: sub is the subject identifier, and iat is the issuance time as Unix seconds. Because the header and payload are only encoded, not encrypted, this same inspection works for any token — an access token from an OAuth provider, a session token from your own login service, or a token pasted into a bug report. That is exactly when a decoder earns its keep: you need to know what a token claims and when it expires, without standing up a verification stack to find out.

What the Decoder Does Not Do

Working Safely with JWTs

JWT Decoder FAQ

Does this tool verify the JWT signature?

No. It only decodes the header and payload. Verifying a signature requires the issuer's secret key or public key, which is never part of the token itself.

Why does the token look like gibberish before decoding?

The header and payload are base64url-encoded JSON. The decoder reverses that encoding and pretty-prints the JSON so the claims become readable.

What is the difference between HS256 and RS256?

HS256 is symmetric: the same shared secret signs and verifies. RS256 is asymmetric: a private key signs and a public key verifies, which is why RS256 works with public verifiers.

Why are there three parts separated by dots?

That is the standard JWT structure: header.payload.signature. The first two are readable by anyone; the third proves the first two were signed by the key holder.

Can I edit a claim and get a valid token?

You can produce a modified token, and decoders will display it, but verifiers will reject it because the signature no longer matches the altered payload.

Is decoding a JWT the same as verifying it?

No. Decoding is a public, mechanical step that anyone can perform. Verification is the cryptographic step that proves the token was issued and not modified.

What does the exp claim mean?

It is the expiry timestamp in Unix seconds. A token is invalid once the current time passes that value, and servers must reject expired tokens.

Why does my token fail to decode?

Usually a formatting issue: missing dots, whitespace or quotes around the token, or URL-escaped characters. Paste the token exactly as it appears in the header.

Is it safe to share a decoded JWT?

Treat it like any sensitive data. Claims often contain user identifiers, emails, or roles, and the token itself may still be valid until it expires.

Where does the secret key live in a JWT system?

Only on the issuing and validating servers. The token carries the header, payload, and signature — never the key itself.