Learn how JWTs are structured, what the signature actually verifies, and why a JWT is signed, not encrypted.
A JWT (JSON Web Token) is a compact way to pass verified information between two parties, commonly used to prove a user is logged in without the server needing to look anything up in a database on every request.
A JWT is a string made of three parts separated by dots: header.payload.signature. Both the header and payload are What Is JSON? objects, each converted to text using a URL-safe variant of What Is Base64 Encoding?. The signature is what makes the token trustworthy, described further below.
Header (algorithm and token type):
{"alg":"HS256","typ":"JWT"}
Base64URL-encoded: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Payload (the actual data, called “claims”):
{"sub":"1234567890","name":"John Doe","iat":1516239022}
Base64URL-encoded: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
Signature: a cryptographic signature computed from the header and payload using a secret key, appended as the third part.
The signature proves the token hasn’t been tampered with since it was issued, since changing even one character of the header or payload would produce a different signature. It does not encrypt the payload; anyone can decode the header and payload and read them directly.
The JWT Decoder decodes a JWT’s header and payload instantly, so you can inspect its contents directly.
JWT Decoder
No. A standard JWT is signed, not encrypted. Its header and payload are readable by anyone who decodes the Base64URL text, the signature only proves the content hasn’t been altered.
The header (algorithm and token type), the payload (the actual claims/data), and the signature (which verifies the token’s authenticity), separated by dots.
Not safely, since the payload is readable by anyone who has the token. Sensitive data should be encrypted separately or kept out of the token entirely.
It protects against tampering: any change to the header or payload after the token was issued would produce a signature that no longer matches, revealing the token has been altered.
Because a server can verify a JWT’s signature without needing to look anything up in a database, making authentication checks fast and easy to scale across multiple servers.
Find the right tool, or keep reading Brekzy's other guides.