Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

Naar hoofdinhoud springen
Gizke.com
Blog

JWT-decoder

Werkt op je apparaat. Er wordt niets verstuurd.

Decodeer en inspecteer JSON Web Tokens volledig in je browser - header, payload, vervaldatum en een optionele handtekeningcontrole, niets wordt ergens geüpload.

Een JSON Web Token (JWT) is een compacte, URL-veilige manier om claims tussen twee partijen weer te geven - overal gebruikt, van "Authorization: Bearer ..."-headers tot sessiecookies en single sign-on. Een JWT bestaat uit slechts drie base64url-gecodeerde delen (header, payload, handtekening) verbonden door punten, dus iedereen kan de header en payload decoderen en lezen zonder de ondertekeningssleutel nodig te hebben - alleen het verifiëren van de handtekening vereist een geheim of privésleutel. Deze tool decodeert beide delen lokaal in je browser, legt de standaardclaims uit, markeert een verlopen of nog niet geldig token, en waarschuwt voor de beveiligingsval van het "none"-algoritme - je token wordt nooit ergens naartoe gestuurd.

Veelgestelde vragen

Wordt mijn JWT naar een server gestuurd?
Nee. Decoderen gebeurt volledig in je browser met de Web-API's atob en TextDecoder - het token, en elk geheim of elke publieke sleutel die je plakt om een handtekening te verifiëren, verlaten je apparaat nooit.
Kan deze tool de handtekening verifiëren?
Ja, als best-effort bonus. Als je het HMAC-geheim kent (voor HS256/384/512) of de PEM-gecodeerde publieke sleutel plakt (voor RS256/384/512 of ES256/384/512), controleert de tool de handtekening lokaal met de Web Crypto API van de browser. Zonder sleutel worden alleen de header en payload gedecodeerd en getoond - decoderen zelf vereist nooit de ondertekeningssleutel.
Waarom staat er dat het algoritme "none" is?
"alg": "none" betekent dat het token helemaal niet is ondertekend - iedereen had er willekeurige claims in kunnen schrijven. Sommige bibliotheken accepteerden zulke ongesigneerde tokens vroeger ten onrechte als geldig, wat een bekende manier werd om authenticatie te omzeilen. Deze tool markeert dit altijd duidelijk, zodat je het niet mist.
Wat betekenen exp, iat en nbf?
Dit zijn de standaard tijdstempelclaims uit RFC 7519: iat geeft aan wanneer het token is uitgegeven, nbf het vroegste moment waarop het geldig wordt, en exp wanneer het dat niet meer is. Alle drie worden opgeslagen als een NumericDate - seconden sinds het Unix-epoch - wat deze tool omzet naar een leesbare datum en een relatieve tijd zoals "verloopt over 2 uur".
Waarom kan ik de payload lezen zonder geheim?
Omdat de header en payload van een JWT alleen base64url-gecodeerd zijn, niet versleuteld - coderen is geen geheimhouding. Iedereen met het token kan de claims al lezen; de handtekening bewijst alleen dat ze niet zijn gewijzigd door iemand zonder de sleutel. Zet nooit iets in een JWT-payload dat je niet wilt dat een aanvaller direct kan lezen.
Mijn token heeft 3 delen maar decodeert nog steeds niet - waarom?
Elk van de drie delen (header, payload, handtekening) moet geldige base64url-tekst zijn, en de header en payload moeten decoderen naar geldige JSON. Deze tool decodeert de header en payload onafhankelijk van elkaar en vertelt precies welke stuk is en waarom (slechte base64, slechte UTF-8 of ongeldige JSON), in plaats van stilletjes te falen.
Voor ontwikkelaars: open deze pagina met een `token`-parameter in de URL - bijv. gizke.com/jwt?token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c - en dat token wordt automatisch vooraf ingevuld. De meeste bezoekers hebben dit niet nodig; het is bedoeld om direct naar een kant-en-klaar voorbeeld te linken.

Deel deze tool

BlogOver onsContactGebruiksvoorwaardenPrivacybeleid