فك ترميز JWT
اطّلع على الترويسة والادعاءات وتاريخ انتهاء صلاحية JSON Web Token. الرمز المميز بيانات اعتماد صالحة للاستخدام، لذا لا يُرسَل أي شيء هنا إلى أي مكان ولا يُخزَّن، أبدًا.
- لا يُخزَّن أبدًا
- لا طابور ولا انتظار
- دون تسجيل ودون علامة مائية
رمزك المميز (token) لا يغادر هذه الصفحة أبدًا. يُفك ترميزه هنا مباشرةً، دون أي طلب إلى أي خادم — وهذا مهم، لأن JWT يكون عادةً بيانات اعتماد صالحة للاستخدام. افصل شبكة Wi-Fi بعد تحميل الصفحة وسيستمر فك الترميز: لا يُرسَل أي شيء.
لا بأس بالبادئة «Bearer » — فهي تُتجاهل.
كيف تعمل الأداة
الصق الرمز المميز
مع البادئة «Bearer » أو دونها. يبقى في هذه الصفحة؛ ولا يُرسَل أي طلب.
اقرأ الأجزاء الثلاثة
الترويسة والحمولة والتوقيع، كلٌّ منها مفكوك الترميز ومنسَّق. تتحول الطوابع الزمنية إلى تواريخ حقيقية، وتعرف كم تبقّى من الوقت.
راجع التحذيرات
الرموز منتهية الصلاحية، وغياب تاريخ الانتهاء، وخوارزمية «none» وغيرها من المشكلات يُنبَّه إليها مع شرح معناها.
ما الذي يُفحص، وما الذي يُقرأ فقط
كل ما في هذه الصفحة باستثناء مقارنتين للتاريخ هو نقل حرفي. تُفك ترميز الترويسة والحمولة من Base64URL وتُطبعان؛ ويُنسخ التوقيع كما هو ولا يُمَس أبدًا، لأنه لا يوجد مفتاح هنا ولا تجري أي عملية تشفير على الإطلاق. الحكمان الوحيدان اللذان تُصدرهما الصفحة عمليتان حسابيتان مقابل ساعة جهازك أنت — ادعاء انتهاء الصلاحية مقارنةً بالوقت الحالي، وادعاء «غير صالح قبل» مقارنةً بالوقت الحالي. ولا يُترك أي هامش لفرق التوقيت بين الساعات، بينما يسمح الخادم الذي يفحص الرمز نفسه عادةً بدقيقة أو اثنتين. فحاسوب محمول تتقدم ساعته خمس دقائق سيعرض لك رمزًا صالحًا على أنه منتهي الصلاحية، والرمز سليم تمامًا.
تفصيلان في التحليل يحددان ما تراه فعلًا. تُقرأ ادعاءات الوقت فقط حين تصل كأرقام JSON: فالرمز المميز الذي كُتب تاريخ انتهائه كسلسلة نصية «1699999999» يُعامَل كأنه بلا تاريخ انتهاء إطلاقًا، ويحصل على التحذير الذي يقول إن صلاحيته لا تنتهي من تلقاء نفسها — وهذا عكس الحقيقة. كما تُحلَّل الحمولة بمحلل JSON المدمج في المتصفح لا بالمحلل الذي يحافظ على الأرقام في أدوات JSON لدينا، لذا فإن ادعاءً رقميًا من 64 بت، مثل معرّف مستخدم بنمط snowflake في حقل subject، يُعرض مع تقريب خاناته الأخيرة. ولهذا السبب تحديدًا تكون المعرّفات في JWT نصوصًا عادةً؛ وحين لا يكون أحدها كذلك، اقرأه من الحمولة الخام لا من جدول الادعاءات.
الرمز المميز المكوّن من خمسة أقسام يُرفض باعتباره JWE مشفّرًا، ويُتخذ هذا الحكم بناءً على عدد الأقسام وحده لا بقراءة الترويسة — وهو صحيح عمليًا، ومن المفيد أن تعرف أنه اختصار. وأي شيء لا يتكوّن من ثلاثة أقسام يُرفض مباشرة، وكذلك الحمولة التي يُفك ترميزها إلى مصفوفة JSON أو سلسلة نصية مجردة بدلًا من كائن. وتظهر تحذيرات لخوارزمية «none» ولعائلة HS، حيث مفتاح التوقيع سرّ مشترك لا مفتاح عام. أما الرموز الموقَّعة بـ RS أو ES أو PS فلا تثير أي تحذير، لذا فإن صمت هذه الصفحة يعني غياب نمط معروف بأنه سيئ، لا موافقة.
عندما تحتاج إلى شيء آخر
لا يُخزَّن أي شيء هنا، وهذا هو السبب الوحيد الذي يبرر وجود هذه الصفحة — ومع ذلك فهي ليست العادة التي ينبغي بناؤها. فادعاء الخصوصية لا يمكن التحقق منه بقراءته: افصل الاتصال بعد تحميل الصفحة وشاهد فك الترميز يستمر في العمل، وهذا بالضبط ما لا تستطيعه أداة يقف خلفها خادم. وإذا كان رمز مميز لصقته في مكان لا تستطيع التحقق منه لا يزال صالحًا، فغيّره بدلًا من أن تفكر في الأمر. تغييره عمل دقيقة. والبديل جدال طويل مع نفسك حول بيانات اعتماد لا تزال تفتح الباب. ولقراءة رمز مميز على جهازك بدلًا من علامة تبويب في المتصفح، فالحمولة سطر واحد في الطرفية: اقتطع الحقل الثاني المفصول بالنقاط، وفك ترميزه بـ base64 -d، ومرّره عبر jq.
حين يكون السؤال هل الرمز المميز أصلي لا ماذا يقول، فهذه الصفحة هي الصفحة الخطأ بحكم تصميمها، وكذلك كل أداة فك ترميز أخرى عبر الإنترنت. التحقق مكانه حيث يوجد المفتاح أصلًا — مكتبة JWT في لغتك على خادمك، مع التحقق مقابل JWKS الذي تنشره الجهة المُصدِرة. هذا بضعة أسطر، وهو الجواب الوحيد الذي يعني شيئًا، وأي موقع يعرض أن يفعل ذلك نيابةً عنك يطلب منك السر الوحيد الذي لا ينبغي أن تعطيه لأي موقع ويب.
الأسئلة الشائعة
هل يُرسَل الرمز المميز الخاص بي إلى أي مكان؟
لا — وفي هذه الصفحة هذا هو جوهر الأمر كله لا مجرد ميزة. فـ JWT يكون عادةً بيانات اعتماد صالحة: من يحمله يستطيع التصرف باسمك حتى تنتهي صلاحيته. ولصقه في أداة فك ترميز عبر الإنترنت ترسله إلى خادم يعني تسليم مفتاح صالح، ولا يمكن لأي وعد بعدم التسجيل أن يمحو ذلك. أداة فك الترميز هذه مكتوبة بـ JavaScript عادي في الصفحة التي تنظر إليها. لا يُخزَّن أي شيء، ولا يُسجَّل أي شيء، ولا يُرسَل أي طلب. بعد تحميل الصفحة، أوقف تشغيل Wi-Fi وستعمل تمامًا بالطريقة نفسها. هذه أبسط طريقة لتتأكد من ادعاء الخصوصية بنفسك بدلًا من أن تكتفي بكلامنا.
هل تتحقق الأداة من التوقيع؟
لا، ولا تستطيع أي أداة فك ترميز عبر الإنترنت فعل ذلك بصدق دون مفتاح التوقيع الخاص بك. فك الترميز والتحقق عمليتان مختلفتان تمامًا. فك الترميز مجرد إزالة ترميز Base64 عن الرمز المميز — يستطيع أي شخص فعله بأي رمز، ولا يثبت شيئًا على الإطلاق عن كون الرمز أصليًا. أما التحقق فيعني إعادة حساب التوقيع بالسر أو المفتاح العام الذي وقّعه، وهذا المفتاح لا ينبغي لصقه في أي موقع ويب أبدًا. ما تراه هنا هو ما «يدّعيه» الرمز المميز. أما هل هذه الادعاءات جديرة بالثقة فسؤال لا يجيب عنه إلا خادمك، الذي يملك المفتاح.
هل يستطيع أحد قراءة JWT أرسله إليه؟
نعم — بالكامل، وهذا ما يفاجئ كثيرين. فـ JWT موقَّع لا مشفَّر. الترويسة والحمولة مكتوبتان بـ Base64، وهو ترميز لا سرّ فيه، لذا يستطيع أي شخص يعترض الرمز المميز قراءة كل ادعاء بداخله. التوقيع يمنعهم من «تغيير» الرمز؛ لكنه لا يفعل شيئًا لمنعهم من «قراءته». لا تضع أبدًا أي شيء سري في حمولة JWT: لا كلمات مرور، ولا أرقام بطاقات، ولا بيانات شخصية لن تكتبها على بطاقة بريدية.
ماذا يعني تحذير خوارزمية «none»؟
أن الرمز المميز يقول إنه غير موقَّع، وهذا من أخطر ما تُبلغ عنه هذه الصفحة. `alg: none` ثغرة موثّقة لتجاوز المصادقة: يأخذ المهاجم رمزًا حقيقيًا، ويغيّر الحمولة لتقول إنه مسؤول، ويضبط الخوارزمية على «none»، ويحذف التوقيع، فتقبله المكتبة التي تثق بالترويسة. كل مكتبات JWT الجادة تمنع هذا افتراضيًا الآن، لكن التطبيقات التي تثق بـ `alg` لا تزال موجودة. والرمز المميز الذي يصل مع `alg: none` يجب التعامل معه كهجوم حتى يثبت العكس.
كيف أقرأ تاريخ انتهاء الصلاحية؟
الأداة تفعل ذلك نيابةً عنك. `exp` و`iat` و`nbf` طوابع زمنية بتوقيت Unix — عدد الثواني منذ 1970 — ولا يمكن قراءتها كأرقام خام. يُعرض كلٌّ منها كتاريخ حقيقي بمنطقتك الزمنية، مع المدة التي مضت أو المتبقية، ويُذكر انتهاء صلاحية الرمز صراحةً بدلًا من تركك تستنتجه. ويُنبَّه أيضًا إلى الرمز المميز الذي لا يحتوي على `exp` إطلاقًا: فـ JWT الذي لا تنتهي صلاحيته لا يمكن إبطاله بانتهاء الصلاحية، ويظل صالحًا ما دام مفتاح التوقيع صالحًا.
الرمز المميز الخاص بي يتكوّن من خمسة أجزاء لا ثلاثة
إذن فهو JWE — مشفَّر لا موقَّع فقط — ولا يمكن فعلًا قراءة محتواه دون مفتاح فك التشفير. تتعرف الصفحة على هذا الشكل وتخبرك بذلك بدلًا من أن تعرض عليك كلامًا بلا معنى. خمسة أجزاء تعني أن الحمولة نص مشفَّر حقيقي؛ فلا يوجد ما يُفك ترميزه.
ما الادعاءات القياسية؟
الادعاءات المسجّلة هي: `iss` من أصدره، و`sub` من يخصّه (عادةً معرّف مستخدم)، و`aud` لمن هو موجّه، و`exp` متى تنتهي صلاحيته، و`nbf` غير صالح قبل، و`iat` متى صدر، و`jti` معرّف فريد للرمز المميز. وكل ما عدا ذلك خاص بمن بنى النظام. ويُوسَم كل ادعاء مسجّل بمعناه في النتيجة، فلا تحتاج إلى تذكّر أي اختصار من ثلاثة أحرف يعني ماذا.
معلومة مفيدة: هذه الأداة تفك الترميز ولا تتحقق. توقيع JWT يثبت أن الرمز المميز لم يُعدَّل، والتحقق منه يحتاج إلى السر أو المفتاح العام الخاص بالجهة المُصدِرة — وهو ما لا ينبغي لصقه في صفحة ويب أبدًا. تعامل مع كل ما يُعرض هنا على أنه ادعاء لا دليل، وتحقق منه على خادمك.
أضِف هذه الأداة إلى موقعك
مجانية لأي مدونة أو صفحة فصل دراسي أو مقالة مساعدة. الصق مقتطفًا واحدًا وسيتمكن زوارك من استخدامها مباشرةً على صفحتك.