JWT Decoder: Decode JSON Web Tokens

Decode compact JWS JWTs in this browser. Split header, payload, and signature; inspect alg, typ, and kid; read exp, nbf, and iat against the clock in UTC and your local timezone. Optional HMAC verify covers HS256, HS384, and HS512 only. Tokens are not sent anywhere.

Accepts a compact JWS (three base64url parts). JWE five-part tokens are detected and not decrypted. Nothing leaves this page.

HMAC verification (optional)

RFC 7519 allows a few minutes of skew. This control only changes the vs-now reading; it does not rewrite claims. Asymmetric RS*, ES*, PS*, and Ed* algorithms are never marked verified here.

Paste a compact JWT and press Decode. Results stay in this browser.

How to read the result

  • Decoding shows claims. It does not prove the token is authentic. HMAC verify is optional and uses Web Crypto in this page only.
  • alg none is an unsecured JWT (RFC 7519 §6): the signature must be empty, and claims have no integrity protection.
  • RS256, ES256, PS256, EdDSA, and similar algorithms need the matching public key. This decoder never reports those as verified.
  • Do not verify an HMAC using an RSA public key. That algorithm-confusion bug is called out in RFC 8725.
  • The sample token is HS256 with UTF-8 secret solodiff-sample-hs256-secret. It is a documented demo secret, not a credential.