JWT
JWT-decoder
Decodeer de header en payload van een JSON Web Token.
Over JWT's
Een JSON Web Token verpakt een header, een payload en een handtekening in drie met punten gescheiden Base64URL-gecodeerde segmenten. De header en payload zijn slechts gecodeerde JSON die iedereen kan lezen, terwijl de handtekening daadwerkelijk bewijst dat het token niet is gemanipuleerd.
Het alg-veld in de header noemt het ondertekeningsalgoritme, maar omdat de header slechts gedecodeerde, ongeverifieerde JSON is, kan een client er niet op vertrouwen dat er iets waars in staat — een bekende klasse JWT-kwetsbaarheden bestaat eruit dat een aanvaller alg verandert in "none" en de handtekening verwijdert, in de hoop dat een onzorgvuldige verifier een ongetekend token accepteert. Echte verificatie moet de handtekening controleren tegen een specifiek algoritme en sleutel die de verifiërende server zelf heeft gekozen, nooit een die uit het token wordt gelezen. De claims exp en iat in de payload zijn Unix-tijdstempels (seconden sinds epoch, geen milliseconden) — combineer deze tool met de Tijdstempel-converter om ze als kalenderdata te lezen.
Waar je het tegenkomt
- Een access- of ID-token inspecteren dat is uitgegeven door een OAuth- of OIDC-provider
- Debuggen waarom een token een verwachte claim mist
- De vervaldatum of uitgever van een token controleren zonder code te schrijven
- Begrijpen wat een externe API of library daadwerkelijk in zijn tokens stopt
Veelgestelde vragen
Verifieert decoderen de handtekening?
Nee — dit decodeert alleen de header en payload zodat je ze kunt lezen. De handtekening wordt niet gecontroleerd, dus een gedecodeerd token is geen bewijs dat het echt of niet verlopen is.
Kan ik de claims vertrouwen van een token dat ik niet heb gecontroleerd?
Niet voor beveiligingsbeslissingen. Iedereen kan een JWT maken met willekeurige claims; alleen een handtekening die tegen de sleutel van de uitgever is gecontroleerd, maakt de inhoud betrouwbaar.
Wordt het token dat ik hier plak opgeslagen?
Nee. Decoderen gebeurt volledig binnen dat ene verzoek; niets wordt gelogd of bewaard.
Kan het alg-veld in de header vertrouwd worden?
Niet op zichzelf. De header is ongeverifieerde JSON die een aanvaller kan controleren, wat betreft iedereen die een ruw token leest — een bekende JWT-aanval zet alg op "none" en verwijdert de handtekening volledig, in de hoop dat een verifier die de header blindelings vertrouwt, het als geldig accepteert. Correcte verificatiecode legt vast welk algoritme en welke sleutel verwacht worden en haalt die beslissing nooit uit het token zelf. Deze tool decodeert alleen om te lezen; hij neemt helemaal geen vertrouwensbeslissingen.