Tool workspace

JWT Encoder/Decoder

Input

Decode JWTs, inspect claims, verify HMAC signatures, and generate signed test tokens with HS256, HS384, or HS512.

Input

Output

Loading tool

Loading tool

Developer Tools

JWT Encoder/Decoder

A JSON Web Token (JWT) is a compact way to transfer information between systems, commonly in web applications and APIs. A JWT has a header, payload, and signature separated by periods.

Use this JWT Encoder/Decoder to inspect a token’s contents, verify an HMAC signature with its secret, or generate a signed token for testing. It supports HS256, HS384, and HS512. Processing happens in your browser.

Decoding does not prove that a token is authentic. Treat decoded data as untrusted until its signature is verified with the correct secret.

Quick guide

How to use

  1. Decode: paste a compact JWT to inspect its header, payload, signature, recognized claims, and readable dates for supported time claims.
  2. Verify: provide an HMAC-signed token and its secret. The tool checks the signature with the algorithm declared in the token.
  3. Encode: edit the JSON header and payload, choose HS256, HS384, or HS512, enter a test secret, and generate a signed token.
  4. Use the example token to explore the tool, copy results as needed, or clear the fields when finished.

Details

About this tool

JWT Encoder/Decoder

A JSON Web Token (JWT) is a compact token format commonly used to pass claims between systems. A compact token has three parts: header.payload.signature. This tool can decode a token, verify HMAC signatures, and generate signed tokens for development and testing. Token processing happens in your browser; the tool does not save the fields you enter.

The three parts of a JWT

The header contains token metadata, commonly the type and signing algorithm. The payload contains claims: information about the token or its subject. The signature is used to check that the encoded header and payload were signed with the expected secret and have not been changed. Header and payload data are Base64URL-encoded, not encrypted. Anyone with the token can generally decode them, so do not put passwords, API secrets, private keys, credentials, or sensitive personal information in a normal JWT payload.

Decode versus verify

Decoding answers what information is encoded in a token. Verification checks whether its HMAC signature matches the token data and the supplied secret. A token can be decoded even when its signature is invalid, its secret is unknown, its contents were altered, or it has expired. Readable does not mean trustworthy. Even a valid signature does not decide whether an application should authorize a user or accept a particular issuer, audience, role, or claim.

JWT claims and date values

Common registered claims include iss (issuer), sub (subject), aud (intended audience), exp (expiration), nbf (not-before time), iat (issued-at time), and jti (token identifier). The exp, nbf, and iat claims commonly contain Unix timestamps in seconds. The decoder presents supported numeric date claims as readable dates. The application that consumes the token remains responsible for interpreting and enforcing these claims.

Verify HMAC signatures

The verifier supports HS256, HS384, and HS512. These algorithms use HMAC with SHA-256, SHA-384, and SHA-512 respectively, together with a shared secret. The tool uses the algorithm declared in the token header and compares the calculated signature with the token’s signature. A successful result means the signature matches the supplied secret and token data. It does not establish authorization or validate every claim. RSA and ECDSA public/private-key verification, such as RS256 or ES256, is not supported.

Generate a signed JWT

In Encode mode, edit the JSON header and payload, select HS256, HS384, or HS512, and provide a secret to create a signed compact token. Use generated tokens and test secrets for development. Generating a signed JWT does not make its claims appropriate or secure for production.

Use JWTs carefully

Decoding is not verification, and verification is not authorization. Use test or development secrets for browser-based experimentation and avoid entering production credentials. JWT payloads are normally encoded rather than encrypted, so treat their contents as readable by anyone who obtains the token. Your application must separately validate claims and permissions before granting access.

Decode a JWT header and payload

Paste a compact JWT to inspect its header, payload, signature, registered claims, and readable dates for supported numeric date claims.

Verify HMAC JWT signatures

Check an HMAC signature using HS256, HS384, or HS512 and the secret used to sign the token. Verification checks the signature, not application permissions.

Generate signed JWTs

Edit the JSON header and payload, choose an HMAC algorithm, provide a secret, and create a signed token for testing.

Understand JWT claims safely

Inspect claims such as iss, sub, aud, exp, nbf, iat, and jti. Remember that decoding does not verify authenticity and JWT payloads are not encrypted.

Practical inputs

JWT Encoder/Decoder Examples

Decode a compact JWT

Paste a compact JWT in Decode mode.

Inspect the header, payload, signature, and recognized claims.

Verify an HMAC signature

JWT plus the matching HMAC secret.

See whether the signature matches for HS256, HS384, or HS512.

Generate a signed token

JSON header, JSON payload, algorithm, and test secret.

A signed compact JWT for development or testing.

Read a date claim

A token with a numeric exp, nbf, or iat claim.

The decoder displays the supported timestamp as a readable date.

Help

Frequently asked questions

What is a JWT?

JWT stands for JSON Web Token. It is a compact format with a header, payload, and signature, commonly used to transmit claims between systems.

What are the three parts of a JWT?

A compact JWT consists of a header, payload, and signature separated by periods: header.payload.signature.

Can I decode a JWT without a secret?

Yes. A standard JWT header and payload are Base64URL-encoded and can be decoded without the signing secret. Decoding does not verify the token.

Does decoding a JWT verify its signature?

No. Decoding makes the encoded contents readable. Signature verification is a separate check using the appropriate HMAC secret.

Which JWT algorithms does the tool support?

The verification and encoding features support HMAC algorithms HS256, HS384, and HS512.

Does the tool support RS256 or ES256?

No. It supports HS256, HS384, and HS512 HMAC signatures, not RSA or ECDSA public/private-key verification.

What does the exp claim mean?

The exp claim represents a JWT expiration time and commonly uses a Unix timestamp in seconds. The consuming application is responsible for enforcing it.

Can I generate a signed JWT?

Yes. In Encode mode, edit the header and payload, choose HS256, HS384, or HS512, enter a secret, and generate a signed token.

Are JWT payloads encrypted?

No. Standard JWT headers and payloads are encoded, not encrypted. Do not use a normal JWT payload to store passwords, secrets, or sensitive information.

Does a valid JWT signature prove that a user is authorized?

No. Verification checks the signature using the supplied secret. The application must separately decide whether the claims and permissions are acceptable.

Are my token fields saved?

The tool processes JWT data in your browser and does not save the fields you enter. Still, use test secrets for browser-based work and avoid exposing production credentials.