Security Tools

JWT Decoder — Header, Payload & Expiry

Decode JWT header, payload, algorithm, and expiry — token stays in your browser

How to Use This Tool

  1. Paste a JWT string (three dot-separated Base64URL segments) into the textarea.
  2. The tool splits on periods and rejects tokens that do not have exactly three parts.
  3. Header and payload segments decode from Base64URL to JSON and parse into objects.
  4. exp claim compared to current time sets expired flag and expiresAt ISO string.
  5. Algorithm badge displays header alg when present (HS256, RS256, etc.).
  6. Signature segment is retained for reference but cryptographic verification is not performed.

About This Tool

JSON Web Tokens carry signed claims between services and browsers. Debugging authentication failures requires reading header algorithm, payload expiration, and issuer claims without verifying signatures on every step. VSPIC splits the token on dots, Base64URL-decodes header and payload JSON, and displays formatted results locally — your token is never uploaded.

The decoder shows algorithm from header alg, expired or valid status based on exp claim, ISO expiration timestamp when present, and pretty-printed header and payload objects. Invalid format or decode errors surface clear messages. Signature bytes are shown but not verified — use your authorization server keys to validate integrity in production.

Common use cases

  • Check if a VPN or proxy is detected on your connection
  • Validate SSL certificates before launch
  • Scan for email addresses in known breaches

JWT structure in modern authentication

JWTs concatenate header, payload, and signature with dots. Header declares type and signing algorithm. Payload holds claims — subject, roles, expiration. Signature prevents tampering when verified with the correct secret or public key.

Many APIs accept Bearer tokens in Authorization headers. OAuth access tokens and session substitutes often use JWT format even when opaque tokens would suffice.

Browser-only decoding privacy

Tokens are bearer credentials — anyone with the string impersonates the user until expiry. Sending tokens to third-party decoder websites has caused real incidents. Our page never transmits the token off-device.

Close tabs after debugging. Clear textarea on shared machines. Prefer redacted samples in screenshots.

Expiration and clock skew

exp is NumericDate seconds since Unix epoch. We multiply by one thousand for JavaScript Date comparison. expired true when current time exceeds exp. Missing exp shows valid without expiration — may indicate long-lived tokens worth policy review.

Allow thirty to sixty seconds skew between issuer and validator clocks in production verification code.

Algorithm header considerations

alg declares signing method — HS256 for symmetric, RS256 for RSA public-key. None algorithm attacks historically exploited validators that trusted header alg blindly. Always pin allowed algorithms server-side.

Display-only alg here helps spot unexpected none or HS256 on services expecting RS256.

Claims you commonly inspect

sub identifies the subject user. iss and aud tie token to issuer and intended recipient. iat marks issued-at time. scope or custom claims encode permissions. nbf blocks early use before not-before time.

Decoded JSON helps compare staging vs production token shapes during integration debugging.

What decode does not do

Signature verification requires issuer public key or shared secret not available in a browser tool. Never trust payload contents for authorization decisions based on decode alone — attackers forge unsigned bodies.

Encrypted JWE tokens use five segments — this decoder expects standard three-part JWS.

Debugging authentication failures

Sudden 401 responses often trace to expired exp or aud mismatch. Compare expiresAt with server logs. Header alg drift after key rotation implicates stale configuration.

Pair with CORS checker when browser clients fail after token refresh — separate transport from token issues.

Security hygiene for developers

Avoid logging full tokens in application logs — decode offline with redacted copies. Rotate signing keys on schedule. Prefer short access token lifetimes with refresh tokens stored HttpOnly.

Use cookie analyzer on login endpoints to confirm session cookies carry Secure and HttpOnly flags alongside JWT APIs.

Common decode errors

Invalid JWT format means not exactly three parts — check for truncated paste or Bearer prefix left attached. Failed payload decode indicates corrupted Base64URL or non-JSON content.

Strip Bearer prefix and whitespace before paste.

Regulatory and audit context

Tokens may contain personal data under GDPR — treat decoded payload as PII in support tickets. Document who accessed decode tools during incident response.

Decode supports transparency during security reviews without exposing tokens to external SaaS decoders.

Frequently Asked Questions

Yes. VSPIC offers this JWT decoder at no cost with no account required. Results load in real time.

We do not permanently store your queries on our servers. Some tools run entirely in your browser; others fetch public data for the request only.

Yes. Open the page in any modern phone or tablet browser. Results work on Wi‑Fi and mobile data.

No. Decoding uses browser JavaScript only. The token never leaves your device.

No. We display the signature segment but do not validate it. Verify server-side with proper keys.

Check clock skew, custom exp validation, or whether the app uses a different token than the one pasted.

No. This tool expects three-part signed JWTs, not five-part encrypted JWE.

Only on trusted devices. Tokens are secrets — prefer staging tokens or redact sub and email claims when sharing screenshots.

Whatever alg appears in the decoded header — commonly HS256, RS256, ES256. Verification is your server's job.

Next step for your check

Continue with password hasher on VSPIC.

Password Hasher

Trusted by Users Who Value Privacy

Always Free

No premium plan ever

100% Private

Files processed in browser

Instant Results

Convert in seconds

Works Everywhere

Any device, any OS