مولّد JWT والتحقق منه
أنشئ رموز JWT وتحقّق منها بخوارزميات HS256 وRS256 وPS256 وES256 وEdDSA. عدّل المطالبات واضبط exp وiat وافحص التوقيع محليًا.
المفاتيح والرموز أسرار. يجري التوقيع والتحقق محليًا بواجهة Web Crypto في متصفحك: لا يُرفع أي شيء.
إنشاء رمز JWT موقَّع
لا يدعم هذا المتصفح Ed25519 في Web Crypto، لذا فإن EdDSA غير متاح.
تُنشأ مفاتيح الاختبار في متصفحك وتُملأ أدناه. احتفظ بالمفتاح الخاص أو السر لنفسك، ولا تشارك إلا المفتاح العام.
التحقق من رمز JWT
كيف تنشئ رمز JWT موقَّعًا
- اختر الخوارزمية: HS256/384/512 (سر مشترك)، أو RS256/384/512 أو PS256/384/512 (RSA)، أو ES256/384/512 (ECDSA على المنحنيات P-256 أو P-384 أو P-521)، أو EdDSA (Ed25519، إذا كان متصفحك يدعمه).
- عدّل الترويسة (JSON) والحمولة (مطالبات JSON). يتبع الحقل
algدائمًا الخوارزمية المختارة، وقيمةtypالافتراضية هيJWT. - استخدم أزرار المطالبات الزمنية لإضافة التواريخ: iat = الآن وnbf = الآن، أو اختر مدة مثل «بعد ساعة» ثم انقر اضبط exp. القيم من نوع NumericDate، أي عدد الثواني منذ 1 يناير 1970 بتوقيت UTC.
- أدخل السر (لخوارزميات HS، كنص أو بصيغة Base64/Base64url من خيار صيغة السر) أو المفتاح الخاص (PEM أو JWK). ليس لديك مفتاح بعد؟ انقر أنشئ مفتاح اختبار.
- انقر وقّع الرمز، ثم انسخ النتيجة أو انقر تحقّق من هذا الرمز لفحصه فورًا.
كيف تتحقق من رمز JWT
- الصق الرمز في حقل الرمز المراد التحقق منه.
- اختر الخوارزمية المتوقعة. ترك الخيار على «من ترويسة الرمز» يقبل ما تذكره الترويسة، باستثناء
none؛ أما اختيار خوارزمية محددة فيجعل الأداة ترفض أي رمز موقَّع بغيرها، كما يجب أن يفعل الخادم الحقيقي. - أدخل السر أو المفتاح العام (PEM أو JWK): كتلة PEM من نوع
PUBLIC KEYأوRSA PUBLIC KEYأوCERTIFICATE، أو JWK، أو مجموعة JWK Set (يُستخدم المفتاح الذي يطابقkidالخاص به ما في الترويسة). - يمكنك اختياريًا ضبط هامش فرق الساعة (بالثواني) لتحمّل الفروق الصغيرة بين الساعات، ثم انقر تحقّق من الرمز.
تبيّن النتيجة هل التوقيع صالح، ثم تفحص exp (انتهاء الصلاحية) وnbf (غير صالح قبل) مقارنةً بالوقت الحالي في حاسوبك. والرمز ذو التوقيع الصحيح الذي انقضى تاريخ انتهائه يُعرض على أنه منتهي الصلاحية، لا على أنه صالح.
المفاتيح والصيغ
للتوقيع، تقبل الأداة كتل PKCS#8 من نوع PRIVATE KEY، وكتل PKCS#1 من نوع RSA PRIVATE KEY، وكتل SEC1 من نوع EC PRIVATE KEY (تُحوَّل داخليًا إلى PKCS#8)، إضافةً إلى مفاتيح JWK الخاصة. أما المفاتيح المحمية بكلمة مرور فيجب تصديرها أولًا دون كلمة مرور. ينشئ زر أنشئ مفتاح اختبار سرًا عشوائيًا بطول ناتج دالة التجزئة لخوارزميات HS، وزوج مفاتيح RSA بطول 2048 بت لـ RS وPS، والمنحنى المناسب لـ ES، أو زوج Ed25519. تحصل على المفاتيح بصيغتي PEM وJWK، وتُملأ في الجانبين معًا حتى تنجح دورة التوقيع ثم التحقق فورًا.
تتبع التواقيع المعيارين RFC 7515 وRFC 7518: يستخدم RSA-PSS ملحًا (salt) بطول دالة التجزئة، وتواقيع ECDSA هي الضم الخام r||s. ويعيد التنفيذ إنتاج مثال HS256 الوارد في RFC 7515، الملحق A.1.
ملاحظات أمنية
- كل شيء يعمل في متصفحك عبر واجهة Web Crypto، ولا تُرسل الرموز ولا المفاتيح إلى أي مكان، ومع ذلك يُفضَّل استخدام مفاتيح اختبار بدلًا من أسرار بيئة الإنتاج.
alg: noneلا يُوقَّع أبدًا ولا يُقبل أبدًا.- ينبغي أن يكون طول سر HMAC مساويًا على الأقل لطول ناتج دالة التجزئة (32 بايت لـ HS256)، والسر الأقصر يُظهر تحذيرًا.
- التوقيع يُثبت السلامة والمصدر، لا ملاءمة المطالبات: يجب على الخوادم أيضًا فحص
issوaudونطاقات الصلاحيات.
الأسئلة الشائعة
ما الفرق بين HS256 وRS256؟
يستخدم HS256 سرًا مشتركًا واحدًا للتوقيع والتحقق معًا، لذا يستطيع كل من يتحقق أن يزوّر الرموز أيضًا. أما RS256 (ومثله PS256 وES256 وEdDSA) فيوقّع بمفتاح خاص ويتحقق بمفتاح عام يمكن نشره بأمان.
لماذا يظهر خطأ رغم أن التوقيع صالح؟
لأن الرمز خارج فترة صلاحيته: قيمة exp في الماضي أو قيمة nbf في المستقبل. تُعرض نتيجة فحص التوقيع ونتيجة فحص الوقت كلٌّ على حدة.
لماذا تُرفض القيمة alg «none»؟
يستطيع أي شخص إنشاء رمز غير موقَّع. وكان قبول مثل هذه الرموز ثغرة كلاسيكية في مكتبات JWT، لذا ترفضه هذه الأداة عند التوقيع وعند التحقق على حد سواء.
هل يمكنني استخدام مفتاح RSA أو EC خاص بي؟
نعم. الصق المفتاح الخاص بصيغة PEM أو JWK للتوقيع، والمفتاح العام للتحقق. وتتأكد الأداة من أن نوع المفتاح والمنحنى يطابقان الخوارزمية المختارة.
لماذا خيار EdDSA معطّل؟
لأن متصفحك لا يدعم Ed25519 في Web Crypto بعد. الإصدارات الحديثة من Chrome وEdge وFirefox وSafari تدعمه.
أدوات ذات صلة
- فك ترميز JWT فك ترميز JWT واقرأ الترويسة والحمولة وتواريخ exp وiat وnbf، وتحقّق من توقيعات HS256 وRS256 وES256 وEdDSA محليًا في متصفحك.
- مولّد HMAC احسب HMAC-SHA1 أو SHA-256 أو SHA-384 أو SHA-512 بمفتاح نصي أو ست عشري أو Base64، واحصل على النتيجة وتحقق من توقيع webhook في متصفحك.
- محول الطابع الزمني يونكس حوّل الطابع الزمني يونكس بالثواني أو بالملّي ثانية إلى تاريخ مقروء بالتوقيت المحلي و UTC و ISO 8601، وحوّل أي تاريخ إلى وقت epoch.
- منسّق JSON ومدقّقه أداة مجانية لتنسيق JSON والتحقق من صحته: جمّل JSON واضغطه وافحصه في متصفحك، مع تحديد أخطاء الصياغة بالسطر والعمود.