JWT-dekooderi: otsikko, hyötykuorma ja vanheneminen

Dekoodaa JSON Web Tokens (JWT) -tunnukset välittömästi. Tarkastele otsikkoa, hyötykuormaa ja allekirjoitusta turvallisesti selaimessasi.

JWT-dekooderi

Ilmoita ongelmasta

Löysitkö bugin tai onko sinulla ehdotus työkalulle JWT-dekooderi: otsikko, hyötykuorma ja vanheneminen? Kerro meille!

Näin tämä JWT-dekooderi lukee tokenin

JSON Web Token kokoaa kolme osaa yhteen merkkijonoon: otsikon, hyötykuorman ja allekirjoituksen. Tämä dekooderi jakaa koodatun tokenin näihin kolmeen osaan, muuttaa otsikon ja hyötykuorman takaisin luettavaksi JSONiksi ja poimii algoritmin, myöntämisajan ja vanhenemisajan, jotta voit tarkastella tokenia kirjoittamatta koodia. Kaikki tämä tapahtuu heti, kun liität tokenin kenttään.

Otsikko, hyötykuorma ja allekirjoitus

Token jakautuu kahdella pisteellä kolmeen osaan: otsikko.hyötykuorma.allekirjoitus. Kaksi ensimmäistä osaa ovat base64url-koodattua JSONia, joten niiden purkaminen on palautuva muunnos, ei salausta. Otsikko kertoo allekirjoitusalgoritmin, alg-kentän, esimerkiksi HS256 tai RS256, sekä tokenin tyypin. Hyötykuorma sisältää claimit: subject-tunnisteen, sovelluskohtaiset kentät sekä yleensä iat (myöntämisaika) ja exp (vanhenemisaika) Unix-sekunteina tallennettuna. Allekirjoitus on otsikosta ja hyötykuormasta laskettu salausarvo; sen vahvistaminen vaatii salaisen tai yksityisen avaimen, jolla se luotiin, joten tokenin sisällön lukeminen on eri asia kuin sen aitouden todentaminen. Jotkin tokenit allekirjoitetaan alg-arvolla none, jolloin niissä on vain kaksi osaa, otsikko.hyötykuorma; dekooderi hyväksyy myös tämän lyhyemmän muodon ja jättää allekirjoituskentän tyhjäksi. Base64url eroaa tavallisesta base64:stä siten, että se käyttää plus-merkin ja kauttaviivan sijaan väliviivaa ja alaviivaa, eikä siinä yleensä ole täytemerkkinä käytettyä yhtäsuuruusmerkkiä.

Käytännön esimerkki

Liitä alla olevan kaltainen token, ja se jakautuu kolmeen värilliseen osaan, minkä jälkeen otsikko ja hyötykuorma näkyvät muotoiltuna JSONina. Kukin kolmesta osasta saa oman värinsä, joten näet heti, mihin kohtaan otsikko päättyy ja hyötykuorma alkaa.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDkzODQ3NTYyIiwibmFtZSI6IkFpbm8gS29yaG9uZW4iLCJpYXQiOjE2ODM4OTI4MDAsImV4cCI6MTY5MTY2ODgwMH0.rh9O0dmx-e2dL4v78u03A8UZPwM

{
  "alg": "HS256",
  "typ": "JWT"
}

{
  "sub": "1093847562",
  "name": "Aino Korhonen",
  "iat": 1683892800,
  "exp": 1691668800
}

Algorithm-merkki näyttää otsikosta luetun arvon HS256. iat-arvo vastaa 12. toukokuuta 2023 ja exp-arvo 10. elokuuta 2023; koska tuo päivämäärä on jo mennyt, Status-merkki näyttää EXPIRED. Mikään tästä ei tapahdu palvelimella: purku toimii selaimessa, eikä työkalu koskaan tarkista, onko allekirjoitus aito, koska sillä ei ole pääsyä sen luoneeseen avaimeen. Tässä esimerkissä sub yksilöi käyttäjän ja name on sovelluksen itse lisäämä oma claim, ja kumpikin arvo on kenen tahansa luettavissa riippumatta allekirjoituksesta.

Usein Kysytyt Kysymykset