مولد JWT

إنشاء JWT

قم بإنشاء وتوقيع رمز JWT مباشرةً من خلال متصفحك. أدخل بيانات المطالبات الخاصة بالحمولة (مثل sub، aud، exp وغيرها، بالإضافة إلى أي بيانات مخصصة)، واختر الخوارزمية المناسبة (HS256 مع سر مشترك أو RS256/ES256 مع مفتاح خاص)، وسيقوم الأداة بإنتاج الرمز المكوَّن من ثلاثة أجزاء. يُعد هذا الأداة مفيدة للتطوير المحلي، واختبار الأحمال، وإعادة إنتاج مشكلات المصادقة.

كيفية إنشاء رمز توقيع جي وي تي (JWT)

  1. 1

    اكتب الحمولة (Payload).

    المطالبات القياسية (`sub`، `iss`، `aud`، `exp`، `iat`، `nbf`) بالإضافة إلى أي مطالبات مخصصة تتوقعها تطبيقك.

  2. 2

    اختر الخوارزمية

    HS256/384/512 مع سر مشترك، أو RS256/ES256 مع مفتاح خاص بصيغة PEM.

  3. 3

    قدم المفتاح

    أدخل النص السري المشترك الخاص بخوارزمية HMAC، أو لصق المفتاح الخاص الخاص بخوارزميتي RSA و ECDSA؛ يبقى كلاهما داخل متصفحك.

  4. 4

    تم إنشاؤه

    النتيجة هي الرمز الموقّع؛ قم بنسخه واستخدمه في الاختبارات، ثم فك تشفيره باستخدام أداة فك التشفير JWT لفحصه.

الحمولة النموذجية لرمز المستخدم المصادق عليه

{
  "iss": "https://auth.example.com",
  "aud": "api.example.com",
  "sub": "user_12345",
  "iat": 1713398400,
  "nbf": 1713398400,
  "exp": 1713402000,
  "jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
  "scope": "read:profile write:posts"
}

اختيار الخوارزمية: HMAC مقابل الخوارزميات غير المتماثلة

الخوارزمية نوع المفتاح يُستخدم عند
HS256 سر مشترك بطول 256 بت وحدة متكاملة تقوم بالتوقيع على البيانات والتحقق منها بنفسها
HS384/512 سرية أعلى يتطابق مع HS256، وأكثر أمانًا
RS256 RSA 2048+ توقيعات الجهة المصدرة، وتُتحقق العديد من الخدمات باستخدام المفتاح العام
ES256 ECDSA P-256 يتطابق مع RS256 لكنه يستخدم توقيعات أصغر حجمًا
EdDSA Ed25519 أسرع طريقة للتحقق غير المتماثل، وأصغر مفاتيح

قوة المفتاح

  • يجب أن تحتوي أسرار HMAC على قدر من الإنتروبيا لا يقل عن حجم مخرجات الخوارزمية؛ فخوارزمية HS256 تتطلب 256 بتًا عشوائيًا (32 بايتًا)، وأي قيمة أقل يمكن كسرها بأسلوب القوة الغاشمة (brute-force).
  • يجب أن تكون مفاتيح RSA بطول 2048 بت على الأقل؛ و3072 أو 4096 بت في حالة الرموز ذات العمر الطويل.
  • يوفر ECDSA (ES256) مستوى أمان مماثل لـ RSA 3072، مع مفاتيح أصغر بكثير وعملية توقيع أسرع.

إرشادات انتهاء الصلاحية

نوع الرمز المدة النموذجية لـ exp
رمز الوصول 5–60 دقيقة
رمز التحديث من أيام إلى أسابيع
إعادة تعيين كلمة المرور 5–15 دقيقة
التحقق عبر البريد الإلكتروني 24 ساعة
من خدمة إلى أخرى من دقيقة إلى خمس دقائق (مختصر)

رمز الاستحقاق القصير مع تحديث دوري يُعد النموذج الحديث المعتاد. أما رموز الوصول طويلة الأمد، فهي صعبة إلغاؤها عند التعرض للاختراق.

الأخطاء الشائعة

  • إعادة استخدام سر اختباري في بيئة الإنتاج. يضع المولّد علامة على أسرار HS256 وعلى رمز JWT الناتج كـ“مخصصة للاختبار فقط“ إذا بدا السر ضعيفًا؛ اتبع هذا التحذير بدقة.
  • التوقيع دون exp. رمز JWT الذي لا يمتلك تاريخ انتهاء صلاحية يظل ساري المفعول إلى الأبد. عيّن exp دائمًا، ما لم يكن لديك سبب قوي جدًا وقائمة إلغاء.
  • استخدام alg المأخوذ من الترويسة في جهة التحقق. أدرج الخوارزميات دائمًا ضمن قائمة بيضاء في جانب التحقق، ولا تلتزم بما يطلبه الرمز.
  • لصق مفتاح خاص حقيقي هنا. يعمل هذا المولّد داخل متصفحك، لكن يجب التعامل مع المفاتيح الخاصة كأسرار؛ استخدم مفاتيح اختبار بدلًا من مفاتيح البيئة الإنتاجية.

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

لا، عملية التوقيع تتم في متصفحك باستخدام واجهة برمجة التطبيقات الخاصة بالترميز الرقمي عبر الويب (Web Crypto API). لا يغادر المفاتيح أجهزتك قط. ومع ذلك، بالنسبة للمفاتيح المستخدمة في البيئات الإنتاجية، يجب إنشاؤها والتوقيع عليها في بيئة محكمة، وليس داخل المتصفح.

يُعد HS256 خيارًا مناسبًا للنظام الموحّد حيث يتم توقيع البيانات والتحقق منها بواسطة نفس الجهة. أما RS256 أو ES256 فهما الخيار الأفضل عندما تكون الجهة المصدرة منفصلة عن جهة التحقق، إذ يمكن مشاركة المفاتيح العامة دون الكشف عن مفتاح التوقيع.

عادةً ما يستغرق الحصول على رموز الوصول من 5 إلى 15 دقيقة. استخدم رمز تجديد ذي مدة صلاحية أطول لضمان تجربة مستخدم سلسة. لا تُصدر رموز JWT أبدًا دون وجود طلب exp.

يدعم الأداة إصدار الرمز alg: none لإجراء اختبارات متعمدة على الرموز التذكارية التالفة أو غير الموقعة، مع عرض تحذير بارز. لا تقبل أبدًا مثل هذه الرموز في الكود التشغيلي.

أدوات ذات صلة

الأداة متاحة بلغات أخرى