JWT decoder
Decode a JSON Web Token's header and payload, see when it expires, and get warned about alg none, missing expiry, jku/kid tricks and sensitive data. The token never leaves your browser.
Runs in your browser. Nothing you paste is uploaded, stored or logged.
How it works
JSON Web Tokens carry identity and permissions between services, so they turn up in proxy logs, browser storage, API traffic and incident evidence. Their contents are only Base64url-encoded, not encrypted, which means anyone holding a token can read it.
Paste a token and the decoder shows its header and payload, converts the time claims to dates, and checks for the problems that matter in security reviews: unsigned tokens (alg none), HMAC secrets that could be cracked offline, headers that point at attacker-controlled keys (jku, x5u, an embedded jwk), key IDs that look like injection attempts, missing or excessive expiry, and sensitive data such as passwords in the payload. Encrypted tokens (JWE) are recognised too. Nothing is sent anywhere.
Questions
Is it safe to paste a real token here?
Does this verify the signature?
Why is alg “none” dangerous?
"alg": "none" has no signature, so its contents can be changed freely. A server whose library accepts it lets an attacker become any user. Servers should reject unsigned tokens and accept only the algorithms they expect.What do exp, iat and nbf mean?
exp is when the token expires, iat when it was issued, and nbf the time before which it must not be accepted. The decoder shows each as a UTC date and warns when exp is missing or the lifetime is very long.