Paste a JWT to decode

What is a JWT?

A JSON Web Token (JWT, defined in RFC 7519) is a compact, URL-safe string that carries a set of claims as JSON. It consists of three segments separated by dots: a header describing the token, a payload of claims, and a signature that authenticates the first two segments. Each segment is independently base64url-encoded.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9  ← header
.eyJzdWIiOiIxMjMiLCJleHAiOjE5MDB9    ← payload
.zg-3I8VWp1WqRwbqgnYzG0Mu5BMC...     ← signature

How decoding works

This tool splits the token at the dots, base64url-decodes the first two parts, and parses each as JSON. The signature is shown in its raw base64url form because verifying it requires the secret or public key — something a static, client-side tool can't (and shouldn't) hold.

!

Decoding ≠ verifying. A JWT's signature only proves authenticity if you verify it with the issuer's key. Anyone can read a JWT — never store secrets inside a JWT payload, and never trust an unverified token in a production system. See JWT Structure for a deeper walkthrough.

Common JWT claims

ClaimNameMeaning
issIssuerWho issued the token (URL or identifier).
subSubjectThe principal the token is about (usually a user ID).
audAudienceThe intended recipient(s) of the token.
expExpirationUnix time after which the token must be rejected.
nbfNot BeforeUnix time before which the token must be rejected.
iatIssued AtUnix time the token was issued.
jtiJWT IDUnique identifier to prevent replay.

FAQ

Is decoding a JWT safe?

Yes — JWTs are designed to be readable. The payload is encoded, not encrypted. Decoding it locally in your browser exposes nothing that wasn't already in the token. Of course, if the token is a real production credential, treat it like a password and don't paste it into untrusted tools.

Why doesn't this tool verify the signature?

Verification requires the signing key (HS256 secret, RS256/ES256 public key). A static, no-server tool cannot hold or fetch keys safely. Use your backend library (e.g. jsonwebtoken, jose) for verification.

What does the alg field mean?

It identifies the signing algorithm — typically HS256 (HMAC with SHA-256), RS256 (RSA with SHA-256), or ES256 (ECDSA with P-256 and SHA-256). The alg: none value is permitted by the spec but is dangerous and should be rejected.

Are JWTs encrypted?

Plain JWTs (JWS) are signed, not encrypted. JWE (JSON Web Encryption) is a separate spec that produces encrypted tokens with five dot-separated segments instead of three.