JWT-decoder
Plak een token om te zien wat erin staat en wanneer het verloopt. Heb je de sleutel, dan kun je ook de handtekening controleren.
Het decoderen gebeurt in je browser. Er wordt niets verstuurd.
Geldigheid
…
Gedecodeerd, niet geverifieerd: iedereen kan een token met deze inhoud maken. Voer hieronder de sleutel in om de handtekening te controleren.
Header
{
"alg": "HS256",
"typ": "JWT"
}Payload
{
"iss": "https://example.com",
"sub": "1234567890",
"aud": "quaestio",
"name": "Ada Lovelace",
"iat": 1757000000,
"nbf": 1757000000,
"exp": 4102444800,
"jti": "4f1c2a9e"
}Velden en claims
- alghandtekeningalgoritme
- HS256
- typtokentype
- JWT
- issuitgever
- https://example.com
- subonderwerp, meestal de gebruikers-ID
- 1234567890
- auddoelgroep waarvoor het token bedoeld is
- quaestio
- expvervaltijd
- 4102444800
- nbfniet geldig vóór
- 1757000000
- iatuitgegeven op
- 1757000000
- jtiunieke token-ID
- 4f1c2a9e
- Handtekening
- 32 bytes
Handtekening controleren
De sleutel wordt alleen in je browser gebruikt en niet opgeslagen.
Zo werkt het
Een JSON Web Token (JWT, RFC 7519) bestaat uit drie delen, gescheiden door punten: header, payload en handtekening. De header en payload zijn JSON, gecodeerd met base64url, een variant van base64 die - en _ gebruikt in plaats van + en / en de opvulling weglaat. Iedereen kan de inhoud lezen; die is niet versleuteld.
De header geeft het algoritme (alg) en vaak het type (typ) en de sleutel-ID (kid). De payload bevat claims, beweringen over de gebruiker of de sessie. De standaard registreert er zeven: iss (uitgever), sub (onderwerp), aud (doelgroep), exp (vervaltijd), nbf (niet vóór), iat (uitgegeven op) en jti (JWT-ID). Alle andere claims bepaalt de uitgever zelf.
De tijden in exp, nbf en iat zijn seconden sinds 1 januari 1970 UTC. Een token mag niet worden geaccepteerd op of na de exp-tijd, en ook niet vóór de nbf-tijd. De decoder vergelijkt ze met de klok van je apparaat, dus een klok die verkeerd staat geeft een verkeerde status.
Decoderen is niet verifiëren. De handtekening laat zien dat het token is uitgegeven door iemand met de sleutel en dat de inhoud niet is gewijzigd, maar dat kan alleen met de sleutel worden gecontroleerd. HS256, HS384 en HS512 gebruiken een gedeeld geheim (HMAC). RS en PS gebruiken RSA, ES elliptische krommen (ECDSA met P-256, P-384 of P-521) en EdDSA Ed25519; die worden gecontroleerd met de publieke sleutel als PEM of JWK, die uitgevers vaak publiceren als JWK Set.
Een token met alg none heeft geen handtekening en mag nooit door een server worden geaccepteerd. Verschillende bekende kwetsbaarheden kwamen van bibliotheken die none accepteerden, of die een aanvaller RS256 lieten vervangen door HS256 en lieten ondertekenen met de publieke sleutel als geheim.
Een token werkt vaak als sleutel tot een account. Hier gebeurt alles in je browser met de ingebouwde cryptografie (WebCrypto), en het token, het geheim en de sleutel worden nergens heen gestuurd. Plak toch nooit een actief token of geheim in een site die je niet vertrouwt, en plak nooit een privésleutel: voor de controle is alleen de publieke nodig.