DevToolPal
ع

مُرمِّز وموقِّع JWT

أنشئ رمز JSON Web Token ووقّعه من حمولة JSON بخوارزميات HS256/384/512، أو RS وPS وES باستخدام مفتاح خاص بصيغة PEM.

يعمل محليًا، دون أي رفع

الخيارات

صيغة السر

الحمولة (JSON)

0 حرف · 0 B

JWT

0 حرف · 0 B

ماذا تفعل الأداة

رمز JSON Web Token ‏(JWT، RFC 7519) سلسلة مدمجة وآمنة للروابط من ثلاثة أجزاء تفصلها نقاط: ترويسة تذكر خوارزمية التوقيع، وحمولة من المطالبات (claims)، وتوقيع على الجزأين الأولين. تستخدم واجهات API رموز JWT كرموز Bearer، ويستخدمها مزوّدو الهوية كرموز ID.

تنشئ هذه الأداة رمزًا من حمولة JSON وتوقّعه. وتدعم:

  • HS256 وHS384 وHS512: ‏HMAC بسر مشترك، نصًا أو Base64.
  • RS256 وRS384 وRS512 وPS256 وPS384 وPS512: تواقيع RSA بمفتاح خاص PEM.
  • ES256 وES384 وES512: تواقيع ECDSA بمفتاح خاص EC.

طريقة الاستخدام

  1. اكتب الحمولة ككائن JSON أو انقر مثال.
  2. اختر الخوارزمية ثم اكتب السر أو الصق المفتاح الخاص PEM أعلى مربع الإدخال.
  3. يمكنك جعل iat الوقت الحالي، أو إضافة انتهاء صلاحية (exp)، أو حقول ترويسة إضافية مثل معرّف المفتاح.
  4. انسخ الرمز من المخرجات، والصقه في أداة فك JWT لفحصه.

مثال

مع السر your-256-bit-secret تنتج الحمولة التالية الموقّعة بـHS256 الرمز المثال المعروف من jwt.io:

{"sub":"1234567890","name":"John Doe","iat":1516239022}

تُكتب الترويسة دائمًا بالشكل {"alg":"HS256","typ":"JWT"} متبوعة بأي حقول إضافية؛ ويتبع alg دائمًا الخوارزمية المختارة.

ممارسات جيدة

اجعل الرموز قصيرة العمر بمطالبة exp، واضبط iss وaud حتى لا يُعاد استخدام رمز خدمة ما في خدمة أخرى. على الخادم، تحقّق دائمًا من التوقيع بقائمة صريحة من الخوارزميات المسموح بها وارفض none. يجب أن تكون أسرار HMAC طويلة وعشوائية، بطول مخرجات التجزئة على الأقل (32 بايت لـHS256).

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

› أي خوارزمية أختار؟

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

› ما صيغ المفاتيح الخاصة المقبولة؟

مفاتيح PEM بصيغة PKCS#8 ‏(BEGIN PRIVATE KEY) وPKCS#1 RSA ‏(BEGIN RSA PRIVATE KEY) وSEC1 EC ‏(BEGIN EC PRIVATE KEY). يجب تصدير المفاتيح المشفّرة أولًا من دون عبارة مرور. لـES256 وES384 وES512 يجب أن يكون المفتاح على المنحنى P-256 أو P-384 أو P-521 على التوالي.

› هل حمولة JWT سرية؟

لا. الترويسة والحمولة مرمّزتان بـBase64URL فقط، ويستطيع أي شخص يملك الرمز قراءتهما. يمنع التوقيع التعديل لا القراءة. لا تضع أبدًا كلمات مرور أو أسرارًا أخرى في حمولة JWT.

› هل يُحفظ سري أو مفتاحي الخاص أو يُرسل إلى أي مكان؟

لا. يجري التوقيع في متصفحك عبر Web Crypto API. يبقى السر أو المفتاح في ذاكرة هذه الصفحة فقط: لا يُحفظ ولا يُكتب في شريط العنوان ولا يُضمَّن في روابط المشاركة. ومع ذلك تجنّب لصق مفاتيح بيئة الإنتاج في صفحات ويب لا تتحكم بها.