De structuur van een JSON Web Token
Een JSON Web Token (JWT) is een compacte en zelfvoorzienende methode om informatie veilig als een JSON-object tussen partijen te verzenden. De opbouw van een JWT is strikt gedefinieerd en bestaat altijd uit drie delen die van elkaar worden gescheiden door een punt (.). Deze drie componenten zijn:
- De Header: Bevat metadata over het token, zoals het gebruikte algoritme en het type token.
- De Payload: Bevat de daadwerkelijke claims of gegevens die worden overgedragen.
- De Signature: De handtekening die wordt gebruikt om te controleren of het token onderweg niet is gewijzigd.
Om deze gegevens via URL's en HTTP-headers te kunnen transporteren, worden de header en de payload gecodeerd met Base64URL-codering. Dit is een variant van Base64 die tekens zoals + en / vervangt en opvulling met = weglaat, zodat de string veilig in URL's kan worden gebruikt.
Header- en payload-claims ontcijferen
De header van een JWT bevat cruciale informatie over hoe het token moet worden verwerkt. Veelvoorkomende claims in de header zijn alg (het cryptografische algoritme dat is gebruikt voor de handtekening, zoals HS256 of RS256) en typ (het type token, meestal JWT).
De payload bevat de claims. Dit zijn verklaringen over een entiteit (meestal de gebruiker) en aanvullende gegevens. Er zijn drie soorten claims: geregistreerde, openbare en besloten claims. Belangrijke geregistreerde claims die de levensduur van het token bepalen zijn:
iat(Issued At): Het tijdstip waarop het token is uitgegeven.exp(Expiration Time): Het tijdstip waarop het token verloopt en niet meer geaccepteerd mag worden.
Foutmeldingen en validatieregels van de decoder
Bij het invoeren van een token in de JWT Decoder voert de tool direct een syntactische controle uit. Als de invoer niet aan de standaarden voldoet, worden de gedecodeerde gebieden verborgen en toont de tool een specifieke foutmelding:
- Geen geldige JWT — verwachting is drie door punten gescheiden delen: Deze melding verschijnt als de invoerstructuur niet exact twee punten bevat.
- Kon de header niet decoderen — ongeldige Base64URL: Dit gebeurt wanneer het eerste deel van het token ongeldige Base64URL-tekens bevat.
- Kon de payload niet decoderen — ongeldige Base64URL: Dit treedt op als het tweede deel van het token niet correct kan worden gedecodeerd via Base64URL.
- De header is geen geldige JSON: De Base64URL-decodering is geslaagd, maar de resulterende tekst is geen correct geformatteerd JSON-object.
- De payload is geen geldige JSON: De gedecodeerde payload kan niet als een valide JSON-structuur worden geïnterpreteerd.
- Dat is te lang om een echte JWT te zijn: Deze foutmelding wordt getoond wanneer de invoerlimiet van de tool wordt overschreden.
Wanneer de invoer volledig leeg is, blijft de tool in de status Gereed. Plak een JWT om deze te decoderen.. Zodra de invoer handmatig wordt gewist via de knop Wissen, keert de focus direct terug naar het invoerveld.
Het verschil tussen decoderen en verifiëren
Het is essentieel om te begrijpen dat het decoderen van een JWT iets heel anders is dan het verifiëren ervan.
| Actie | Wat het doet | Vereisten | Veiligheidsstatus |
|---|---|---|---|
| Decoderen | Het omzetten van de Base64URL-strings naar leesbare JSON-tekst. | Geen sleutels nodig. | Controleert niet of de data echt is of is aangepast. |
| Verifiëren | Het controleren van de cryptografische handtekening (Signature). | Vereist het ondertekeningsgeheim (HMAC) of de openbare sleutel (RSA/ECDSA). | Garandeert dat het token legitiem is en niet is gemanipuleerd. |
Deze JWT Decoder is ontworpen om tokens snel te inspecteren. De tool verifieert de handtekening van de JWT niet en vraagt dan ook nooit om een ondertekeningsgeheim of een openbare sleutel. Het blindelings vertrouwen op de inhoud van een gedecodeerde JWT zonder verificatie in een productieomgeving vormt een groot veiligheidsrisico, omdat iedereen de payload van een token kan aanpassen en opnieuw kan coderen.
Privacy en lokale verwerking
Bij het werken met authenticatietokens is databeveiliging van groot belang. Je token wordt gedecodeerd in je browser. Er wordt niets geüpload naar BroBroGo. Alle bewerkingen en string-transformaties vinden lokaal plaats binnen de runtime van de webbrowser op jouw apparaat.
Veelgestelde vragen (FAQ)
Is het veilig om mijn JWT hier te plakken?
Ja. Het decoderen gebeurt volledig in je browser — je token wordt nooit naar BroBroGo verzonden.
Verifieert dit de handtekening?
Nee. De tool decodeert alleen de header en payload zodat je deze kunt lezen. Het verifiëren van een handtekening vereist het ondertekeningsgeheim of de openbare sleutel, waar deze tool nooit om vraagt.
Hoe weet ik of mijn token is verlopen?
De decoder leest de 'exp'-claim en toont een statusbadge — geldig, verlopen, nog niet geldig, of geen vervaltijd — naast het gedecodeerde token.
Welke statusbadges kan de tool tonen?
Afhankelijk van de aanwezigheid en de waarde van de exp-claim (vervallen) en de iat-claim (uitgegeven op), toont de tool een van de volgende statussen:
- Geldig
- Verlopen
- Nog niet geldig
- Geen vervaltijd (wanneer de
exp-claim ontbreekt in de payload)