Gratis converter

JWT-token Decoder

Decodeer de JWT-header (JSON Web Token) en de payload direct in uw browser. Gratis, privé en aan de clientzijde: er worden geen gegevens naar een server verzonden.

Over deze tool

JSON Web Tokens (JWT) is een compact, URL-veilig formaat voor het verzenden van claims tussen twee partijen, gedefinieerd door RFC 7519. Een JWT bestaat uit drie base64url-gecodeerde segmenten gescheiden door punten: header (algoritme en tokentype), payload (claims) en handtekening (cryptografisch bewijs van authenticiteit). De header en payload zijn JSON, base64url-gecodeerd voor URL-veiligheid; de handtekening gebruikt een van de verschillende algoritmen (HS256, RS256, ES256 en andere) via de gecodeerde header en payload.

Het decoderen van een JWT – het opsplitsen in segmenten en het base64-decoderen ervan – vereist geen enkel geheim. Iedereen met de tokentekst kan de header en payload ervan lezen. De handtekening kan echter alleen worden geverifieerd met de geheime (HMAC) of publieke sleutel (asymmetrisch). Decodering is ter inspectie; verificatie is wat de authenticiteit bewijst.

Deze decoder splitst het token, base64-decodeert elk segment, parseert de header en payload als JSON en toont het resultaat. Er wordt geen handtekeningverificatie geprobeerd, omdat daarvoor de geheime of publieke sleutel nodig is, die de decoder niet heeft. De gedecodeerde uitvoer is alleen-lezen-inspectie: handig voor het debuggen van tokens, maar geen vervanging voor een goede verificatie in applicatiecode.

Waarom JWT's decoderen

Bij het opsporen van authenticatieproblemen gaat het bijna altijd om het inspecteren van tokens. Een token dat er in de code geldig uitziet, kan verkeerde claims hebben, een onverwacht algoritme, een verlopen exp-tijdstempel of een niet-overeenkomende doelgroep. Het decoderen van het token onthult precies wat de uitgever heeft geproduceerd.

Het inspecteren van tokens tijdens integratiewerkzaamheden helpt ook. Wanneer u verbinding maakt met een API of identiteitsprovider van derden, kunnen de daadwerkelijke claimnamen, formaten en structuur het beste worden begrepen door voorbeeldtokens te decoderen in plaats van te vertrouwen op documentatie die mogelijk verouderd is.

Hoe te gebruiken

Plak het token en haal de geparseerde inhoud op.

  1. Plak je JWT: Plaats het volledige token (header.payload.signature) in het invoergebied. De decoder accepteert tokens met of zonder het optionele Bearer-voorvoegsel.
  2. Inspecteer de kop: De header toont het ondertekeningsalgoritme (alg) en het tokentype (typ). Veelgebruikte algoritmen zijn HS256, RS256 en ES256. Let op alg: none, wat een niet-ondertekend token aangeeft en zelden veilig is in productie.
  3. Inspecteer de lading: De payload bevat de claims: iss (uitgever), sub (onderwerp), aud (doelgroep), exp (vervaldatum), iat (uitgegeven op) en eventuele toepassingsspecifieke claims. Standaard tijdstempels zijn Unix-epochseconden.
  4. Afzonderlijk verifiëren: De decoder verifieert de handtekening niet. Om de authenticiteit te controleren, voert u het token door een JWT-bibliotheek met de juiste geheime of openbare sleutel in uw applicatiecode.

Veelvoorkomende gebruiksscenario's

Technische details

Het JWT-formaat bestaat uit drie segmenten die met elkaar zijn verbonden door punten. Elk segment is base64url-gecodeerd: de URL-veilige variant van base64 die - en _ gebruikt in plaats van + en /, waarbij opvulling soms wordt weggelaten. Decodering vereist het ongedaan maken van de URL-veilige vervangingen, het opvullen van het segment en het base64-decoderen.

De header en payload zijn JSON na decodering. Het handtekeningsegment is binair (onbewerkte handtekeningbytes) en is niet voor mensen leesbaar; het vereist dat de verificatiesleutel nuttig is.

Veel voorkomende claims gedefinieerd in RFC 7519: iss (uitgever), sub (onderwerp-ID), aud (publiek), exp (vervaldatum als Unix-epochseconden), nbf (niet vóór tijdstempel), iat (uitgegeven op tijdstempel), jti (unieke token-ID). Applicatiespecifieke claims kunnen met elke naam verschijnen.

Beste praktijken

Veelgestelde vragen

Is het veilig om mijn JWT hier te plakken?
Ja. Het decoderen gebeurt volledig in uw browser; het token wordt nooit naar een server verzonden. JWT's zijn echter inloggegevens. Deel ze niet openbaar (in schermafbeeldingen, Stack Overflow-berichten, enz.), omdat ze toegang kunnen geven tot uw accounts.
Verifieert deze tool de JWT-handtekening?
Deze tool decodeert en geeft de tokeninhoud weer. Voor handtekeningverificatie is de geheime sleutel (HMAC) of de openbare sleutel (RSA/ECDSA) vereist, die op uw server moet blijven staan. De tool toont het gebruikte algoritme, maar kan zonder de sleutel niet verifiëren.
Wat betekenen de standaard JWT-claims?
iss = uitgever, sub = onderwerp (gebruikers-ID), exp = vervaltijd (Unix-tijdstempel), iat = uitgegeven op, nbf = niet eerder, aud = publiek, jti = JWT-ID. Aangepaste claims kunnen toepassingsspecifieke gegevens bevatten.
Waarom kan iemand een JWT decoderen?
JWT's zijn gecodeerd, niet gecodeerd. De payload is Base64URL-gecodeerd (niet gecodeerd), zodat iedereen deze kan lezen. De handtekening voorkomt geknoei, niet lezen. Sla nooit gevoelige gegevens (wachtwoorden, SSN's) op in JWT-payloads.
Waarom missen sommige tokens een handtekening?
Tokens met alg: geen enkele heeft geen handtekening. Het zijn volgens de specificaties geldige JWT's, maar bieden geen authenticiteitsgaranties en mogen niet in productie worden geaccepteerd.
Zijn JWT's gecodeerd?
Standaard JWT-payloads zijn ondertekend maar niet gecodeerd. JWE (JSON Web Encryption, RFC 7516) is een apart formaat voor gecodeerde tokens. De meeste JWT's in het wild zijn JWS (alleen ondertekend).
Wordt mijn token geüpload naar een server?
Nee. Het decoderen gebeurt in uw browser; het token verlaat uw apparaat niet.
Hoe lang zijn JWT's doorgaans?
Overal van een paar honderd tot enkele duizenden tekens. De lengte is afhankelijk van het aantal en de omvang van de claims plus de lengte van de handtekening (die afhankelijk is van het algoritme).