Nemokamas konverteris

JWT ženklas Dekoderis

Iššifruokite JWT (JSON žiniatinklio prieigos rakto) antraštę ir iš karto savo naršyklėje. Nemokama, privati ​​ir kliento pusė – jokie duomenys nesiunčiami į jokį serverį.

Apie šį įrankį

JSON žiniatinklio prieigos raktai (JWT) yra kompaktiškas, URL saugus formatas, skirtas pretenzijoms tarp dviejų šalių perduoti, apibrėžtas RFC 7519. JWT yra trys baze64url užkoduoti segmentai, atskirti taškais: antraštė (algoritmas ir prieigos rakto tipas), naudingoji apkrova (pretenzijos) ir parašas (kriptografinis autentiškumo įrodymas). Antraštė ir naudingoji apkrova yra JSON, užkoduoti baze64url, kad būtų užtikrintas URL saugumas; parašas naudoja vieną iš kelių algoritmų (HS256, RS256, ES256 ir kt.) per užkoduotą antraštę ir naudingą apkrovą.

JWT dekodavimas – padalijimas į segmentus ir kiekvieno iššifravimas base64 – nereikalauja jokios paslapties. Kiekvienas, turintis prieigos rakto tekstą, gali perskaityti jo antraštę ir naudingą apkrovą. Tačiau parašą galima patikrinti tik naudojant slaptąjį (HMAC) arba viešąjį raktą (asimetrinį). Dekodavimas skirtas tikrinimui; patikrinimas yra tai, kas įrodo autentiškumą.

Šis dekoderis padalija prieigos raktą, „base64“ dekoduoja kiekvieną segmentą, analizuoja antraštę ir naudingąją apkrovą kaip JSON ir parodo rezultatą. Jis nebando tikrinti parašo, nes tam reikalingas slaptasis arba viešasis raktas, kurio dekoderis neturi. Dekoduota išvestis yra tik skaitymo tikrinimas – naudinga derinant žetonus, bet nepakeičia tinkamo programos kodo patikrinimo.

Kodėl iššifruoti JWT

Autentifikavimo problemų derinimas beveik visada apima žetonų patikrinimą. Kode galiojantis prieigos raktas gali turėti neteisingų paraiškų, netikėto algoritmo, pasibaigusio galiojimo laiko žymos arba auditorijos neatitikimo. Žetono iššifravimas tiksliai parodo, ką išdavėjas pagamino.

Taip pat padeda žetonų apžiūra integravimo darbų metu. Kai prisijungiate prie trečiosios šalies API arba tapatybės teikėjo, tikrieji paraiškų pavadinimai, formatai ir struktūra geriausiai suprantami dekoduojant pavyzdinius prieigos raktus, o ne pasikliaujant dokumentacija, kuri gali būti pasenusi.

Kaip naudoti

Įklijuokite žetoną, gaukite išnagrinėtą turinį.

  1. Įklijuokite savo JWT: Įveskite visą prieigos raktą (header.payload.signature) į įvesties sritį. Dekoderis priima žetonus su pasirenkamu nešiklio priešdėliu arba be jo.
  2. Patikrinkite antraštę: Antraštėje rodomas pasirašymo algoritmas (alg) ir prieigos rakto tipas (typ). Įprasti algoritmai yra HS256, RS256 ir ES256. Stebėkite algą: nėra, o tai rodo nepasirašytą prieigos raktą ir retai saugus gamyboje.
  3. Patikrinkite naudingą krovinį: Naudingame krovinyje yra pretenzijos: iss (išdavėjas), sub (subjektas), aud (auditorija), exp (galiojimo laikas), iat (išduota) ir bet kokios konkrečios programos paraiškos. Standartinės laiko žymos yra Unix epochos sekundės.
  4. Patikrinkite atskirai: Dekoderis netikrina parašo. Norėdami patikrinti autentiškumą, paleiskite prieigos raktą per JWT biblioteką su atitinkamu slaptu arba viešuoju raktu programos kode.

Bendro naudojimo atvejai

Techninės detalės

JWT formatas yra trys segmentai, sujungti taškais. Kiekvienas segmentas yra užkoduotas base64url – URL saugus base64 variantas, kuriame vietoj + ir / naudojami - ir _, o užpildymas kartais praleidžiamas. Norint iššifruoti reikia anuliuoti URL saugius pakaitalus, papildyti segmentą ir iššifruoti „base64“.

Antraštė ir naudinga apkrova yra JSON po dekodavimo. Parašo segmentas yra dvejetainis (neapdoroti parašo baitai) ir jo neskaito žmogus; kad patvirtinimo raktas būtų naudingas.

Įprasti teiginiai, apibrėžti RFC 7519: iss (išdavėjas), sub (subjekto identifikatorius), aud (auditorija), exp (galiojimo laikas kaip Unix epochos sekundės), nbf (ne anksčiau laiko žyma), iat (išduota laiko žyma), jti (unikalus prieigos rakto ID). Konkrečios programos paraiškos gali būti rodomos bet kokiu pavadinimu.

Geriausia praktika

Dažnai užduodami klausimai

Ar saugu čia įklijuoti savo JWT?
Taip. Dekodavimas vyksta tik jūsų naršyklėje – prieigos raktas niekada nesiunčiamas į jokį serverį. Tačiau JWT yra kredencialai – nesidalykite jais viešai (ekrano kopijose, „Stack Overflow“ įrašuose ir kt.), nes jie gali suteikti prieigą prie jūsų paskyrų.
Ar šis įrankis patvirtina JWT parašą?
Šis įrankis dekoduoja ir parodo žetono turinį. Parašo patvirtinimui reikalingas slaptasis raktas (HMAC) arba viešasis raktas (RSA/ECDSA), kuris turėtų likti jūsų serveryje. Įrankis rodo naudojamą algoritmą, bet negali patikrinti be rakto.
Ką reiškia standartiniai JWT reikalavimai?
iss = išdavėjas, sub = subjektas (vartotojo ID), exp = galiojimo laikas (Unix laiko žyma), iat = išduotas, nbf = ne anksčiau, aud = auditorija, jti = JWT ID. Tinkintose pretenzijose gali būti bet kokių konkrečios programos duomenų.
Kodėl kas nors gali iššifruoti JWT?
JWT yra užkoduoti, o ne užšifruoti. Naudinga apkrova yra užkoduota Base64URL (neužšifruota), todėl ją gali perskaityti visi. Parašas neleidžia klastoti, o ne skaityti. Niekada nesaugokite jautrių duomenų (slaptažodžių, SSN) JWT naudinguosiuose kroviniuose.
Kodėl kai kuriuose žetonuose trūksta parašo?
Žetonai su alg: nė vienas neturi parašo. Jie yra galiojantys JWT pagal specifikaciją, tačiau nesuteikia jokių autentiškumo garantijų ir neturėtų būti priimti gamyboje.
Ar JWT yra užšifruoti?
Standartiniai JWT kroviniai yra pasirašyti, bet nešifruoti. JWE (JSON Web Encryption, RFC 7516) yra atskiras šifruotų žetonų formatas. Dauguma gamtoje esančių JWT yra JWS (tik pasirašyti).
Ar mano prieigos raktas įkeltas į serverį?
Ne. Dekodavimas vyksta jūsų naršyklėje; prieigos raktas nepalieka jūsų įrenginio.
Kokio ilgio paprastai yra JWT?
Bet kur nuo kelių šimtų iki kelių tūkstančių simbolių. Ilgis priklauso nuo pretenzijų skaičiaus ir dydžio bei parašo ilgio (kuris priklauso nuo algoritmo).