§

الصق رمز JWT الخاص بك

يُجرى التحليل والتحقق من التوقيع كلاهما محلياً. لا يُرسل أي شيء عن الرمز إلى أي خادم.
§

الترويسة

json
§

الحمولة

json
§

تحقق من التوقيع

أدخل سرّاً للتحقق من التوقيع.

تَصدُر توكينات UAE Pass عبر تدفّق OpenID Connect مع توقيع RS256 وادعاءات خاصة بهوية المواطن مثل idn_uuid وidn_type ومستوى الثقة LOA. كذلك تستخدم بوابة EmaraTax الاتحادية للضرائب توكينات JWT للوصول إلى واجهات الفوترة، وتُرسِل Nafath السعودية ادعاءات nin وbirthDateHijri ضمن payload مُرمَّز بـ Base64URL. يحتاج المطوّرون في بنوك الراجحي والأهلي ودبي الإسلامي إلى فحص الـ exp وiat وaud للتأكد من صلاحية التوكن ضمن نوافذ زمنية ضيّقة قبل إصدار العمليات. تفك هذه الأداة الترميز وتعرض الادعاءات داخل المتصفح حصرًا، فلا يُرسَل أي توكن مصرفي أو حكومي إلى خادم خارجي خلال عملية الفحص.

ما هو JSON Web Token؟

JSON Web Token (JWT) هو غلاف مدمج وآمن للاستخدام في عناوين URL لحمولة صغيرة من المطالبات. وهو صيغة الاعتماد القياسية لجلسات الويب عديمة الحالة، ورموز الهوية في OAuth/OIDC، ومصادقة واجهات برمجة التطبيقات بين الأنظمة، وروابط الدخول المُوقَّعة. يتألف JWT دوماً من ثلاثة مقاطع base64url تربطها نقاط: header.payload.signature. الترويسة والحمولة بصيغة JSON؛ أما التوقيع فهو رمز مصادقة رسالة (MAC) ثنائي أو توقيع رقمي يغطي المقطعين الأولين.

كيف تعمل JWTs؟

حين تفُك هذه الأداة ترميز رمز، فإنها تتبع المسار الثلاثي ذاته الذي تتبعه كل مكتبة JWT:

  1. تقسيم الرمز عند النقاط إلى ثلاثة مقاطع غير فارغة بالضبط. أي شكل آخر يُعدّ مُشوَّهاً.
  2. فك ترميز المقطعين 0 و1 بـ base64url، ثم تطبيق JSON.parse على كلٍّ منهما. تحمل الترويسة الخوارزمية (alg) ونوع الرمز (typ). وتحمل الحمولة المطالبات (sub، exp، iat، ومفاتيح مخصَّصة).
  3. إذا قُدِّم سرّ، يُعاد حساب رمز MAC على <segment0>.<segment1> باستخدام الخوارزمية الواردة في الترويسة. ثم تُقارن البايتات الناتجة بالمقطع الثالث.
  4. إظهار نتيجة التحقق إلى جانب المطالبات المفكوكة، بما فيها مؤشِّر انتهاء الصلاحية المقروء حُسِب من المطالبة exp.

لماذا نفك ترميز JWTs في المتصفح؟

إن لصق رمز JWT حقيقي وقيد الاستخدام في مصحِّح بعيد يُسرِّب الاعتماد إلى سجلات تلك الخدمة، وحزمة مراقبتها، وأي شريك تُرسَل إليه البيانات. حتى لو ادَّعى موقع الطرف الثالث أنه لا يُسجِّل الرموز، فليس لديك وسيلة للتحقق من ذلك. صُمِّمت هذه الأداة كي لا تضطر أبداً إلى هذا التنازل:

  • صفر شبكة: لا يحوي وقت التشغيل أي استدعاءات لـ fetch أو XMLHttpRequest أو sendBeacon. افتح أدوات المطوّر أثناء فك الترميز والتحقق — ستبقى لوحة الشبكة صامتة.
  • Web Crypto الأصلية: يستخدم التحقق من HMAC الدالتين crypto.subtle.importKey وcrypto.subtle.sign، وهي البدائيات ذاتها التي يستدعيها وقت تشغيلك.
  • نشر ثابت: كل صفحة هي ملف HTML ثابت واحد دون أي نقطة نهاية على الخادم يمكن اختراقها. لا يوجد رمز يمكن تسريبه لأنه لا يوجد خادم يُسرَّب إليه.

ماذا تتحقق هذه الأداة، وما الذي لا تتحقق منه؟

يتحقق الإصدار الأول من هذه الأداة من توقيعات عائلة HMAC-SHA فقط. تحديداً:

  • مدعوم: HS256، HS384، HS512. قدِّم السرّ المشترك وستُعيد الأداة حساب رمز MAC ومقارنته.
  • غير مدعوم بعد: RS256/384/512 (RSA)، ES256/384/512 (ECDSA)، EdDSA، وPS256/384/512 (RSA-PSS). تتطلب هذه الخوارزميات مفتاحاً عاماً بصيغة PEM أو JWK، وقد أُجِّلت عمداً إلى إصدار لاحق.
  • مرفوض: alg: "none". تفُك الأداة ترميز الرمز لكنها تُعلِّمه صراحةً بوصفه غير آمن — فلا يجري أي تحقق من التوقيع، وأي نظام إنتاجي يقبل مثل هذا الرمز يحوي ثغرة أمنية خطيرة.

كيف يبدو مثال على فك ترميز JWT؟

ألصق الرمز المرجعي القانوني من RFC 7519 في حقل الإدخال أعلاه:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

تتفكك الترويسة إلى {"alg":"HS256","typ":"JWT"} والحمولة إلى {"sub":"1234567890","name":"John Doe","iat":1516239022}. أدخل your-256-bit-secret في لوحة التحقق فيُعيد فحص التوقيع نتيجة صالحة. غيِّر حرفاً واحداً من السرّ فيُعيد نتيجة غير صالحة. ولا شيء من ذلك يغادر متصفحك.

هذا هو مفكك JWT الذي كنا نتمنى وجوده حين احتجنا إلى تصحيح رمز في الإنتاج: محترِم للخصوصية، وسريع، ومبني على البدائيات ذاتها التي يستخدمها وقت التشغيل.