JWT decoder and verifier

Paste a token to see what’s inside, when it expires and whether it’s genuine.

What it does

A JSON Web Token carries its data in plain sight: the header and payload are only Base64URL-encoded, not encrypted. This tool decodes them, shows the standard claims such as the issuer, subject and expiry in readable dates, and tells you whether the token is still valid. To prove the token is genuine, check its signature with the shared secret (HS256, HS384, HS512) or the issuer’s public key (RS, PS and ES algorithms). Tokens are credentials, so it matters where you paste them: here, decoding and verification run entirely in your browser, and nothing is sent anywhere.

How to use it

How it works
  1. Paste the token into the box. A “Bearer ” prefix, quotes or line breaks are cleaned up for you.
  2. Read the decoded header and payload, and the standard claims with their dates in your time zone. The status line tells you whether the token has expired.
  3. To check the signature, enter the secret (for HS256 and similar) or paste the public key (for RS256, PS256 or ES256), then click “Check signature”.

Common uses

  • Finding out why an API returns 401: an expired token, the wrong audience or a missing role
  • Checking which claims your login provider puts in its ID and access tokens
  • Confirming that a token was signed with the key you expect before trusting it in your code

Tips

  • Never put passwords or other secrets in a JWT payload: anyone holding the token can read it.
  • JWT times (exp, iat, nbf) are in seconds since 1 January 1970, not milliseconds.
  • A valid signature only proves who signed the token. Your server still has to check exp, the issuer and the audience.

Questions

Is it safe to paste a real token here?

The token is decoded and verified by your browser, and it isn’t sent to any server. Still, treat live tokens like passwords: prefer test or expired tokens, and don’t share screenshots of them.

Why can it read my token without the secret?

Signing a JWT doesn’t hide its content; it only makes changes detectable. The secret or key is needed to check the signature, not to read the payload.

Which algorithms can it verify?

HS256, HS384 and HS512 with a shared secret, and RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 and ES512 with a public key in PEM or JWK form.

Can it decode encrypted tokens (JWE)?

No. An encrypted token has five parts instead of three, and its content can only be read with the decryption key, which belongs on the server.

Related tools

  • JSON formatter and validator

    Format, validate and minify JSON in your browser. Clear errors with line and column, big numbers kept exact, duplicate keys flagged. No upload.

  • Base64 encoder and decoder

    Encode text or files to Base64 and decode Base64 back, with proper UTF-8, URL-safe Base64 and file detection. Free, in your browser, no upload.

  • URL encoder and decoder

    Percent-encode text for URLs and query strings, or decode %20-style escapes back to text. Handles UTF-8, + for spaces and splits URLs into parts.

  • UUID generator

    Generate UUID v4 or v7 values, one or a thousand at once, with the browser’s secure random generator. Check any UUID’s version and creation time.

  • Hash generator and checksum checker

    Calculate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or files, and check a download against its checksum. In your browser, no upload.

  • Compress images

    Shrink image file size without visible quality loss. Private, fast, free.