Mini Tools

JWT Decoder & Verifier

Decode a JSON Web Token (JWT) into Header & Payload and (optionally) verify its signature. Runs locally in your browser.

Tip: payload is not encrypted in JWT. Do not paste secrets into payloads. For signature check, use HS256 secret or RS256 public key.

Input token

Decoded

Header

            
Payload

            
Signature (raw, Base64url)

        

Verify signature

Algorithm will be detected from header (alg). Supported: HS256, RS256.

What is a JWT?

A JSON Web Token (JWT, RFC 7519) is a compact token used for authentication and passing claims between services. It has three Base64url-encoded parts separated by dots: header.payload.signature.

  • Header โ€” token type and signing algorithm, e.g. {"alg":"HS256","typ":"JWT"}
  • Payload โ€” the claims: who the user is, when the token expires, etc.
  • Signature โ€” proves the token was issued by someone holding the key and has not been modified.

Standard claims

ClaimNameMeaning
issIssuerWho created the token
subSubjectWhom the token is about (usually a user ID)
audAudienceWho the token is intended for
expExpirationUnix time after which the token is invalid
nbfNot beforeUnix time before which the token is invalid
iatIssued atUnix time when the token was created
jtiJWT IDUnique identifier, useful for revocation

Times are Unix timestamps in seconds โ€” convert them with the Timestamp Converter.

Signature algorithms

  • HS256 โ€” HMAC with SHAโ€‘256 and a shared secret. The same secret signs and verifies.
  • RS256 โ€” RSA signature with SHAโ€‘256. Signed with a private key, verified with the public key (PEM, BEGIN PUBLIC KEY).

JWT security checklist

  • The payload is only encoded, not encrypted โ€” never put passwords or secrets in it.
  • Always verify the signature on the server and pin the expected algorithm; reject alg: none.
  • Keep exp short and validate iss and aud.
  • Use long random secrets for HS256 โ€” at least 256 bits (generate one with the Password Generator).

Frequently asked questions

Is a JWT payload encrypted?

No. A standard signed JWT (JWS) is only Base64url-encoded; anyone can read the payload. Encrypted tokens use the separate JWE format.

Can this tool verify JWT signatures?

Yes. It verifies HS256 tokens with a shared secret and RS256 tokens with an RSA public key in PEM format, using the browserโ€™s Web Crypto API.

Is my token sent anywhere?

No. Decoding and verification happen locally in your browser. The secret you enter is not saved.

Why does it say my token is expired?

The exp claim is earlier than your deviceโ€™s current time. Check the token lifetime and your system clock.

What is the difference between HS256 and RS256?

HS256 uses one shared secret for signing and verifying. RS256 uses a private key to sign and a public key to verify, so verifiers never hold the signing key.

Can I edit a JWT and keep it valid?

No. Changing the header or payload invalidates the signature unless you re-sign it with the correct key.