SecuredKit

JWT Decoder

This client-side JWT decoder lets you paste a JSON Web Token and instantly read its header and payload, inspect registered claims like exp, iat and nbf, and optionally verify an HS256/HS384/HS512 signature against a secret you provide. Decoding runs entirely in your browser using native base64url and Web Crypto APIs — the token and any secret you enter are never transmitted, logged, or stored. Zero-Knowledge by design.

🔒 Zero-Knowledge — decoding & verification run in your browser. Nothing is transmitted.

Why Use This JWT Decoder?

A JSON Web Token (RFC 7519) is three base64url segments joined by dots: header.payload.signature. The header names the signing algorithm and token type; the payload carries registered, public and private claims; the signature binds the two together using either an HMAC secret (HS256/384/512) or an asymmetric key pair (RS256, ES256, PS256, etc.). Critically, a JWT is encoded, not encrypted — anyone holding the token can decode the header and payload with nothing but base64url, exactly as this tool does. That's why JWTs must never carry secrets in their payload, and why an application must always verify the signature server-side before trusting any claim. This JWT decoder mirrors that reality client-side: it decodes freely, and separately offers HMAC signature verification so you can confirm a token is genuine without ever sending it to a server.

  • Instant decode: paste any JWT and see its header and payload pretty-printed as JSON immediately, with algorithm and type surfaced as badges — no submit button, no network round-trip.

  • Registered claims table: exp, nbf, iat, iss, sub, aud and jti are pulled out and rendered as human-readable rows, with Unix timestamps converted to local date/time.

  • Expiry awareness: an expired, not-yet-valid, or not-expired badge is computed from exp and nbf so you can see token lifetime status at a glance — without trusting an unverified claim as proof of anything beyond decoding.

  • HMAC signature verification: enter the shared secret and this tool recomputes HS256/HS384/HS512 over the token via the Web Crypto API's crypto.subtle.sign, then compares it to the token's signature — the exact check your backend performs at request time.

  • Security-aware by default: this tool flags the classic alg: none forgery vector and clearly labels asymmetric algorithms (RS256, ES256…) as unverifiable here, since those require the issuer's public key rather than a shared secret.

How to Use the JWT Decoder

  1. 1

    Paste a JWT into the input field — header, payload and signature decode instantly as you type.

  2. 2

    Review the decoded header and payload JSON, and check the registered claims table for exp, iat, nbf and more.

  3. 3

    Check the expiry badge to see whether the token is expired, not yet valid, or currently active.

  4. 4

    If the algorithm is HS256/384/512, enter the shared secret and click Verify Signature to confirm authenticity.

Frequently Asked Questions

Also try our Secret Key Generator to create a fresh HMAC signing secret — generated client-side, ready to drop into your JWT signing config.

Need a signing secret for your JWTs? Generate a cryptographically secure one.