TOOLGRID
HomeImage ToolsPDF ToolsVideo ToolsAudio Tools
More
Dev ToolsWeb & SEOCategoriesText ToolsCalculatorsAbout
Menu
HomeImage ToolsPDF ToolsVideo ToolsAudio ToolsDev ToolsWeb & SEOCategoriesText ToolsCalculatorsAbout
TOOLGRID

The full toolbox remains available when you need a specific utility.

Β© 2026 TOOLGRID. All rights reserved.

Tools

Image ToolsPDF ToolsVideo ToolsAudio Tools

Resources

CategoriesPrivacy Policy

Company

AboutTermsContact
  1. Home
  2. Developer Utilities
  3. JWT Decoder & Verifier

JWT Decoder & Verifier

Decode, build, and verify JWT tokens β€” entirely client-side (HS256).

Use this tool
Browser-local processingNo input upload to TOOLGRIDReview before copy
Formats and processing
Input
Pasted code or structured data
Output
JWT Decoder & Verifier result
Runtime
Browser APIs
Browser-local workspaceStart below with browser-local processing.

Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. TOOLGRID measures tool usage, not the content you enter.

Loading tool…

Browser-basedWhat this tool does

Free JWT decoder, builder, and HS256 signature verifier. Inspect header and payload claims, sign new tokens, and validate signatures locally. Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. Browser-local processing avoids a TOOLGRID upload path, but it is not a blanket security guarantee.

Decoding and verifying are different operations β€” decoding only Base64url-decodes the parts (useful for inspection, never proves authenticity), while verifying recomputes the HMAC signature with your secret. Most security incidents come from confusing the two; this tool keeps them in separate tabs so you cannot mix them up.

JWT work uses the browser's Web Crypto API. Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. Browser-local processing avoids a TOOLGRID upload path, but it is not a blanket security guarantee.

Representative tasks

What you can do with this tool

Inspect Token Claims During Development

Paste a JWT from your app's local storage or authorization header to inspect the user ID, roles, and expiry without writing code.

Debug Authentication Issues

When a user reports they can't access a resource, decode their JWT to check if their role claim or expiry is the cause.

Verify Token Structure

Confirm that your auth server is issuing tokens with the correct claims before writing application code that depends on them.

Boundaries

What to check before relying on the result

  • Performance and maximum practical input size depend on browser memory, device speed, and the structure of the input.
  • Review the generated result before replacing or publishing an original file.
MDN Web APIs

How to use

  1. 1

    Decode: paste any JWT to inspect header and payload claims.

  2. 2

    Build: provide a JSON payload and secret to produce a signed HS256 token.

  3. 3

    Verify: paste a token and secret to check whether the signature matches.

Use Cases
Inspect Token Claims During Development

Paste a JWT from your app's local storage or authorization header to inspect the user ID, roles, and expiry without writing code.

Debug Authentication Issues

When a user reports they can't access a resource, decode their JWT to check if their role claim or expiry is the cause.

Verify Token Structure

Confirm that your auth server is issuing tokens with the correct claims before writing application code that depends on them.

Check Token Expiry

Decode a JWT's payload to read the exp (expiry) timestamp and verify whether a token is still valid.

Tips & Tricks
JWTs are not encrypted β€” treat them as public

A JWT payload is only Base64url-encoded, not encrypted. Anyone who has the token can decode and read its claims. Never put sensitive data in the payload.

The exp claim is a Unix timestamp

The exp field contains seconds since Jan 1 1970 UTC. Use the Timestamp Converter tool to convert it to a human-readable date.

Decoding is not verification

Decoding only Base64url-decodes the header and payload β€” it tells you nothing about whether the token is authentic. The Verify tab supports HS256 shared-secret checks only; it does not accept public keys or verify RS256/ES256 tokens. A matching signature proves possession of the supplied secret, not the issuer's identity or the trustworthiness of the claims.

Three parts separated by dots

A JWT looks like xxxxx.yyyyy.zzzzz. The first part is the header (algorithm), the second is the payload (claims), the third is the signature.

Beware of the alg: none attack

If a server accepts tokens with header alg: none, anyone can forge a token by setting alg: none and omitting the signature. Your server should reject the none algorithm explicitly β€” never decide trust based on the header's alg value alone.

FAQ

What is the difference between decoding and verifying a JWT?

Decoding only Base64url-decodes the header and payload β€” it works on any well-formed token, including forged or tampered ones. This tool's Verify tab only recomputes an HS256 HMAC with the supplied shared secret. A match does not by itself prove who issued the token or that its claims should be trusted.

Can this tool verify the JWT signature?

It can verify HS256 only: open the Verify tab, paste the token, and provide the shared secret. The tool does not accept a public key and cannot verify RS256, ES256, or other asymmetric algorithms. A signature match confirms the token matches that secret; it does not establish issuer identity or claim validity.

Is my JWT or secret sent to a server?

Decoding, signing, and verification use the browser's Web Crypto API. Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. Browser-local processing avoids a TOOLGRID upload path, but it is not a blanket security guarantee.

Why does my decoded payload show numbers instead of dates?

JWT timestamps (iat, exp, nbf) are Unix timestamps β€” seconds since January 1, 1970 UTC. The decoder surfaces the parsed expiry above the JSON, and you can paste the raw number into the Timestamp Converter tool to read other claims.

What is the alg: none vulnerability?

Some JWT libraries trust the header's alg field to decide which algorithm to verify with. If your server accepts alg: none, an attacker can submit a forged token with no signature and have it accepted. Always pin the expected algorithm on the server side and reject none explicitly.

What's the difference between the header and payload?

The header contains the token type and signing algorithm (alg, typ). The payload contains the claims β€” standard fields like iss (issuer), sub (subject), aud (audience), exp (expiry), iat (issued at), nbf (not before), plus any custom data your app embeds.

Can I decode a JWT that's been modified?

Yes β€” any valid Base64url string decodes. That's exactly why decoding alone proves nothing. For HS256, the signature binds the header and payload bytes to the supplied shared secret; any change invalidates that check, but a match does not identify the issuer.

Should I use HS256 or RS256?

Use HS256 only when issuer and verifier can safely share one secret. RS256 or ES256 separates private-key signing from public-key verification. This tool signs and verifies HS256 only; it has no public-key input, although RS256 or ES256 token contents can still be decoded for inspection.

Continue this workflow

Useful next steps

Open a nearby browser tool when you need to validate, convert, or reuse the result.

Base64 Encoder / DecoderConverters · Local→Hash & HMAC GeneratorSecurity & Random · Local→Query String BuilderWeb & SEO · Local→