DT Dev Tools

JWT-decoder — token decoderen en handtekening verifiëren

Decodeer JWT-header en payload, zie exp/iat als leesbare datums met een verlopen-badge en verifieer HS-, RS-, PS-, ES- en EdDSA-handtekeningen lokaal in je browser.

🔒 Draait volledig in je browser — niets wordt geüpload

Handtekening verifiëren

HS256/384/512 hebben het gedeelde geheim nodig; RS, PS, ES en EdDSA hebben de publieke sleutel nodig als PEM (-----BEGIN PUBLIC KEY-----) of JWK. Verificatie draait met Web Crypto in dit tabblad — plak geen productiegeheimen op websites.

Was deze tool nuttig? Beoordeel hem:

Wat de JWT-decoder doet

De JWT-decoder splitst een JSON Web Token in de drie door punten gescheiden segmenten, decodeert de header en payload met base64url en toont die JSON-objecten overzichtelijk opgemaakt. Dat is handig bij het debuggen van inlogstromen, API-autorisatieheaders, OAuth-callbacks, refresh-gedrag en tests die afhangen van claims zoals subject, issuer, audience, uitgiftetijd en vervaltijd. Elke claim staat in een tabel met de standaardbetekenis, en tijdclaims worden voor je omgezet.

De tool kan ook de handtekening verifiëren. HMAC-tokens (HS256, HS384, HS512) hebben het gedeelde geheim nodig, dat je als gewone tekst of Base64 kunt plakken. Asymmetrische tokens (RS256, PS256, ES256, hun 384/512-varianten en EdDSA) hebben de publieke sleutel van de uitgever nodig, als PEM-blok PUBLIC KEY of als enkele JWK van het JWKS-eindpunt van de provider. Een groen resultaat betekent dat het token met die sleutel is ondertekend en niet is gewijzigd; een rood resultaat betekent dat de sleutel onjuist is of dat er met het token is geknoeid. Tokens met alg: none worden gemarkeerd als niet ondertekend.

Privé werken in de browser

Alle verwerking gebeurt met JavaScript en de Web Crypto API in de browser. De tool uploadt je tokens, geheimen, sleutels, URL's of gegenereerde waarden niet naar een server en vereist geen account. Dat privacymodel is belangrijk, omdat kleine hulpprogramma's bij het oplossen van problemen vaak echte API-antwoorden, configuratievoorbeelden, logs, authenticatiegegevens of klantachtige voorbeelden krijgen. Lokaal werken verkleint het risico en voelt bovendien direct aan, omdat er geen netwerkronde nodig is.

De gedecodeerde uitvoer lezen

Standaardclaims die je vaak ziet zijn iss (issuer), sub (subject), aud (audience), exp (vervaltijd), nbf (niet vóór) en iat (uitgegeven op). De tijdclaims zijn Unix-tijdstempels in seconden; de claimtabel toont elk ervan als ISO 8601-datum in UTC plus een relatieve tijd zoals "in 2 hours" of "3 days ago", en de statusregel vertelt in één oogopslag of het token geldig, verlopen of nog niet geldig is.

De decoder verwacht precies drie door punten gescheiden segmenten; alles anders geeft een decodeerfout. Versleutelde tokens (JWE) hebben vijf segmenten en kunnen zonder de sleutel niet worden gelezen, en een segment dat geen geldige base64url-JSON is, mislukt ook. Een geldige handtekening bewijst wie het token heeft uitgegeven, maar je applicatie moet nog steeds de issuer, audience en vervaltijd controleren. Behandel live tokens als wachtwoorden: hoewel hier niets je browser verlaat, kun je beter geen productietokens plakken in tools die je niet vertrouwt of gedecodeerde uitvoer openbaar delen.

Hoe te gebruiken

  1. Plak het tokenVoeg een JWT met drie door punten gescheiden segmenten toe; een voorafgaande Bearer-prefix wordt genegeerd.
  2. Lees de claimsBekijk de header, de payload, de claimtabel en de vervalstatus.
  3. Verifieer de handtekeningPlak het geheim of de publieke sleutel en klik op Verify signature.

Veelgestelde vragen

Kan het de handtekening verifiëren?
Ja. Plak het gedeelde geheim voor HS256/384/512, of de publieke sleutel als PEM of JWK voor RS-, PS-, ES- en EdDSA-tokens. De verificatie gebruikt de Web Crypto API van de browser.
Hoe weet ik of een token verlopen is?
De decoder zet exp, nbf, iat en auth_time om naar leesbare UTC-datums met relatieve tijden en toont of het token geldig, verlopen of nog niet geldig is.
Kan ik productietokens decoderen?
De tool draait lokaal, maar deel of bewaar gevoelige tokens liever niet, en plak nooit privésleutels — voor de verificatie is alleen de publieke sleutel nodig.