> decoderen | inspecteren | verifiëren <
// Decodeer en inspecteer JSON Web Tokens (JWT) direct
Lokale Verwerking
100% client-side JWT decodering. Uw tokens verlaten nooit uw browser.
Auto-Decodering
Decodeer JWT tokens automatisch bij plakken of typen.
Volledige Token Inspectie
Bekijk header, payload en handtekening. Controleer algoritme en vervaldatum.
// OVER JWT DECODERING
JWT Structuur:
Een JSON Web Token (JWT) bestaat uit drie Base64URL-gecodeerde delen gescheiden door punten: header.payload.handtekening. De header specificeert het algoritme en tokentype. De payload bevat claims (gegevens). De handtekening verifieert de integriteit van het token.
Voorbeeld:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}
Veelvoorkomende Toepassingen:
- >Debuggen van authenticatietokens in webapplicaties
- >Inspectie van OAuth 2.0 en OpenID Connect tokens
- >Verificatie van tokenvervaldatum en claims
- >Begrip van JWT structuur volgens RFC 7519
- >Controle van Base64URL coderingsintegriteit
>> veelgestelde vragen
V: Wat is een JSON Web Token (JWT)?
A: JWT (JSON Web Token) is een open standaard (RFC 7519) voor het veilig verzenden van informatie tussen partijen als een JSON-object. Het is compact, URL-veilig en wordt veel gebruikt voor authenticatie.
V: Wat zijn de drie delen van een JWT?
A: Een JWT bestaat uit drie delen gescheiden door punten: de Header (algoritme en type), de Payload (claims en gegevens) en de Handtekening (verificatiehash). Elk deel is Base64URL-gecodeerd.
V: Kan een JWT worden gedecodeerd zonder de geheime sleutel?
A: Ja, de header en payload van een JWT kunnen door iedereen worden gedecodeerd omdat ze eenvoudig Base64URL-gecodeerd (niet versleuteld) zijn. De geheime sleutel is alleen nodig om de handtekening te verifiëren.
V: Wat is het verschil tussen JWT en sessie-gebaseerde authenticatie?
A: Sessies slaan de status op de server op met een sessie-ID cookie. JWTs zijn stateless — het token zelf bevat alle benodigde informatie.
V: Hoe werkt JWT vervaldatum?
A: De exp claim in de JWT payload specificeert de vervaltijd als een Unix timestamp. Na deze tijd moet het token als ongeldig worden beschouwd.
// Veelgebruikte JWT-ondertekeningsalgoritmen
De alg-waarde in de header bepaalt hoe de handtekening wordt gemaakt. HS* gebruikt een gedeeld geheim; RS*, PS*, ES* en EdDSA gebruiken sleutelparen.
| alg | Algoritme |
|---|---|
| HS256 | HMAC + SHA-256 |
| HS512 | HMAC + SHA-512 |
| RS256 | RSA PKCS#1 v1.5 + SHA-256 |
| PS256 | RSASSA-PSS + SHA-256 |
| ES256 | ECDSA P-256 + SHA-256 |
| EdDSA | Ed25519 |
// Een JWT verifiëren in code
Decoderen controleert niets. Geef bij het verifiëren altijd expliciet de toegestane algoritmen op.
Node.js (jsonwebtoken) jwt.verify(token, secret, { algorithms: ['HS256'] })
Python (PyJWT) jwt.decode(token, key, algorithms=["HS256"])
PHP (firebase/php-jwt) JWT::decode($token, new Key($key, 'HS256'))
Go (golang-jwt) jwt.Parse(token, keyFunc, jwt.WithValidMethods([]string{"HS256"}))
Java (jjwt) Jwts.parser().verifyWith(key).build().parseSignedClaims(token)
>> Meer vragen
V: Wat betekenen de standaard-claims iss, sub, aud, exp, nbf, iat en jti?
A: iss is de uitgever, sub het onderwerp (meestal de gebruikers-id), aud de beoogde ontvanger, exp de vervaltijd, nbf het begin van de geldigheid, iat het uitgiftemoment en jti een unieke token-id. Tijden zijn Unix-seconden.
V: Is een JWT versleuteld?
A: Een gewone ondertekende JWT (JWS) is niet versleuteld, alleen Base64URL-gecodeerd: iedereen kan de inhoud lezen. De handtekening beschermt alleen tegen manipulatie. Zet er geen gevoelige gegevens in of gebruik een versleutelde JWE.
V: Hoe verifieer ik de handtekening van een JWT?
A: Je hebt de sleutel nodig: het gedeelde geheim bij HS256 of de publieke sleutel bij RS256/ES256. De server berekent de handtekening over Header.Payload opnieuw en vergelijkt die. Deze decoder werkt in de browser en verifieert de handtekening niet voor je: gebruik een beproefde bibliotheek.
V: Wat zijn veelgemaakte beveiligingsfouten met JWT?
A: Vaak: de alg-waarde uit het token zelf vertrouwen (vooral none), zwakke HS256-geheimen, exp, iss en aud niet controleren, gevoelige gegevens in de payload en langlevende tokens in localStorage bewaren.
// ANDERE TALEN
Referenties
Hoe we resultaten controleren
We controleren dit hulpmiddel met de onderstaande automatische tests. Voorbeelden staan in hun oorspronkelijke taal.
- Verification method
- Construct a known HMAC token and check the page’s decoded header, payload and signature bytes.
- Comparison reference
- Node.js crypto token construction and explicit JSON/byte expectations.
- Verification scope
- This checks decoding, not token signature authenticity.
Test source and cases (select a file to read it)
-
legacy-reliability.test.js
- JWT decoder: header, Unicode claims and signature bytes agree with independently constructed tokens
De tests dekken de genoemde voorbeelden en grenzen, niet elke mogelijke invoer. Terugconversie en tests met dezelfde bibliotheek zijn geen onafhankelijke verificatie.