تخطَّ إلى المحتوى
خصوصية 100% — تبقى ملفاتك على جهازك
>_
العربية

أداة فك تشفير JWT

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

إنشاء رمز جديد (المرمِّز)

ابنِ JWT ووقّعه من الصفر داخل متصفحك. لا تغادر المفاتيح هذه الصفحة.

كيف يعمل فك تشفير JWT من جانب المتصفح — ولماذا يهم ذلك؟

يبدو JSON Web Token في ظاهره كتلة غير مفهومة من الأحرف، لكنه في الواقع مجرد ثلاثة أجزاء مُرمَّزة بـ Base64URL ومفصولة بنقاط: رأس (header)، وحمولة (payload)، وتوقيع (signature). فك تشفير الرأس والحمولة ليس تشفيرًا بالمعنى الحقيقي على الإطلاق — فبإمكان أي شخص يملك الرمز قراءة المطالبات الموجودة بداخله، وهذا بالضبط سبب عدم وضع بيانات حساسة داخل حمولة JWT مطلقًا. المشكلة أن الرموز التي يحتاج الناس لفحصها نادرًا ما تكون بيانات اختبار يمكن التخلص منها. فهي غالبًا رمز جلسة حيّ (session token) من تطبيق فعلي قيد التشغيل، أو رمز وصول لواجهة برمجة تطبيقات (API access token)، أو كوكيز تسجيل دخول تم سحبها مباشرة من أدوات المطوّر في المتصفح أثناء تصحيح الأخطاء — أي بيانات اعتماد حقيقية تمنح، في الأيدي الخطأ، وصولًا حقيقيًا. لصق هذا الرمز في موقع عشوائي يعني تسليم جلستك إلى خادم لا تعرف عنه شيئًا.

هذه الأداة لا تفعل ذلك أبدًا. يتم فك تشفير الرأس والحمولة بواسطة JavaScript عادي يعمل داخل متصفحك في اللحظة التي تلصق فيها الرمز — تُقسَّم السلسلة عند النقاط، ويُفكّ ترميزها بـ Base64URL، ثم تُحلَّل كـ JSON — دون أن يُرسَل أي جزء منها إلى أي مكان. يعمل التحقق من التوقيع بالطريقة نفسها، باستخدام Web Crypto API (وتحديدًا `SubtleCrypto`) المدمجة في كل متصفح حديث: تُتحقَّق خوارزميات HMAC (HS256، HS384، HS512) مقابل مفتاح سري تكتبه بنفسك، وتُتحقَّق خوارزميات RSA (RS256، RS384، RS512) مقابل مفتاح عام تلصقه بصيغة PEM. يبقى كل من المفتاح السري وعملية التحقق نفسها محليَّين داخل علامة التبويب؛ وما إن تُحدِّث الصفحة حتى يختفي كل شيء — الرمز، والمفتاح السري، والمفتاح العام.

الصق رمزًا لترى رأسه وحمولته منسّقين بشكل واضح، إلى جانب قراءة لمطالبات `exp` و`iat` و`nbf` القياسية محوَّلة إلى تاريخ يسهل قراءته، مع شارة "منتهي الصلاحية" واضحة إذا كان تاريخ `exp` الخاص بالرمز قد مضى بالفعل — وهو أمر مفيد للتأكد من أن بلاغ خلل مثل "تم تسجيل خروجي فجأة" ليس سوى رمز منتهي الصلاحية. وإذا كانت الخوارزمية HS256/384/512 أو RS256/384/512، أدخل المفتاح السري أو المفتاح العام المطابق للتحقق مما إذا كان التوقيع أصليًا أم تم العبث به. أما الخوارزميات خارج هذه المجموعة (مثل ES256 أو `none` غير الموقَّعة) فيُفك تشفيرها بلا مشاكل، لكن خيار التحقق لا يُعرَض بدلًا من تلفيق نتيجة غير حقيقية. وللتطوير المحلي، تتيح لك مربعات الرأس والحمولة القابلة للتعديل تغيير مطالبة ما — مثل تعديل معرّف مستخدم أو دور صلاحيات — ثم إعادة توقيع الرمز بنفس مفتاح HS256 السري الذي يستخدمه خادم الاختبار لديك، وهي طريقة شائعة لاختبار منطق التفويض دون الحاجة لتشغيل تدفق تسجيل دخول كامل.

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

الأسئلة الشائعة

هل تستطيع الأداة التحقق من توقيع JWT، لا فك ترميزه فقط؟

نعم، يُدعم التحقق من توقيعات HMAC ‏(HS256/384/512) وRSA ‏(RS256/384/512).

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

لا، فك الترميز والتحقق وإعادة التوقيع كلها تتم محليًا في متصفحك عبر Web Crypto API.

هل يمكنني تعديل الحمل وتوليد رمز جديد موقَّع؟

نعم، عدّل JSON الترويسة/الحمل وأعد التوقيع بسر HMAC للحصول على رمز جديد.

أدوات ذات صلة