JWT Decoder

JWT ዲኮደር / ኢንኮደር

ማንኛውንም JSON Web Token ዲኮድ በማድረግ ራስጌውን፣ ይዘቱን እና ፊርማውን ይዩ — ወይም በHS256/384/512 አዲስ ቶከን ይፈርሙ። የHMAC ፊርማዎችን በአካባቢው ያረጋግጣል። 100% በአሳሽዎ ውስጥ።

JWT ዲኮደር / ኢንኮደር — TL;DR

ማንኛውንም JSON Web Token ዲኮድ በማድረግ ራስጌውን፣ ይዘቱን እና ፊርማውን ይዩ — ወይም በHS256/384/512 አዲስ ቶከን ይፈርሙ። የHMAC ፊርማዎችን በአካባቢው ያረጋግጣል። 100% በአሳሽዎ ውስጥ።

አይ። ሙሉው መሣሪያ በዚህ ገጽ ውስጥ ያለ JavaScript ነው። ቶከን ይለጥፋሉ፣ ዲኮድ በአሳሽዎ ውስጥ ይከሰታል፣ ባይቶቹ ከታብ በፍጹም አይወጡም። DevTools → Network ይክፈቱ እና ይመልከቱ — በዲኮድ ወይም በማረጋገጫ ጊዜ ምንም ጥያቄዎች አይላኩም። ይህ እውነተኛ የደንበኛ ወይም የምርት ቶከኖችን ለመለጠፍ ደህንነቱ የተጠበቀ ያደርገዋል።

ቶከኑ ሚስጥሩን (HMAC) ወይም የግል ቁልፍ (RSA/ECDSA) በያዘ ሰው የተፈረመ መሆኑን ያረጋግጣል። ይዘቱን አያመስጥርም — ራስጌው እና ይዘቱ በቀላሉ base64url-encoded JSON ናቸው፣ ቶከኑ ያለው ሁሉ ሊያነባቸው ይችላል። ፊርማው ማስተካከልን ብቻ ያቆማል፦ የይዘቱን አንድ ባይት እንኳን ቢቀይሩ፣ ፊርማው ከእንግዲህ አይዛመድም።

JWT ብዙ ጊዜ የተጠቃሚ መታወቂያን፣ ኢሜይልን፣ ስኮፖችን እና አንዳንዴ ከክፍለ ጊዜ ኩኪዎች ጋር እኩል የሆነ ይይዛል — በትክክል ወደ እንግዳ ሰው ሰርቨር መለጠፍ የሌለብዎት ውሂብ። የiKit ዲኮደር በአሳሽ ታብዎ ውስጥ አስቀድሞ የተጫነ JavaScript እንደመሆኑ ይሰራል። በDevTools → Network ሊረጋገጥ ይችላል፦ በዲኮድ ወይም በማረጋገጫ ጊዜ ምንም fetch፣ ምንም XHR፣ ምንም beacon የለም።

ራስጌ (Header)

ይዘት (Payload)

ፊርማ

መደበኛ ክሌሞች


            

የHMAC ፊርማን ያረጋግጡ

ለHS256/384/512 ቶከኖች፣ ፊርማውን በአካባቢው ለማረጋገጥ የመፈረሚያ ሚስጥሩን ይተይቡ። ለRS256/ES256 (RSA/ECDSA)፣ የሰርቨር ላይብረሪ ይጠቀሙ — የሕዝብ ቁልፍ ማረጋገጫ እዚህ የማንቀበለውን PEM ፋይል ይፈልጋል።

ለምን iKit JWT ዲኮደር

JWT ለማረም በጣም ፈጣን መንገድ — ምንም መጫን፣ ምንም ምዝገባ፣ በእርስዎና በቶከንዎ መካከል ሶስተኛ ወገን የለም።

ሶስት ፓነሎች፣ አንድ መለጠፍ

JWT ይለጥፉ፣ የተፈታውን ራስጌ፣ ይዘት እና ፊርማ ጎን ለጎን ይዩ። መደበኛ ክሌሞች (iss, sub, aud, exp, iat) ጊዜ ምልክት ተደርጎባቸው እና ስም ተሰጥቷቸዋል።

የአካባቢ HMAC ማረጋገጫ

ለHS256/384/512 ቶከኖች፣ የአሳሹን Web Crypto API በመጠቀም ፊርማውን ለማረጋገጥ ሚስጥሩን ይተይቡ። ሚስጥሩ ከታብዎ በፍጹም አይወጣም።

የራስዎን ቶከኖች ይፈርሙ

ወደ Encode ሁነታ ይቀይሩ፣ ራስጌውን እና ይዘቱን እንደ JSON ያርትዑ፣ አልጎሪዝም ይምረጡ፣ ሚስጥር ይተይቡ፣ ወዲያውኑ የተፈረመ ቶከን ያግኙ።

በዲዛይን ግላዊነት

የJWT ይዘቶች የተጠቃሚ መታወቂያዎች፣ ኢሜይሎች፣ አንዳንዴ ስኮፖችን ይይዛሉ — በፍጹም ወደ ሰርቨር መሣሪያ አይለጥፉ። የiKit ዲኮደር በአሳሽዎ ውስጥ እንደ JavaScript ይሰራል። በDevTools → Network ውስጥ ሊረጋገጥ ይችላል።

የጊዜ ማብቂያ ግንዛቤ

exp, nbf, iat ያሉ መደበኛ ክሌሞች በሰው ሊነበቡ በሚችሉ ቀኖች እና ግልጽ የEXPIRED / valid ባጅ ምልክት ይደረግባቸዋል፣ ስለዚህ ቶከኑ አሁንም ጥሩ መሆኑን በአንድ እይታ ማወቅ ይችላሉ።

ክፍት ስታንዳርድ፣ ክፍት ኮድ

በአሳሹ ቤተኛ Web Crypto API እና JSON parser ላይ የተገነባ — ከOpenSSL፣ libjwt፣ jose ጋር ተመሳሳይ አልጎሪዝሞች። ባህሪው ከእያንዳንዱ ዘመናዊ JWT ላይብረሪ ጋር ይጣጣማል።

የJWT ዲኮዲንግ በትክክል እንዴት እንደሚሰራ

JWT በነጥቦች የተለዩ ሶስት base64url-encoded JSON ክፍሎች ነው — ያው ብቻ።

  1. 1

    በሁለቱ ነጥቦች ይከፋፍሉ

    JWT እንደ aaa.bbb.ccc ይመስላል። በሁለቱ ቃል በቃል ነጥቦች እንከፋፍላለን፣ የተመሰጠረውን ራስጌ፣ ይዘት እና ፊርማ ይሰጠናል። በትክክል ሶስት ክፍሎች ካላገኘን፣ ቶከኑ የተበላሸ ነው።

  2. 2

    እያንዳንዱን ክፍል Base64URL-decode

    ራስጌ እና ይዘት base64url-encoded UTF-8 JSON ናቸው። Base64URL = Base64 ከ-/_ በምትኩ +//= እና ያለ ፓዲንግ። ቁምፊዎችን መልሰን ከተተካን በኋላ atob እናደርጋለን፣ ከዚያም የተገኘውን ሕብረቁምፊ JSON.parse እናደርጋለን።

  3. 3

    ከመዋቅር ጋር አሳይ

    ራስጌ አልጎሪዝሙን (alg፦ HS256, RS256, ወዘተ.) እና ዓይነቱን ይነግረናል። ይዘቱ ክሌሞቹን ይይዛል — መደበኛዎቹን (iss, sub, aud, exp, iat, nbf, jti) ከማንኛውም ብጁ መስኮች ጋር። እያንዳንዱን በስም በተሰጠው ክፍል ውስጥ እናሳያለን።

  4. 4

    አረጋግጥ (HMAC ብቻ)

    ለHS256/384/512፣ የተየቡትን ሚስጥር በመጠቀም የheader.payload HMAC ድጋሚ እናሰላለን እና በሶስተኛው ክፍል ውስጥ ካለው ፊርማ ጋር እናወዳድራለን። ከHMAC(SHA-256, secret, signing_input) base64url-encoded ጋር ተመሳሳይ ነው። ተዛመደ = ፊርማ ልክ ነው።

የተለመዱ የJWT ማረም ስራዎች

ለJWT ዲኮደር የሚደርሱባቸው እውነተኛ ሁኔታዎች።

ከእርስዎ የማረጋገጫ አቅራቢ የመጣ ቶከንን መመርመር

Auth0, Firebase, Keycloak, AWS Cognito ሁሉም ከመግቢያ በኋላ JWTs ይመልሳሉ። መተግበሪያዎ በትክክል ምን ክሌሞችን እንደሚቀበል ለማየት access_token ይለጥፉ — የተጠቃሚ መታወቂያው ምንድነው፣ ስኮፖቹ ምንድ ናቸው፣ መቼ ያበቃል?

401 Unauthorized ማረም

API ጥያቄዎን ውድቅ ያደርጋል? ቶከኑን ዲኮድ ያድርጉ ለመፈተሽ፦ ጊዜው አልፏል (exp ባለፈው)? የተቀባይ ክሌም (aud) API የሚጠብቀው ነው? ሰጪው (iss) ትክክለኛው ቴናንት ነው?

የWebhook ፊርማን ማረጋገጥ

Stripe, GitHub Apps, Slack የwebhook ይዘቶችን እንደ JWTs ፈርመው ይልካሉ። አንዱን ከተቀበሉ በኋላ፣ ጥያቄው በትክክል ከእነሱ መምጣቱን ለማረጋገጥ ወደ Decode ሁነታ ከጋራ ሚስጥሩ ጋር ይለጥፉት።

የሙከራ ቶከኖችን መፍጠር

ለውህደት ሙከራ ትኩስ የተፈረመ JWT ያስፈልጋል? ወደ Encode ሁነታ ይቀይሩ፣ ይዘቱን ያርትዑ (ብጁ የተጠቃሚ መታወቂያ፣ ብጁ የጊዜ ማብቂያ)፣ HS256 + የሙከራ ሚስጥርዎን ይምረጡ፣ በሚሊሰከንዶች ውስጥ ቶከን ያግኙ። የበስተጀርባ ዙር-ጉዞ የለም።

ለምን የአካባቢ JWT ዲኮዲንግ አስፈላጊ ነው

JWT ብዙ ጊዜ የተጠቃሚ መታወቂያን፣ ኢሜይልን፣ ስኮፖችን እና አንዳንዴ ከክፍለ ጊዜ ኩኪዎች ጋር እኩል የሆነ ይይዛል — በትክክል ወደ እንግዳ ሰው ሰርቨር መለጠፍ የሌለብዎት ውሂብ። የiKit ዲኮደር በአሳሽ ታብዎ ውስጥ አስቀድሞ የተጫነ JavaScript እንደመሆኑ ይሰራል። በDevTools → Network ሊረጋገጥ ይችላል፦ በዲኮድ ወይም በማረጋገጫ ጊዜ ምንም fetch፣ ምንም XHR፣ ምንም beacon የለም።

  • በዲኮድ ወይም በማረጋገጫ ጊዜ ዜሮ የአውታረ መረብ ጥያቄዎች — በDevTools ሊረጋገጥ ይችላል።
  • ለማረጋገጫ የሚተይቡት ሚስጥር በአሳሽ ማህደረ ትውስታ ውስጥ ይቆያል እና በClear / refresh ሲደረግ ይጠፋል።
  • ለምርት ቶከኖች፣ ለደንበኛ መዳረሻ ቶከኖች እና ለwebhook ሚስጥሮች ደህንነቱ የተጠበቀ።

ተዛማጅ መመሪያዎች

ከ iKit ብሎግ ጥልቅ ትምህርቶች እና የመሳሪያ ንፅፅሮች።

ተደጋጋሚ ጥያቄዎች

ይህ ደህንነቱ የተጠበቀ ነው? የእኔ JWTs ይጫናሉ?

አይ። ሙሉው መሣሪያ በዚህ ገጽ ውስጥ ያለ JavaScript ነው። ቶከን ይለጥፋሉ፣ ዲኮድ በአሳሽዎ ውስጥ ይከሰታል፣ ባይቶቹ ከታብ በፍጹም አይወጡም። DevTools → Network ይክፈቱ እና ይመልከቱ — በዲኮድ ወይም በማረጋገጫ ጊዜ ምንም ጥያቄዎች አይላኩም። ይህ እውነተኛ የደንበኛ ወይም የምርት ቶከኖችን ለመለጠፍ ደህንነቱ የተጠበቀ ያደርገዋል።

የJWT ፊርማ በትክክል ምን ያረጋግጣል?

ቶከኑ ሚስጥሩን (HMAC) ወይም የግል ቁልፍ (RSA/ECDSA) በያዘ ሰው የተፈረመ መሆኑን ያረጋግጣል። ይዘቱን አያመስጥርም — ራስጌው እና ይዘቱ በቀላሉ base64url-encoded JSON ናቸው፣ ቶከኑ ያለው ሁሉ ሊያነባቸው ይችላል። ፊርማው ማስተካከልን ብቻ ያቆማል፦ የይዘቱን አንድ ባይት እንኳን ቢቀይሩ፣ ፊርማው ከእንግዲህ አይዛመድም።

የተፈታው ይዘቴ ጥሩ ሆኖ እያለ ለምን ማረጋገጫው ይከሽፋል?

ሶስት የተለመዱ ምክንያቶች፦ (1) የተሳሳተ ሚስጥር — የJWT ሚስጥሮች ለፊደል መጠን ስሱ ናቸው እና ማንኛውም የነጭ ቦታ አለመጣጣም ማረጋገጫን ያበላሻል። (2) የአልጎሪዝም አለመመጣጠን — ራስጌው HS256 ይላል ነገር ግን ሚስጥሩ መጀመሪያ ከHS512 ጋር ጥቅም ላይ ውሏል። (3) ቶከኑ ከተፈረመ በኋላ ተስተካክሏል — አንድ ባይት እንኳን ፊርማውን ይሰብራል። header.alg ከሚጠብቁት ጋር ይዛመድ መሆኑን ያረጋግጡ።

ስለ RS256, ES256 እና ሌሎች የሕዝብ ቁልፍ አልጎሪዝሞች ምን ይባላል?

iKit በአሁኑ ጊዜ የHMAC ማረጋገጫ (HS256/384/512) ብቻ ይደግፋል። RS256 እና ES256 የሕዝብ ቁልፍ ክሪፕቶግራፊን ይጠቀማሉ — ማረጋገጫ የሰጪውን የሕዝብ ቁልፍ በPEM ቅርጸት ይፈልጋል፣ ይህም የበለጠ የተወሳሰበ UI ነው። ለአሁን፣ ዲኮዲንግ አሁንም ይሰራል (የራስጌ/ይዘት/ፊርማ ክፍሎች በትክክል ይታያሉ)፣ ግን የVerify ቁልፍ ያልተደገፈ መሆኑን ይነግርዎታል። የRSA/ECDSA ማረጋገጫ ታቅዷል።

ይህ ከjwt.io እንዴት ይለያል?

ተመሳሳይ ሀሳብ፣ የተለያዩ ነባሪዎች። የiKit ዲኮደር ሙሉ በሙሉ በአሳሽዎ ውስጥ ይሰራል (jwt.io እንዲሁ ያደርጋል፣ ግን የiKit ኮድ ለview-source ክፍት ነው እና ጎራችን ሶስተኛ ወገን ተከታታዮች የሉትም)። ለexp ክሌም ግልጽ የEXPIRED / valid ባጅ፣ የተዋቀሩ የክሌም ማስታወሻዎች (iat / nbf / iss / sub / aud / jti እንደ ሊነበቡ የሚችሉ ረድፎች) እና ሙሉ የተዋቀረ ውጤት ወደ የስህተት ሪፖርት ለመለጠፍ የሚሰጥ የተፈታውን-ሁሉ-ይቅዱ ቁልፍን እንጨምራለን።