فاكّ رموز JWT
فُكّ ترويسة رمز JSON وحمولته محليًا، مع ترجمة تواريخ الانتهاء إلى أوقات مقروءة.
تتم المعالجة على جهازك — بلا رفع
مفكوك في متصفّحك. ورمز JWT بيان اعتماد حيّ — ولصق واحد في موقع يرفعه يسلّم كل ما يخوّله.
الصق رمزًا. تُفكّ هنا ترويسته وحمولته ووقت انتهائه — في هذه الصفحة، ولا تُرسَل إلى أي مكان أبدًا.
كيف تفكّ رمز JWT
- الصق الرمز.
- اقرأ الترويسة والادّعاءات ووقت الانتهاء.
- ولا شيء يُرسَل إلى أي مكان وأنت تفعل ذلك.
كيف يعمل
رمز JWT ثلاثة مقاطع Base64 آمنة للروابط تفصلها نقاط: ترويسة تقول أي خوارزمية وقّعته، وحمولة من الادّعاءات، وتوقيع على الاثنين الأولين. والأولان مرمَّزان لا معمَّيان، ففكّهما ليس إلا Base64 يتبعه تحليل JSON.
وكل من يحمل الرمز يستطيع قراءة الحمولة. وتلك خاصّية تصميم لا عيب — لكنها تعني أن رمز JWT يجب ألّا يحمل شيئًا سرّيًا أبدًا. فالرموز التي فيها معرّفات داخلية وعناوين بريد وأسماء أدوار مقروءة لكل طرف تمرّ به، بما فيه المتصفّح الذي تُخزَّن فيه.
وفكّ الترميز ليس تحقّقًا. فالتوقيع هو ما يثبت أن الرمز صدر ممّن يدّعي وأنه لم يُبدَّل، وفحصه يتطلّب السرّ أو المفتاح العامّ — وهو ما لا يملكه إلا الخادم المُصدِر. وأي فاكّ يدّعي التحقّق من رمز إمّا يملك مفتاحك أو لا يتحقّق حقًا.
وادّعاءات الطوابع الزمنية — iat وnbf وexp — ثوانٍ بتوقيت يونكس، مترجَمة هنا إلى أوقات UTC مقروءة، مع وسم الانتهاء مقابل اللحظة الحالية.
مثال عملي
اضغط حمّل رمزًا للتجربة. تعرض الترويسة HS256 وJWT؛ وتعرض الحمولة موضوعًا واسمًا ودورًا وطابعين زمنيين.
وادّعاء role: admin يوضّح النقطة المتعلّقة بالسرّية. فكل من يتعامل مع هذا الرمز يراه — بما في ذلك المتصفّح الذي يُخزَّن فيه، وأي وكيل يمرّ به، وأي سجلّ يدوّن الطلب. ورمز JWT بيان اعتماد لحامله: فمن يملكه يستطيع استعماله.
ولهذا بالضبط ينبغي أن يكون الفاكّ محلّيًا. فالحركة المعتادة في تتبّع الأخطاء هي لصق رمز في فاكّ على الإنترنت أثناء مطاردة علّة مصادقة. وذلك الرمز حيّ، ويخوّل كل ما يستطيع المستخدم فعله، وقد أُرسل للتوّ إلى طرف ثالث. فإن سبق أن فعلتها — ومعظم المطوّرين فعلوها — فبدّل السرّ.
وسطر الانتهاء أسرع جواب عن «لماذا يخفق هذا الطلب». فـexp في الماضي يظهر منتهيًا، وذلك آخر التحقيق. والصورة الشائعة الأخرى رمز صالح لكن nbf فيه في المستقبل، عادةً لأن ساعتَي خادمين لا تتّفقان.
ولفهم الترميز الكامن تحته، أداة Base64 تفكّ أي مقطع مفرد يدويًا.
أسئلة
هل يُرسَل رمزي إلى أي مكان؟
لا. يُفكّ في متصفّحك. وهذا هو السبب الكامل لاستعمال فاكّ محلّي — فرمز JWT بيان اعتماد حيّ، ولصق واحد في موقع يرفعه كشفٌ له.
هل يتحقّق هذا من التوقيع؟
لا. فالتحقّق يحتاج السرّ أو المفتاح العامّ، ولا يملكه إلا الخادم المُصدِر. وفكّ الترميز يعرض ما يقوله الرمز؛ ولا يستطيع أن يعرض هل تصدّقه.
هل الحمولة معمّاة؟
لا، مرمَّزة فقط. فكل من يملك الرمز يقرأ كل ادّعاء فيه، ولهذا يجب ألّا يحوي رمز JWT شيئًا سرّيًا أبدًا.
لصقت رمزًا حقيقيًا في فاكّ على الإنترنت. ماذا أفعل؟
عامله مكشوفًا. بدّل سرّ التوقيع إن كنت تتحكّم بالمُصدِر، وأبطل الجلسة. ومعظم المطوّرين فعلوا هذا مرة على الأقلّ.
ماذا تعني iat وnbf وexp؟
صدر في، وغير صالح قبل، وينتهي — وكلها طوابع زمنية بتوقيت يونكس بالثواني. وتُعرض هنا أوقات UTC مقروءة مع فحص الانتهاء مقابل الآن.
لماذا يخفق رمزي رغم أنه لم ينتهِ؟
كثيرًا ما يكون ادّعاء nbf في المستقبل قليلًا لأن ساعتَي خادمين لا تتّفقان. افحص ذلك السطر كما تفحص الانتهاء.
ماذا يعني حقل alg؟
خوارزمية التوقيع — HS256 لسرّ مشترك، وRS256 لزوج مفاتيح عامّ. والرمز الذي فيه alg بقيمة "none" غير موقَّع ولا ينبغي الوثوق به أبدًا.
هل أحرّر الحمولة وأعيد توقيعها؟
ليس هنا. فتغيير ادّعاء يُبطل التوقيع، وإنتاج توقيع صالح يحتاج المفتاح. وذلك بالضبط ما وُجد التوقيع من أجله.
هل فاكّ رموز JWT مجاني على الإنترنت؟
نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.
أدوات Security ذات صلة
تعمية النصوص
عمِّ رسالة بـAES-256-GCM وعبارة مرور، باستعمال محرّك التعمية في متصفّحك.
افتح$termiva url --encodeمرمِّز الروابط وفاكّه
رمّز الروابط ومعاملات الاستعلام وفكّها، مع تفكيك لكل جزء من العنوان.
افتح$termiva verify --sha256مدقّق البصمات
الصق البصمة التي أعطاك إياها الناشر، واختر ملفك، وانظر فورًا هل تتطابقان.
افتح$termiva qr --encodeمولّد رموز QR
أنشئ رمز QR لرابط أو نصّ أو شبكة واي فاي أو بطاقة جهة اتصال — يُولَّد على جهازك ويشير مباشرةً إلى بياناتك.
افتح