JWT dekoderis

Akimirksniu dekoduokite JWT antraštes ir naudingąjį krovinį tiesiog savo naršyklėje.

Įklijuokite savo JWT
Paruošta. Įklijuokite JWT, kad jį dekoduotumėte.

Jūsų žetonas dekoduojamas jūsų naršyklėje. Nieko neįkeliama į „BroBroGo“.

DUK

Ar saugu čia įklijuoti savo JWT?

Taip. Dekodavimas vyksta tik jūsų naršyklėje – jūsų žetonas niekada nesiunčiamas į „BroBroGo“.

Ar šis įrankis patikrina parašą?

Ne. Įrankis tik dekoduoja antraštę (header) ir naudingąjį krovinį (payload), kad galėtumėte juos perskaityti. Parašo tikrinimui reikalingas pasirašymo raktas arba viešasis raktas, kurio šis įrankis niekada neprašo.

Kaip sužinoti, ar mano žetono galiojimas pasibaigė?

Dekoderis nuskaito „exp“ pretenziją (claim) ir šalia dekoduoto žetono parodo būsenos ženklelį – galiojantis, pasibaigęs, dar negaliojantis arba be galiojimo pabaigos.

JSON Web Token struktūra ir veikimo principas

JSON Web Token (JWT) yra kompaktiškas ir saugus informacijos perdavimo formatas, naudojamas tarp dviejų šalių kaip JSON objektas. Ši informacija yra pasirašoma skaitmeniniu būdu, todėl ji gali būti patikrinta ir ja galima pasitikėti. Standartinį JWT sudaro trys dalys, kurios viena nuo kitos yra atskiriamos taškais. Kiekviena dalis atlieka skirtingą funkciją ir yra užkoduota atskirai:

  • Antraštė (Header): Šioje dalyje paprastai nurodomas žetono tipas ir naudojamas pasirašymo algoritmas.
  • Naudingasis krovinys (Payload): Čia pateikiamos pretenzijos (claims) – pareiškimai apie subjektą (pavyzdžiui, vartotoją) ir papildomi duomenys.
  • Parašas (Signature): Naudojamas patvirtinti, kad siuntėjas yra tas, kas sakosi esąs, ir užtikrinti, kad pranešimas nebuvo pakeistas pakeliui.

Kiekviena iš šių dalių yra užkoduojama naudojant Base64URL algoritmą. Tai leidžia saugiai perduoti duomenis HTTP užklausose, URL adresuose ir kitose aplinkose, kur tam tikri simboliai gali būti interpretuojami klaidingai.

JWT antraštės ir naudingojo krovinio paskirtis

Antraštėje pateikiama informacija apie tai, kaip žetonas turėtų būti apdorojamas. Dažniausiai joje sutinkamos dvi pagrindinės pretenzijos: alg (nurodo pasirašymo algoritmą, pavyzdžiui, HS256 arba RS256) ir typ (nurodo žetono tipą, kuris dažniausiai yra JWT).

Naudingajame krovinyje saugomi faktiniai duomenys, kurie skirstomi į tris kategorijas: registruotas, viešąsias ir privačias pretenzijas. Registruotos pretenzijos nėra privalomos, tačiau rekomenduojamos, siekiant užtikrinti suderinamumą. Tarp jų dažniausiai naudojamos:

  • iat (išdavimo laikas) – nurodo, kada žetonas buvo sukurtas.
  • exp (galiojimo pabaiga) – nurodo laiką, po kurio žetonas nebegali būti priimamas apdorojimui.

Šie duomenys pateikiami JSON formatu, kuris užtikrina lengvą struktūros skaitymą tiek žmonėms, tiek programinei įrangai.

Dekodavimo ir verifikavimo skirtumai

Svarbu suprasti esminį skirtumą tarp JWT dekodavimo ir jo verifikavimo.

Dekodavimas yra paprastas Base64URL eilutės pavertimas atgal į skaitomą JSON tekstą. Kadangi Base64URL nėra šifravimo algoritmas, bet kas, turintis prieigą prie žetono, gali jį dekoduoti ir perskaityti jame esančią informaciją. Šis įrankis atlieka būtent dekodavimą – jis nepatikrina parašo ir neprašo įvesti pasirašymo slaptojo rakto ar viešojo rakto.

Verifikavimas, priešingai, reikalauja kriptografinio patikrinimo naudojant pasirašymo raktą. Jei žetonas yra modifikuojamas (pavyzdžiui, pakeičiamas naudingasis krovinys), parašas tampa negaliojantis. Pasitikėti nepatikrintu JWT yra nesaugu, nes duomenys galėjo būti suklastoti po žetono išdavimo.

Įrankio naudojimas ir klaidų apdorojimas

Norėdami išanalizuoti žetoną, įklijuokite jį į tam skirtą lauką. Įrankis akimirksniu apdoroja įvestį ir pateikia rezultatus. Jei įvestas tekstas neatitinka reikalavimų, sistema parodo atitinkamą pranešimą ir paslepia dekoduotų duomenų sritis:

  • Jei įvestas tekstas neturi trijų dalių, atskirtų taškais, rodoma klaida: „Netinkamas JWT formatas – tikimasi trijų dalių, atskirtų taškais.“
  • Jei antraštės dalis nėra tinkamai užkoduota Base64URL formatu, pamatysite pranešimą: „Nepavyko dekoduoti antraštės – netinkamas Base64URL formatas.“
  • Jei naudingojo krovinio dalis turi Base64URL klaidų, rodoma: „Nepavyko dekoduoti naudingojo krovinio – netinkamas Base64URL formatas.“
  • Jei dekoduota antraštė nėra struktūrizuotas JSON objektas, sistema praneša: „Antraštė nėra tinkamas JSON.“
  • Jei naudingasis krovinys neatitinka JSON sintaksės taisyklių, rodoma klaida: „Naudingasis krovinys nėra tinkamas JSON.“
  • Jei įvestis viršija realaus žetono ilgio ribas, pateikiamas įspėjimas: „Ši eilutė per ilga, kad būtų tikras JWT.“

Kai įvesties laukas išvalomas, fokusas automatiškai grąžinamas į įvesties lauką, o įrankis grįžta į pradinę būseną.

Duomenų privatumo principai

Naudojantis šiuo įrankiu, jūsų įvedami duomenys išlieka visiškai privatūs. Visi dekodavimo veiksmai yra atliekami lokaliai, tiesiogiai jūsų interneto naršyklėje. Įvestas JWT tekstas ir jo sudedamosios dalys nėra siunčiamos į išorinius serverius ir nieko neįkeliama į „BroBroGo“. Tai leidžia saugiai analizuoti žetonus tiesiai savo darbo aplinkoje.

Dažniausiai užduodami klausimai (FAQ)

Ar saugu čia įklijuoti savo JWT?

Taip. Dekodavimas vyksta tik jūsų naršyklėje – jūsų žetonas niekada nesiunčiamas į „BroBroGo“.

Ar šis įrankis patikrina parašą?

Ne. Įrankis tik dekoduoja antraštę (header) ir naudingąjį krovinį (payload), kad galėtumėte juos perskaityti. Parašo tikrinimui reikalingas pasirašymo raktas arba viešasis raktas, kurio šis įrankis niekada neprašo.

Kaip sužinoti, ar mano žetono galiojimas pasibaigė?

Dekoderis nuskaito „exp“ pretenziją (claim) ir šalia dekoduoto žetono parodo būsenos ženklelį – galiojantis, pasibaigęs, dar negaliojantis arba be galiojimo pabaigos.

Kas nutinka, jei žetone nėra „exp“ pretenzijos?

Jei naudingajame krovinyje nėra nurodytas galiojimo pabaigos laikas, įrankis būsenos laukelyje parodys reikšmę „Nėra galiojimo pabaigos“.