JWT ڈیکوڈر

JSON Web Token (JWT) کو ڈیکوڈ کریں تاکہ اس کا ہیڈر، پے لوڈ، اور دستخط دیکھ سکیں۔ تصدیق اور اجازت نامے میں استعمال ہونے والے JWT ٹوکنز کی ڈیبگنگ اور جانچ کے لیے مفید ہے۔ آپ کے JWT کے مشمولات کہیں محفوظ نہیں کیے جائیں گے۔

پے لوڈ (دعوے):

ہیڈر (سائننگ الگورتھم اور ٹوکن کی قسم):

دستخط:

دستخط Base64URL انکوڈ شدہ ڈیٹا کے طور پر دکھایا گیا ہے۔ اس ٹول سے دستخط کی تصدیق نہیں کی جاتی۔

JSON Web Tokens کے بارے میں مزید

JWT فارمیٹ

JSON Web Token (JWT) دو فریقوں کے درمیان منتقل ہونے والے دعووں کی نمائندگی کا ایک مختصر، URL محفوظ ذریعہ ہے۔ یہ نقطوں سے الگ تین Base64URL انکوڈ شدہ حصوں پر مشتمل ہے: header.payload.signature۔ ہیڈر میں عام طور پر ٹوکن کی قسم (JWT) اور سائننگ الگورتھم ہوتا ہے۔ پے لوڈ میں دعوے ہوتے ہیں—کسی ادارے (عام طور پر صارف) کے بارے میں بیانات اور اضافی میٹا ڈیٹا۔ دستخط اس بات کی تصدیق کے لیے استعمال ہوتا ہے کہ پیغام راستے میں تبدیل نہیں ہوا۔

JOSE (JSON Object Signing and Encryption)

JWT بڑے JOSE (JSON Object Signing and Encryption) فریم ورک کا حصہ ہے، جو JSON پر مبنی ڈیٹا کو محفوظ بنانے کا معیاری طریقہ فراہم کرتا ہے۔ JOSE میں کئی متعلقہ تفصیلات شامل ہیں: JWS (JSON Web Signature) دستخط شدہ ٹوکنز کے لیے، JWE (JSON Web Encryption) انکرپٹ شدہ ٹوکنز کے لیے، JWK (JSON Web Key) کرپٹوگرافک کیز کی نمائندگی کے لیے، اور JWA (JSON Web Algorithms) کرپٹوگرافک الگورتھمز کی وضاحت کے لیے۔

JSON Web Signature (JWS)

زیادہ تر JWTs جو آپ کو ملتے ہیں وہ JWS ٹوکنز ہیں—وہ دستخط شدہ ہوتے ہیں لیکن انکرپٹ شدہ نہیں۔ اس کا مطلب ہے کہ کوئی بھی Base64URL ڈیکوڈنگ سے پے لوڈ پڑھ سکتا ہے، لیکن دستخط کو باطل کیے بغیر اسے تبدیل نہیں کر سکتا۔ JWS سالمیت اور صداقت فراہم کرتا ہے: آپ تصدیق کر سکتے ہیں کہ ٹوکن کسی قابل اعتماد فریق نے جاری کیا تھا اور اس میں چھیڑ چھاڑ نہیں ہوئی۔

سائننگ الگورتھمز

JWS ٹوکنز پر دستخط کرنے کے لیے مختلف کرپٹوگرافک الگورتھمز سپورٹ کرتا ہے۔ یہ دو زمروں میں آتے ہیں: ہم آہنگ الگورتھمز (دستخط اور تصدیق کے لیے ایک ہی کلید) اور غیر ہم آہنگ الگورتھمز (دستخط کے لیے نجی کلید، تصدیق کے لیے عوامی کلید)۔

HMAC الگورتھمز (ہم آہنگ)

HS256، HS384، اور HS512 بالترتیب SHA-256، SHA-384، یا SHA-512 کے ساتھ HMAC (Hash-based Message Authentication Code) استعمال کرتے ہیں۔ یہ ہم آہنگ الگورتھمز ہیں—ٹوکن پر دستخط اور تصدیق دونوں کے لیے ایک ہی خفیہ کلید استعمال ہوتی ہے۔ HMAC الگورتھمز تیز اور آسان ہیں لیکن محفوظ کلید کی تقسیم کی ضرورت ہوتی ہے کیونکہ دونوں فریقوں کو ایک ہی خفیہ کلید چاہیے۔

RSA الگورتھمز (غیر ہم آہنگ)

RS256، RS384، اور RS512 SHA-256، SHA-384، یا SHA-512 کے ساتھ RSASSA-PKCS1-v1_5 استعمال کرتے ہیں۔ PS256، PS384، اور PS512 RSASSA-PSS (احتمالی دستخط اسکیم) استعمال کرتے ہیں۔ RSA الگورتھمز دستخط کے لیے نجی کلید اور تصدیق کے لیے عوامی کلید استعمال کرتے ہیں۔ اس سے تصدیقی کلید کو سیکیورٹی سے سمجھوتہ کیے بغیر عوامی طور پر شیئر کیا جا سکتا ہے—یہ تقسیم شدہ نظاموں کے لیے مثالی ہے جہاں متعدد سروسز کو ٹوکنز کی تصدیق کرنی ہو۔

Elliptic Curve الگورتھمز (غیر ہم آہنگ)

ES256، ES384، اور ES512 بالترتیب P-256، P-384، یا P-521 curves کے ساتھ ECDSA (Elliptic Curve Digital Signature Algorithm) استعمال کرتے ہیں۔ EC الگورتھمز RSA جتنی ہی سیکیورٹی فراہم کرتے ہیں لیکن چھوٹی کلید کے سائز کے ساتھ، جس سے چھوٹے دستخط اور تیز تر آپریشنز ہوتے ہیں۔ ES256 اپنی کارکردگی کی وجہ سے جدید ایپلیکیشنز کے لیے تیزی سے مقبول ہو رہا ہے۔

JSON Web Encryption (JWE)

جبکہ JWS دستخط شدہ ٹوکنز فراہم کرتا ہے، JWE انکرپٹ شدہ ٹوکنز فراہم کرتا ہے جہاں پے لوڈ خفیہ ہوتا ہے۔ JWE ٹوکنز میں تین کی بجائے پانچ حصے ہوتے ہیں: ہیڈر، انکرپٹ شدہ کلید، ابتدائی ویکٹر، سائفر ٹیکسٹ، اور تصدیقی ٹیگ۔ JWE مختلف انکرپشن الگورتھمز سپورٹ کرتا ہے بشمول AES-GCM اور AES-CBC with HMAC۔ نوٹ کریں کہ یہ ڈیکوڈر صرف JWS ٹوکنز ہینڈل کرتا ہے؛ JWE ٹوکنز کو مناسب کلید کے ساتھ ڈیکرپشن کی ضرورت ہوتی ہے۔

RFC تفصیلات

JWT اور JOSE معیارات کئی IETF RFCs میں بیان کیے گئے ہیں:

  • RFC 7519 JSON Web Token (JWT) کی تعریف کرتا ہے
  • RFC 7515 JSON Web Signature (JWS) کی تعریف کرتا ہے
  • RFC 7516 JSON Web Encryption (JWE) کی تعریف کرتا ہے
  • RFC 7517 JSON Web Key (JWK) کی تعریف کرتا ہے
  • RFC 7518 JSON Web Algorithms (JWA) کی تعریف کرتا ہے۔

متعلقہ ٹولز