UltKit

فك تشفير JWT

الصق رمز JSON Web Token لقراءة الترويسة والحمولة بصيغة JSON منسقة، مع عرض وقتي الانتهاء والإصدار كتواريخ وملاحظة توضح ما إذا كان الرمز صالحًا حاليًا. تجري عملية الفك بالكامل في متصفحك، وهذا مهم عندما يكون الرمز بيانات اعتماد فعالة.

0 حرف · 0 كلمة · 0 سطر

0 حرف · 0 كلمة · 0 سطر

تعمل الأداة بالكامل داخل تبويب المتصفح هذا. لا يتم رفع نصك ولا حفظه.

المطالبات المسجلة

أسماء المطالبات السبعة المعرّفة في RFC 7519 §4.1. جميعها اختيارية؛ والأوقات بالثواني منذ 1970-01-01 بالتوقيت العالمي UTC.

المطالبةالمعنى
issالمُصدِر: من أنشأ الرمز ووقّعه
subالموضوع: المستخدم أو الكيان الذي يخصه الرمز
audالجمهور: الجهة المقصودة بالرمز
expوقت الانتهاء: يُرفض الرمز بعد هذه اللحظة
nbfغير صالح قبل: يُرفض الرمز قبل هذه اللحظة
iatوقت الإصدار: متى أُنشئ الرمز
jtiمعرّف JWT: معرّف فريد يُستخدم لمنع إعادة الاستخدام

قيم alg الشائعة

قيمة algالمعنى
HS256HMAC مع SHA-256؛ سر مشترك واحد للتوقيع والتحقق
RS256توقيع RSA PKCS#1 v1.5 مع SHA-256؛ المفتاح الخاص يوقّع والعام يتحقق
PS256RSA-PSS مع SHA-256
ES256ECDSA على المنحنى P-256 مع SHA-256؛ توقيعات قصيرة
EdDSAتوقيعات Ed25519 أو Ed448
noneرمز غير موقّع؛ ينبغي للخوادم رفضه

ما الذي يحتويه رمز JSON Web Token؟

يُعرَّف JWT في RFC 7519 (مايو 2015)، وتقترح الوثيقة نطقه مثل الكلمة الإنجليزية "jot". الصيغة الموقّعة الشائعة هي ثلاث سلاسل Base64url تفصل بينها نقاط: header.payload.signature. يحدد الترويسة (header) خوارزمية التوقيع في الحقل alg، مثل HS256 أو RS256، وغالبًا معرّف المفتاح في kid. وتحمل الحمولة (payload) المطالبات (claims)، وهي حقول JSON مثل sub (المستخدم) وiss (الجهة المصدِرة) وaud (الجمهور المقصود) وexp وnbf وiat، وهي أوقات بالثواني منذ 1 يناير 1970 بالتوقيت العالمي UTC. يحوّل المفكّك هذه القيم إلى توقيتك المحلي وإلى صيغة ISO 8601، ويخبرك هل انتهت صلاحية الرمز، أو أنه لم يصبح صالحًا بعد، أو أنه ضمن فترة صلاحيته.

Base64url ترميز وليس تشفيرًا، لذلك يستطيع أي شخص يملك الرمز قراءة حمولته تمامًا كما تفعل هذه الصفحة. لا تضع كلمات المرور أو أرقام البطاقات أو أي أسرار أخرى في المطالبات. الرمز المكوّن من خمسة أجزاء تفصل بينها نقاط هو JWE، أي رمز مشفّر؛ لا يمكن قراءة محتواه دون المفتاح، وتوضح الأداة ذلك. تُزال تلقائيًا كلمة "Bearer " في البداية إذا نسختها من ترويسة Authorization.

لماذا لا يُتحقق من التوقيع هنا؟

يثبت التوقيع أن الترويسة والحمولة أُنتجتا بواسطة من يملك المفتاح وأنهما لم تتغيرا منذ ذلك الحين. ويتطلب التحقق منه ذلك المفتاح: السر المشترك لخوارزميات HMAC مثل HS256، أو المفتاح العام للجهة المصدِرة لـ RS256 أو ES256 أو EdDSA. لصق سر توقيع خاص بالإنتاج في أي صفحة ويب فكرة سيئة، كما أن مفكّكًا يوحي بضمان الرمز دون المفتاح يعطي طمأنينة زائفة، لذلك تعرض هذه الأداة التوقيع لكنها لا تتحقق منه. تعامل مع ما تراه على أنه ادعاء يقدمه الرمز، لا على أنه حقيقة.

مكان التحقق هو خادمك، باستخدام مكتبة مُصانة مع تثبيت الخوارزمية المتوقعة. وهناك خطآن تاريخيان يفسران السبب: قبول alg بالقيمة "none"، مما يتيح لأي شخص تزوير رمز غير موقّع، وخلط الخوارزميات، حيث يُخدع خادم يتوقع RS256 فيفحص توقيع HS256 مستخدمًا المفتاح العام بوصفه سر HMAC. المفكّك مخصص لتصحيح الأخطاء: لمعرفة المطالبات التي يصدرها المزوّد، أو اكتشاف جمهور aud خاطئ، أو معرفة أن الجلسة فشلت لأن exp انقضى قبل دقيقة. ولقراءة مقاطع Base64url الخام استخدم مفكّك Base64.

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

هل لصق رمز وصول حقيقي في أداة فك تشفير JWT آمن؟
في هذه الصفحة لا يغادر الرمز متصفحك. ومع ذلك يعمل الرمز الصالح مثل كلمة المرور حتى تنتهي صلاحيته، لذا فضّل الرموز المنتهية أو التجريبية، ولا تترك الرموز الفعلية في لقطات الشاشة أو المحادثات.
لماذا يظهر الرمز منتهي الصلاحية مع أنه صدر للتو؟
تحقق من ساعة جهازك أولًا. بعض الجهات تمنح رموز الوصول عمرًا لا يتجاوز دقائق قليلة، وقد يكون الرمز المنسوخ من سجل أقدم مما يبدو. أما كتابة exp بالميلي ثانية بدل الثواني فتعطي العكس، إذ يقع التاريخ بعد آلاف السنين.
هل يمكن لأحد تغيير حمولة رمز JWT الخاص بي؟
يمكنه تعديله وإعادة ترميزه، لكن التوقيع لن يطابق بعد ذلك. والخادم الذي يتحقق من التوقيعات بالمفتاح والخوارزمية الصحيحين يرفض الرمز المعدَّل.
ما الفرق بين JWS و JWE؟
JWS (RFC 7515) رمز موقّع من ثلاثة أجزاء ويمكن لأي شخص قراءته. أما JWE (RFC 7516) فمشفّر من خمسة أجزاء، ولا يستطيع قراءة حمولته إلا صاحب المفتاح.
هل يؤدي تسجيل الخروج إلى إبطال رمز JWT؟
ليس من تلقاء نفسه. يبقى JWT الموقّع صالحًا حتى exp ما لم يحتفظ الخادم بقائمة حظر أو يتحقق من سجل الجلسة، ولهذا تُمنح رموز الوصول عادة أعمارًا قصيرة.