👤 Pro — إزالة الإعلاناتPro
‎// JWT → header + payload‎

فاكّ تشفير JWT

الصق رمز ‎JSON Web Token‎ لترى ما بداخله فعليًا — الترويسة والحمولة، بعد فك ترميزهما وتنسيقهما بشكل مقروء.

مجاني — استخدام غير محدود.

فهم المطالبات الموجودة بالداخل

بمجرد فك ترميز رمز، تكون الحمولة في معظمها حفنة من الحقول القصيرة الموحَّدة تُسمى مطالبات (‎claims‎). أما التي ستصادفها باستمرار فهي: ‎iss‎ يُسمّي الجهة المُصدِرة التي أنشأت الرمز، و‎sub‎ يحدد المستخدم أو الموضوع الذي يخصه، و‎aud‎ يُسمّي الجمهور — واجهة برمجة التطبيقات المقصودة — بينما يسجّل ‎iat‎ وقت إصداره و‎exp‎ وقت توقف صلاحيته. أي شيء آخر فيه مخصَّص: أدوار، عناوين بريد إلكتروني، أعلام ميزات، أيًّا كان ما قرر النظام المُصدِر تضمينه. وتُوقِع مطالبات الوقت الناس في الخطأ لأنها طوابع زمنية عادية بصيغة ‎يونكس‎، أي ثوانٍ منذ عام 1970 — رقم مثل 1784528768 بدلًا من تاريخ مقروء — لذا يختبئ عمر الرمز بأكمله داخل عددين صحيحين غير لافتين.

تصحيح خطأ رمز مرفوض

حين تُجيب واجهة برمجة التطبيقات برمز الحالة ‎401‎ وأنت متأكد من صحة الرمز، اعمل على قائمة قصيرة من التحققات. أولًا، إذا نسخته من ترويسة ‎Authorization‎، فأزِل كلمة ‎Bearer‎ والمسافة التي تسبقها — فمع بقائهما لا يكون رمزًا صالحًا من نوع ‎JWT‎ ولن يُفَكّ ترميزه أصلًا. بعد ذلك، اقرأ ‎exp‎ وتحقق من أنه فعلًا في المستقبل: الصق الرقم في محول الطوابع الزمنية ‎Unix‎ وسترى تاريخ الانتهاء كتاريخ حقيقي، وغالبًا ما يكشف ذلك عن رمز انتهت صلاحيته منذ ساعات. ثم قارن ‎aud‎ و‎iss‎ بواجهة برمجة التطبيقات التي تستدعيها — فرمز صُنع لبيئة الاختبار المرحلي يُرفَض بشكل روتيني، وبشكل صحيح، من بيئة الإنتاج. وتذكّر أن دقيقة واحدة من انحراف ساعة بين الخوادم كافية لجعل رمز صادر حديثًا يبدو غير صالح بعد.

رموز لا تستطيع هذه الأداة فتحها

ليس كل ما يحمي واجهة برمجة تطبيقات هو ‎JWT‎ قابل للقراءة. فرمز يحتوي على خمسة أجزاء مفصولة بنقاط بدلًا من ثلاثة هو ‎JWE‎ — مشفَّر فعليًا، لا مُرمَّز فحسب — ولن يخرج منه شيء مقروء دون المفتاح، هنا أو في أي مكان آخر. كما أن الكثير من رموز الجلسات هي ببساطة سلاسل عشوائية معتمة لم تكن أصلًا رموز ‎JWT‎؛ فإن كان الرمز لا يبدأ بشيء مثل ‎eyJ‎، فمن المرجح ألا يوجد شيء لفكّ ترميزه. أما بالنسبة للرموز التي تُفتَح فعلًا، فمن المفيد تذكّر ما تنظر إليه: ثلاث كتل من نص ‎Base64URL‎ مُلصَقة معًا بنقاط. تفكّ أداة ‎Base64‎ ترميز أي كتلة منفردة بمفردها، وهي طريقة لطيفة لترى بعينيك أن الأجزاء المقروءة من رمز ‎JWT‎ لم تكن سرية أصلًا.

ما الذي يخبرك به فك تشفير JWT وما لا يخبرك به

ترويسة رمز ‎JWT‎ وحمولته ما هما إلا ‎JSON‎ مرمَّز بصيغة ‎Base64URL‎ — يمكن لأي شخص فك ترميزهما وقراءتهما، دون الحاجة إلى أي سر، وهذا بالضبط ما تفعله هذه الأداة. أما ما لا تستطيع فعله فهو التحقق من التوقيع: إذ يحتاج ذلك إلى سر جهة الإصدار أو مفتاحها العام، وهو أمر لا ينبغي عن قصد لصقه في موقع إلكتروني عشوائي.

هل يتحقق هذا من صلاحية الرمز أو من عدم انتهاء صلاحيته؟

لا — تكتفي هذه الأداة بفك ترميز الأجزاء القابلة للقراءة. أما التحقق من التوقيع وفحص انتهاء الصلاحية (‎exp‎) فيحدثان على الخادم الذي أصدر الرمز، باستخدام سر لا تراه هذه الأداة أبدًا.

هل من المفترض أن يكون رمز JWT قابلًا للقراءة هكذا؟

نعم — فالترويسة والحمولة مرمَّزتان فقط، لا مشفَّرتان. لا تضع أبدًا أسرارًا أو بيانات حساسة مباشرة في حمولة ‎JWT‎؛ فوظيفة التوقيع هي إثبات عدم العبث بالرمز، وليست إخفاء محتواه.

هل يُرسَل رمزي إلى أي مكان؟

لا — يتم فك الترميز بالكامل داخل متصفحك بلغة ‎JavaScript‎ فقط. لا يُرفع أي شيء.

Convertburda — تحويلات شاملة لكل الصيغ