Skip to content
Free, no sign-up, in your browser

JWT Decoder & Debugger: Decode and verify tokens online

The free JWT Decoder & Debugger instantly displays your JSON Web Token’s header and payload in a readable format, with exp, iat, and nbf as UTC dates. Verify the signature with a secret (HS256, HS384, HS512) or a public key in PEM format “BEGIN PUBLIC KEY” (RS, PS, ES), edit claims, and re-sign the token in real time with HS256, HS384, or HS512. Everything runs in your browser; nothing is uploaded.

Built by Jakub Martyniak

Issuing tokens? Run your auth service on your own VPS.

Encoded (JWT)

Decoded

iat: Nov 14, 2023, 10:13:20 PM UTC

Why this tool

More than a JWT decoder: verify, edit, sign

Everything you need to debug JWTs.

Decode in real time

The header and payload appear as formatted JSON as soon as you paste a token, with no button click needed.

exp, iat & nbf in readable format

iat, nbf, and exp as UTC dates, with time remaining or time since expiry for exp. An expired exp is highlighted in red.

Re-sign with HS256, HS384, HS512

Edit the header or payload, including exp, roles, or custom claims, and get a new token signed with your secret in real time.

Verify RS, PS & ES signatures

Verify RS256 through RS512, PS256 through PS512, and ES256 through ES512 with a public key in PEM format “BEGIN PUBLIC KEY”.

Large numbers remain exact

Integers greater than 2^53, such as Snowflake IDs, are not rounded when decoding and re-signing.

Runs only in the browser

Decoding, signing, and verification use your browser's Web Crypto API—no upload.

JWT structure

Decoding a JWT is not verifying it

A JSON Web Token consists of three Base64URL-encoded parts separated by periods: header.payload.signature. The header and payload are not encrypted; anyone can read them. Only the signature shows whether a token has been altered.

Header

Contains the algorithm (alg) and usually the type (typ). The alg tells the tool whether it needs a secret or a public key for verification.

Payload

Contains claims such as sub, roles, or exp. You can read them at any time, but should only trust them after a successful signature verification.

Signature

Calculated from the header and payload. The tool verifies the signature with your secret (HS256, HS384, HS512) or public key (RS, PS, ES) and displays “Valid” or “Invalid”.

This tool does not generate a strong, random secret for HS256, HS384, or HS512.

Generate a secret with the password generator

exp, iat, and nbf are Unix timestamps in seconds. For custom claims, you need the appropriate numeric value.

Convert timestamps with the Epoch Converter

How it works

How the JWT decoder works

From pasted token to verified signature in five steps.

Step 1

Paste a JWT

Paste your JWT into the “Encoded (JWT)” field or click “Load example” to test with an HS256 example token.

Step 2

Read the header and payload

In the “Decoded” section, you can immediately see the header and payload as formatted JSON. exp, iat, and nbf appear above the payload as UTC dates.

Step 3

Verify the signature

Enter the secret for HS256, HS384, or HS512, or paste the public key in PEM format “BEGIN PUBLIC KEY” for RS, PS, and ES tokens. “Valid” or “Invalid” will then appear at the top.

Step 4

Edit and re-sign

Optional: Edit the header or payload, or select HS256, HS384, or HS512 as the algorithm. A new token signed with your secret appears in the “Encoded (JWT)” field in real time.

Step 5

Copy result

Copy the token, header, or payload to your clipboard with its copy button.

Explore more

Related tools for JWTs and authentication

FAQ

Frequently asked questions about the JWT Decoder

Quick answers about decoding, signature verification, expiration, and privacy.

Yes. The JWT Decoder & Debugger runs directly on this page in your browser, with no account, sign-up, or installation required.

No. Decoding, signing, and signature verification run exclusively in your browser, with cryptography handled by the Web Crypto API. The token, secret, and public key are not uploaded. Real JWTs often contain session or API credentials, though, so test tokens are a better choice for testing.

Yes. A JWT is not encrypted: its header and payload are only Base64URL-encoded and can be read by anyone. The secret or public key is needed only to verify the signature and, for HS256, HS384, and HS512, to re-sign the token. Decoding therefore does not prove a token is authentic; only signature verification does.

For HS256, HS384, and HS512, enter the secret. If the header specifies RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, or ES512, a field for the public key in PEM format “BEGIN PUBLIC KEY” (SPKI) appears instead. The tool does not accept RSA PUBLIC KEY (PKCS#1) or certificates. The result appears at the top as “Valid” or “Invalid”, or “Not verified” without a secret or key. The tool does not verify other algorithms.

If the payload contains exp, iat, or nbf as a number, the tool displays those claims above the payload as UTC dates. For exp, it also shows how long until the token expires or how long ago it expired; an expired exp is highlighted in red. If nbf is in the future, you can see when the token becomes valid.

Yes. Edit the header or payload directly, including exp, roles, or custom claims, or choose another algorithm. As soon as you make a change, a new token signed with your secret appears in the “Encoded (JWT)” field in real time. Signing works only with HS256, HS384, and HS512: RS, PS, and ES algorithms would require a private key, which the tool does not use.

Copy and paste only the part after “Bearer ”. The prefix is not removed automatically, and a JWT must consist of exactly three parts separated by periods (header.payload.signature). With the prefix, the header cannot be read and the tool displays an error.

A JWT consists of three Base64URL-encoded parts separated by periods: a header (e.g. alg and typ), a payload containing the claims, and a signature. The prefilled example shows the structure: an HS256 token with sub, name, and iat that verifies as “Valid” with the example secret.

Any more questions?

Contact Support
Building something of your own?

Your API needs a reliable server to issue its tokens

A ZAP-Hosting VPS reliably puts your application or project online.

4.4/5 Trustpilot32,000+ Active serversSince 2010

No setup. No risk. Online in seconds.

Flexible TermCancel anytimeOnline in 60 seconds

Looking for more tools? View all developer tools