تخطَّ إلى المحتوى

header.payload.signature

قراءة JWT وفكّ ترميزه

JSON Web Token (JWT) هو 3 أجزاء بصيغة Base64url تفصل بينها نقاط: الترويسة والحمولة والتوقيع. الصق رمزًا لتقرأ مطالباته وأوقاته؛ يُفكّ ترميزه هنا ولا يُتحقق منه.

يبقى الرمز في هذا التبويب ولا يُرسل إلى أي مكان. الرمز المفكوك ليس رمزًا موثوقًا: فالتوقيع لا يُفحص هنا أبدًا.

Scanned by NortonTM Safe Web

نظرة سريعة

السعر
بلا مقابل
الحساب
غير مطلوب
المعايير
RFC 7519 (JWT)، وRFC 7515 (JWS)، وRFC 7516 (JWE)
التوقيع
لا يُتحقق منه — يُفكّ ترميز الرمز فقط
الأوقات
تُعرض exp وnbf وiat بتوقيت UTC وتُقارن بساعتك
الرفع
لا شيء — يبقى الرمز في تبويب متصفحك

رمز نموذجي وخوارزميات شائعة

الرمز النموذجي في هذه الصفحة موقَّع بـ HMAC-SHA-256 بمفتاح للتجربة فقط. وقد فكّت الصفحة ترميزه لتنتج الجدول الأول.

مطالبات الرمز النموذجي
المطالبةالقيمةالوقت (UTC)
issauth.example.com—
subuser-42—
audapi—
iat17000000002023-11-14 22:13:20 UTC
exp17000036002023-11-14 23:13:20 UTC
خوارزميات التوقيع الشائعة (alg)
algالعائلةالهاشحجم التوقيع
HS256HMACSHA-25632 B
HS512HMACSHA-51264 B
RS256RSASSA-PKCS1-v1_5SHA-256256 B (2048-bit key)
ES256ECDSA P-256SHA-25664 B
ES512ECDSA P-521SHA-512132 B
EdDSAEdDSA—64 B (Ed25519)

كيف تفكّ ترميز JWT

1

الصق الرمز

الصق الرمز كاملًا، مع Bearer في أوله أو بدونها. له 3 أجزاء تفصل بينها نقاط، أو 5 إن كان JWE مشفّرًا.

2

اقرأ الأجزاء

تظهر الترويسة والحمولة بصيغة JSON منسقة، وتُسرد كل مطالبة في جدول. وتُعرض الأوقات exp وnbf وiat بتوقيت UTC.

3

افحص الوقت

تقارن الصفحة exp وnbf بساعة جهازك وتذكر هل انتهت صلاحية الرمز. ولا تقول هل الرمز أصلي.

كيف يُبنى JWT

يُكتب JWT (RFC 7519) بصيغة header.payload.signature. الترويسة والحمولة كائنا JSON، كل منهما مرمَّز بـ Base64url بلا حشو (RFC 4648، القسم 5)، والتوقيع بايتات خام بالترميز نفسه. وفكّ الترميز يغيّر الترميز فقط، فيستطيع كل من يحمل الرمز قراءة حمولته: لا تضع فيها أسرارًا. وتذكر الترويسة خوارزمية التوقيع في alg، مثل HS256 (HMAC مع SHA-256، توقيع من 32 بايت) أو RS256 (RSA مع SHA-256، 256 بايت لمفتاح من 2048 بت).

تفكّ هذه الصفحة ترميز الرمز ولا تفعل غير ذلك. فهي لا تفحص التوقيع لأن ذلك يحتاج المفتاح، ولا تستطيع أن تقول هل الرمز أصلي أو مُلغى أو مقبول عند خادم. وتقارن المطالبات exp وnbf وiat، التي تعدّ الثواني منذ 1970-01-01 UTC، بساعة جهازك وتطبعها تواريخَ وأوقاتًا بتوقيت UTC. والرمز ذو 5 أجزاء هو JWE: محتواه مشفّر، فلا تُعرض إلا ترويسته.

أسئلة عن JWT

كيف أفكّ ترميز JWT؟

الصق الرمز في الحقل. تقسمه الصفحة عند النقاط، وتحوّل الجزأين الأولين من Base64url وتعرضهما بصيغة JSON. وتُتجاهل Bearer في أوله. وفي الرمز النموذجي تكون الترويسة {"alg":"HS256","typ":"JWT"}.

هل تتحقق هذه الصفحة من التوقيع؟

لا. فالتحقق يحتاج السر أو المفتاح العام، وهذه الصفحة لا تطلب أيًّا منهما. والرمز الذي يُفكّ ترميزه هنا قد يكون مزوَّرًا أو معدَّلًا أو مُلغى. تحقق من التوقيع في شيفرة خادمك بمكتبة JWT مصانة.

ماذا تعني exp وiat وnbf؟

هي أوقات بالثواني منذ 1970-01-01 UTC (RFC 7519). exp هو وقت انتهاء صلاحية الرمز، وnbf هو الوقت الذي لا يُقبل قبله، وiat هو وقت إصداره. وفي الرمز النموذجي، iat 1700000000 هو 2023-11-14 22:13:20 UTC، وexp 1700003600 بعده بساعة.

هل من الآمن لصق رمز حقيقي هنا؟

يبقى الرمز في تبويب متصفحك ولا يُرسل إلى أي مكان. ومع ذلك فالرمز الفعال بيانات اعتماد: يستطيع كل من يحمله استعماله حتى تنتهي صلاحيته. الصق رموزًا تملكها، وفضّل الرموز المنتهية أو التجريبية متى أمكن.

لماذا لرمزي 5 أجزاء؟

الرمز ذو 5 أجزاء هو JWE، أي JSON Web Token مشفّر (RFC 7516). حمولته مشفّرة للمستلم، لذا تعرض هذه الصفحة الترويسة وأحجام الأجزاء فقط. ولا يمكن قراءة المحتوى هنا.

ماذا تعني "not Base64url" أو "not JSON"؟

يجب أن يكون كل من الجزأين الأولين نص Base64url يُفكّ إلى كائن JSON. وتسمّي الصفحة الجزء الذي يفشل وسبب ذلك: حرف خارج الأبجدية، أو بايتات ليست UTF-8، أو JSON فيه خطأ في سطر وعمود محددين. والسبب المعتاد رمز مقطوع أو فيه أحرف زائدة.