مولد JWT
قم بإنشاء وتوقيع رمز JWT مباشرةً من خلال متصفحك. أدخل بيانات المطالبات الخاصة بالحمولة (مثل sub، aud، exp وغيرها، بالإضافة إلى أي بيانات مخصصة)، واختر الخوارزمية المناسبة (HS256 مع سر مشترك أو RS256/ES256 مع مفتاح خاص)، وسيقوم الأداة بإنتاج الرمز المكوَّن من ثلاثة أجزاء. يُعد هذا الأداة مفيدة للتطوير المحلي، واختبار الأحمال، وإعادة إنتاج مشكلات المصادقة.
كيفية إنشاء رمز توقيع جي وي تي (JWT)
-
1
اكتب الحمولة (Payload).
المطالبات القياسية (`sub`، `iss`، `aud`، `exp`، `iat`، `nbf`) بالإضافة إلى أي مطالبات مخصصة تتوقعها تطبيقك.
-
2
اختر الخوارزمية
HS256/384/512 مع سر مشترك، أو RS256/ES256 مع مفتاح خاص بصيغة PEM.
-
3
قدم المفتاح
أدخل النص السري المشترك الخاص بخوارزمية HMAC، أو لصق المفتاح الخاص الخاص بخوارزميتي RSA و ECDSA؛ يبقى كلاهما داخل متصفحك.
-
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 لإجراء اختبارات متعمدة على الرموز التذكارية التالفة أو غير الموقعة، مع عرض تحذير بارز. لا تقبل أبدًا مثل هذه الرموز في الكود التشغيلي.
أدوات ذات صلة
مشفر ملفات Base64
شفّر أي ملف (PDF، ZIP، صورة، ملف تنفيذي) إلى نص Base64 للتضمين في JSON أو البريد أو YAML أو data URIs. يعمل محليا، بلا رفع.
مرمز شفرة A1Z26
رمز النص باستخدام شفرة A1Z26 (A=1, B=2, ... Z=26) أو فك تسلسل أرقام إلى حروف، مع فاصل قابل للتخصيص.
مشفّر قيصر
شفّر وفك تشفير النص باستخدام شفرة قيصر. أي إزاحة من 1-25، مع دعم ROT13 كحالة خاصة، والحفاظ على علامات الترقيم وحالة الأحرف.
مولد bcrypt
ولّد hash من نوع bcrypt لكلمة مرور نصية. عامل cost قابل للضبط من 4 إلى 13، ومتوافق مع Laravel وDjango وNode وPHP.
مشفر ومفكك Base58
رمّز نص UTF-8 أو بايتات سداسية عشرية وفك Base58 بأمان باستخدام أبجدية Bitcoin أو Ripple أو Flickr، مع رفض المحارف غير الصالحة.
مولد Hash bcrypt
ولّد hashes من نوع bcrypt أو تحقق من كلمة مرور نصية مقابل hash bcrypt موجود. وضعا التوليد والتحقق جنبا إلى جنب في أداة واحدة.
الأداة متاحة بلغات أخرى
- Générateur de JWT [FR]
- JWT-generator [SV]
- ตัวสร้าง JWT [TH]
- Generator JWT [ID]
- Bộ tạo JWT [VI]
- JWT 생성기 [KO]
- JWT-Generator [DE]
- Generador de JWT [ES]
- JWT-generator [NL]
- Generator JWT [PL]
- JWTジェネレーター [JA]
- Gerador de JWT [PT]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]
- JWT Generator [EN]
- Generatore JWT [IT]