JWT Decoder

Kichanganuzi / Kisimbaji cha JWT

Changanua JSON Web Token yoyote ili kuona kichwa, mzigo na saini yake — au saini mpya kwa HS256/384/512. Huthibitisha saini za HMAC ndani ya kifaa. 100% ndani ya kivinjari chako.

Kichanganuzi / Kisimbaji cha JWT — TL;DR

Changanua JSON Web Token yoyote ili kuona kichwa, mzigo na saini yake — au saini mpya kwa HS256/384/512. Huthibitisha saini za HMAC ndani ya kifaa. 100% ndani ya kivinjari chako.

Hapana. Zana nzima ni JavaScript ndani ya ukurasa huu. Bandika token, ufanunaji unafanyika ndani ya kivinjari chako, baiti hazitoki kamwe katika kichupo. Fungua DevTools → Network na uangalie — hakuna maombi yanayotumwa wakati wa kuchanganua au kuthibitisha. Hiyo inafanya iwe salama kubandika token halisi za wateja au za uzalishaji.

Inathibitisha kwamba token ilisainiwa na mtu anayeshikilia siri (HMAC) au ufunguo wa faragha (RSA/ECDSA). HAIFICHI mzigo — kichwa na mzigo ni JSON tu iliyosimbwa kwa base64url, mtu yeyote mwenye token anaweza kuyasoma. Saini inazuia tu kuchezewa: ukibadilisha baiti moja tu ya mzigo, saini hailingani tena.

JWT mara nyingi hubeba kitambulisho cha mtumiaji, barua pepe, wigo, na wakati mwingine kile kinacholingana na vidakuzi vya kipindi — data hasa ambayo HUPASWI kubandika kwenye seva ya mgeni. Kichanganuzi cha iKit hukimbia kama JavaScript iliyokwisha pakiwa katika kichupo chako cha kivinjari. Kinathibitishika katika DevTools → Network: hakuna fetch, hakuna XHR, hakuna beacon wakati wa kuchanganua au kuthibitisha.

Kichwa

Mzigo

Saini

Madai ya kawaida


            

Thibitisha saini ya HMAC

Kwa token za HS256/384/512, andika siri ya kusaini ili kuthibitisha saini ndani ya kifaa. Kwa RS256/ES256 (RSA/ECDSA), tumia maktaba ya upande wa seva — uthibitishaji wa ufunguo wa umma unahitaji faili la PEM ambalo halikubaliki hapa.

Kwa nini iKit JWT Decoder

Njia ya haraka zaidi ya kutatua JWT — bila kupakia, bila kujisajili, bila mtu wa tatu kati yako na token yako.

Paneli tatu, ubandikaji mmoja

Bandika JWT, ona kichwa, mzigo na saini iliyochanganuliwa pamoja. Madai ya kawaida (iss, sub, aud, exp, iat) yamewekwa muhuri wa muda na lebo.

Uthibitishaji wa HMAC ndani ya kifaa

Kwa token za HS256/384/512, andika siri ili kuthibitisha saini kwa kutumia API ya Web Crypto ya kivinjari. Siri haitoki kamwe katika kichupo chako.

Saini token zako mwenyewe

Badilisha hadi modi ya Encode, hariri kichwa na mzigo kama JSON, chagua algoriti, andika siri, na upate token iliyosainiwa papo hapo.

Faragha kwa muundo

Mizigo ya JWT ina vitambulisho vya watumiaji, barua pepe, wakati mwingine wigo — kamwe usibandike kwenye zana ya seva. Kichanganuzi cha iKit hukimbia kama JavaScript ndani ya kivinjari chako. Kinathibitishika katika DevTools → Network.

Ufahamu wa muda wa kuisha

Madai ya kawaida kama exp, nbf, iat yameangaziwa na tarehe zinazosomeka kwa binadamu na alama wazi ya IMEKWISHA / halali ili uweze kujua kwa haraka kama token bado ni nzuri.

Kiwango wazi, msimbo wazi

Imejengwa juu ya API asili ya Web Crypto na kichanganuzi cha JSON cha kivinjari — algoriti zile zile kama OpenSSL, libjwt, jose. Tabia inalingana na kila maktaba ya kisasa ya JWT.

Jinsi ufanunaji wa JWT unavyofanya kazi hasa

JWT ni sehemu tatu za JSON zilizosimbwa kwa base64url zikitenganishwa na nukta — basi.

  1. 1

    Gawanya kwa nukta mbili

    JWT inaonekana kama aaa.bbb.ccc. Tunagawanya kwa nukta mbili halisi, tukipata kichwa, mzigo na saini iliyosimbwa. Iwapo hatupati sehemu tatu hasa, token ina muundo mbaya.

  2. 2

    Funua Base64URL kila sehemu

    Kichwa na mzigo ni JSON ya UTF-8 iliyosimbwa kwa base64url. Base64URL = Base64 ikitumia -/_ badala ya +//= na bila padding. Tunafanya atob baada ya kurudisha herufi, kisha JSON.parse kwa mfuatano unaopatikana.

  3. 3

    Onyesha kwa muundo

    Kichwa kinatuambia algoriti (alg: HS256, RS256, n.k.) na aina. Mzigo una madai — ya kawaida (iss, sub, aud, exp, iat, nbf, jti) pamoja na sehemu zozote za kawaida. Tunaonyesha kila moja katika sehemu yenye lebo.

  4. 4

    Thibitisha (HMAC pekee)

    Kwa HS256/384/512, tunahesabu upya HMAC ya header.payload tukitumia siri uliyoandika na kulinganisha na saini katika sehemu ya tatu. Sawa na HMAC(SHA-256, secret, signing_input) iliyosimbwa kwa base64url. Kulingana = saini halali.

Kazi za kawaida za kutatua JWT

Hali halisi ambapo utahitaji kichanganuzi cha JWT.

Kukagua token kutoka kwa mtoa huduma wako wa uthibitishaji

Auth0, Firebase, Keycloak, AWS Cognito wote hurudisha JWT baada ya kuingia. Bandika access_token ili kuona madai gani programu yako inapokea hasa — kitambulisho cha mtumiaji ni nini, wigo gani, inaisha lini?

Kutatua 401 Unauthorized

API inakataa ombi lako? Changanua token ili kuangalia: imekwisha (exp iko nyuma)? Dai la hadhira (aud) ndilo API inatarajia? Mtoaji (iss) ni mpangaji sahihi?

Kuthibitisha saini ya webhook

Stripe, GitHub Apps, Slack hutuma mizigo ya webhook iliyosainiwa kama JWT. Baada ya kupokea, bandika kwenye modi ya Decode pamoja na siri ya pamoja ili kuthibitisha kwamba ombi liliotoka kwao kweli.

Kuzalisha token za majaribio

Unahitaji JWT mpya iliyosainiwa kwa jaribio la ujumuishaji? Badilisha hadi modi ya Encode, hariri mzigo (kitambulisho cha mtumiaji cha kawaida, muda wa kuisha wa kawaida), chagua HS256 + siri yako ya jaribio, pata token kwa milisekunde. Bila kurudi kwenye seva.

Kwa nini ufanunaji wa JWT ndani ya kifaa ni muhimu

JWT mara nyingi hubeba kitambulisho cha mtumiaji, barua pepe, wigo, na wakati mwingine kile kinacholingana na vidakuzi vya kipindi — data hasa ambayo HUPASWI kubandika kwenye seva ya mgeni. Kichanganuzi cha iKit hukimbia kama JavaScript iliyokwisha pakiwa katika kichupo chako cha kivinjari. Kinathibitishika katika DevTools → Network: hakuna fetch, hakuna XHR, hakuna beacon wakati wa kuchanganua au kuthibitisha.

  • Sifuri maombi ya mtandao wakati wa kuchanganua au kuthibitisha — yanaweza kuthibitishwa katika DevTools.
  • Siri unayoandika kwa uthibitishaji inabaki katika kumbukumbu ya kivinjari na inafutwa kwa Futa / kuonyesha upya.
  • Salama kwa token za uzalishaji, token za ufikiaji za wateja, na siri za webhook.

Miongozo inayohusiana

Mafunzo ya kina na ulinganishaji wa zana kutoka blogu ya iKit.

Maswali Yanayoulizwa Mara kwa Mara

Je, ni salama? Je, JWT zangu zinapakiwa?

Hapana. Zana nzima ni JavaScript ndani ya ukurasa huu. Bandika token, ufanunaji unafanyika ndani ya kivinjari chako, baiti hazitoki kamwe katika kichupo. Fungua DevTools → Network na uangalie — hakuna maombi yanayotumwa wakati wa kuchanganua au kuthibitisha. Hiyo inafanya iwe salama kubandika token halisi za wateja au za uzalishaji.

Saini ya JWT inathibitisha nini hasa?

Inathibitisha kwamba token ilisainiwa na mtu anayeshikilia siri (HMAC) au ufunguo wa faragha (RSA/ECDSA). HAIFICHI mzigo — kichwa na mzigo ni JSON tu iliyosimbwa kwa base64url, mtu yeyote mwenye token anaweza kuyasoma. Saini inazuia tu kuchezewa: ukibadilisha baiti moja tu ya mzigo, saini hailingani tena.

Kwa nini mzigo wangu uliochanganuliwa unaonekana sawa lakini uthibitishaji unashindwa?

Sababu tatu za kawaida: (1) siri batili — siri za JWT zinazingatia herufi kubwa/ndogo na tofauti yoyote ya nafasi huvunja uthibitishaji. (2) Kutolingana kwa algoriti — kichwa kinasema HS256 lakini siri ilitumika na HS512 awali. (3) Token ilirekebishwa baada ya kusainiwa — hata baiti moja huvunja saini. Hakikisha header.alg inalingana na unachotarajia.

Vipi kuhusu RS256, ES256 na algoriti nyingine za ufunguo wa umma?

iKit kwa sasa inakubali uthibitishaji wa HMAC (HS256/384/512) tu. RS256 na ES256 hutumia kriptografia ya ufunguo wa umma — uthibitishaji unahitaji ufunguo wa umma wa mtoaji katika muundo wa PEM, ambao ni UI iliyo ngumu zaidi. Kwa sasa, ufanunaji bado unafanya kazi (sehemu za kichwa/mzigo/saini zinaonyesha sawasawa), lakini kitufe cha Thibitisha kitakuambia kwamba haikubaliki. Uthibitishaji wa RSA/ECDSA umepangwa.

Hii ina tofauti gani na jwt.io?

Wazo lile lile, mipangilio tofauti. Kichanganuzi cha iKit hukimbia kabisa ndani ya kivinjari chako (jwt.io pia hufanya hivyo, lakini msimbo wa iKit uko wazi kwa view-source na kikoa chetu hakina vifuatiliaji vya watu wengine). Tunaongeza alama wazi ya IMEKWISHA / halali kwa dai la exp, maelezo ya madai yaliyopangwa (iat / nbf / iss / sub / aud / jti kama safu zinazosomeka), na kitufe cha kunakili-kila-kitu-kilichochanganuliwa kinachokupa matokeo kamili yaliyopangwa kwa kubandika kwenye ripoti ya hitilafu.