b2KIT

JWT Signature Verifier

Verify JWT signatures with HMAC, RSA, or ECDSA keys. Check expiration, issuer, audience, and custom claim validation.

Tested tool guide Tested browser tools Checked August 16, 2026

What JWT Signature Verifier does and how it behaves

JWT Signature Verifier checks whether a compact JWT's signature is valid for a supplied HMAC secret, RSA public key, or elliptic-curve public key. It can also evaluate expiration, issuer, audience, and configured custom claims. The important distinction is that readable header and payload data are only decoded, not trusted. Authenticity requires a successful signature check, while acceptance also requires the right claim rules and a trusted key. Verification stays in the browser, so the token and key are not uploaded.

How the result is produced

1

Signature verification

For a compact signed JWT, the verifier separates the three dot-delimited segments. The first two encoded segments, including the dot between them, form the JWS signing input. It decodes the signature segment and checks it with the supplied HMAC secret or RSA or elliptic-curve public key. Changing even one header or payload byte causes signature verification to fail.

2

Claim validation

The verifier parses the payload as a JWT claim set and applies the requested checks. Expiration is evaluated from the exp NumericDate, which counts seconds from the Unix epoch. Issuer and audience checks compare iss and aud against expected values, while custom validation examines configured claims. Signature and claim results are separate: a correctly signed token can still fail an expiration or audience check.

Good uses

  • Check a locally issued access token against its HMAC secret before configuring server-side authentication middleware.
  • Verify an identity provider's token with the corresponding RSA or elliptic-curve public key, expected issuer, and intended audience.
  • Investigate a rejected JWT by distinguishing a malformed or mismatched signature from an expired token or incorrect claim value.

Limits and checks

  • The alg header is part of the token and is not itself a trusted policy. Confirm that the declared algorithm is one your application permits and that the supplied key has the corresponding type.
  • A successful signature result applies only to the exact key supplied. It does not establish who owns that key, whether the key is revoked, or whether it is authorized for the claimed issuer.
  • Expiration depends on the exp value and the browser's current clock. JWT NumericDate values use seconds, not JavaScript-style milliseconds, and clock skew near the boundary can change the practical result.

Common questions

Should I paste a private key to verify an RSA- or ECDSA-signed JWT?

Use the corresponding public key for RSA or ECDSA verification. The private key is required to create signatures, not to prove them, so exposing it to a verifier is unnecessary. HMAC is different: verification requires the same shared secret used for signing because HMAC has no separate public verification key.

Does a valid signature mean the application should accept the token?

No. A valid signature establishes that the compact header and payload match the signature under the supplied key. Acceptance also requires trusting that key for the claimed issuer, permitting the declared algorithm, checking applicable time constraints, matching the intended audience, and enforcing application-specific authorization. The verifier cannot determine those trust and permission decisions by itself.

References and verification

The behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools