أدوات التوليد
أدوات لتوليد المعرّفات وكلمات المرور والرموز.
مهام سريعة
نقرة واحدة تفتح الأداة مهيّأة مسبقًا للمهمة.
المولّدات أونلاين - المعرفات وكلمات المرور ورموز QR
من أكثر ما يحتاج المطور إلى إنشائه من العدم ثلاثة أشياء: معرّف فريد، وسر لا يستطيع أحد تخمينه، ورابط تقرأه الآلة. أدوات هذا القسم تغطي الثلاثة، وتتشارك خاصية أهم من أي ميزة: العشوائية تأتي من المولّد التعموي في متصفحك أنت، والنتيجة لا تُرسل إلى أي مكان.
ما الذي يضمه هذا القسم
| الأداة | ماذا تنتج | متى تحتاجها |
|---|---|---|
| مولّد UUID | معرفات UUID من الإصدارات 1 و3 و4 و5 و7، واحداً واحداً أو ألفاً دفعة واحدة | تحتاج مفتاحاً أساسياً، أو معرّف ارتباط، أو اسم ملف يستحيل أن يتصادم |
| مولّد كلمات المرور | كلمات مرور وعبارات مرور عشوائية بطول ومجموعة محارف قابلين للضبط | تنشئ بيانات اعتماد لا ينبغي لأحد تخمينها ولا إعادة استعمالها |
| مولّد رموز QR | رموز QR للروابط والنصوص وشبكات الواي فاي وبيانات التواصل | رابط عليه أن ينتقل من شاشة أو ورقة مطبوعة إلى هاتف أحدهم |
| مولّد CSS | تدرّجات لونية وظلال صناديق وحواف دائرية تُبنى بالمنزلقات مع معاينة حيّة | تريد أن يبدو التأثير صحيحاً بعينك قبل أن تلصق كود CSS الخاص به في ملف الأنماط |
| مولد وسوم الميتا | وسوم SEO وOpen Graph وبطاقات X مع معاينات حيّة لجوجل وFacebook وX | صفحة على وشك النشر ويجب أن تبدو سليمة في نتائج البحث وعند مشاركتها |
ما الذي يجعل المولّد جديراً بالثقة
تستطيع أي لغة أن تنتج رقماً يبدو عشوائياً. لكن قليلاً جداً من تلك الدوال يصلح لشيء يجب أن يبقى عصياً على التخمين. فدالة Math.random() في جافاسكريبت مولّد شبه عشوائي سريع يُبذَر بقدر ضئيل من الحالة؛ وبمخرجات كافية يستطيع المهاجم التنبؤ بالباقي. تكفي لخلط شريط عرض، ولا تصلح لتوليد كلمة مرور أو رمز جلسة.
المصدر الصحيح في المتصفح هو crypto.getRandomValues() الذي يغترف من مجمع نظام التشغيل الآمن تعموياً - المجمع نفسه الذي يغذي TLS. وكل من مولّد كلمات المرور ومولّد UUID هنا يستعمله. ويستحق هذا السؤال أن يُطرح على أي مولّد، لأن الاثنين يبدوان من الخارج متطابقين: كلاهما ينتج سلاسل تبدو عشوائية.
والنصف الثاني من الجدارة بالثقة هو إلى أين تذهب القيمة. فكلمة المرور المولّدة على خادم قد نُقلت مرة على الأقل، وربما بقيت في سجل أو ذاكرة مؤقتة أو نسخة احتياطية. والتوليد في المتصفح يعني أن النسخة الوحيدة هي التي على شاشتك، إلى أن تقرر أنت تخزينها.
اختيار صيغة المعرّف
معرّف UUID طوله 128 بت، ويُكتب في 36 محرفاً. وفكرته أن جهازين لم يتواصلا قط يستطيع كل منهما سك واحد والثقة بأنهما لن يتصادما. وهذه الخاصية هي التي تتيح لهاتف أن ينشئ سجلات دون اتصال، ولعامل طابور أن يشير إلى صف قبل كتابته، ولقاعدتي بيانات أن تندمجا دون إعادة ترقيم أي شيء.
الإصدار الرابع هو الخيار الافتراضي للاستعمال العام: 122 بت عشوائية وبلا أي بيانات وصفية مضمّنة. والإصدار السابع يضع طابعاً زمنياً بالمللي ثانية في البتات الأولى، فتُرتَّب القيم زمنياً حتى كسلاسل نصية بسيطة، وتحطّ الصفوف الجديدة في آخر الفهرس بدل أن تتناثر فيه - وهو الخيار الصحيح لمفتاح أساسي في جدول مزدحم. والإصداران الثالث والخامس حتميان: فالفضاء الاسمي نفسه والاسم نفسه ينتجان دائماً المعرّف نفسه، وهكذا يُشتق معرّف ثابت من رابط مثلاً. أما الإصدار الأول فيظهر غالباً عند قراءة بيانات قديمة.
الأعداد الصحيحة المتسلسلة تسرّب معلومة لا تسرّبها المعرفات الفريدة. فالمسار /invoice/1042 يخبر كل من يراه بعدد الفواتير التي أصدرتها تقريباً، ويغريه بتجربة 1043. وهذا اعتبار تصميمي لا ضابط أمني، لكنه اعتبار حقيقي.
ما الذي يجعل كلمة المرور قوية فعلاً
الطول يغلب التعقيد. فكل محرف إضافي يضرب فضاء البحث في حجم الأبجدية، بينما إضافة رمز إلى كلمة مرور قصيرة تضربه مرة واحدة. وكلمة مرور من 20 محرفاً بحروف صغيرة وأرقام أصعب في المهاجمة بكثير من كلمة من 8 محارف فيها رمز وحرف كبير - وأسهل في الكتابة إلى حد بعيد.
قواعد التعقيد التي تفرضها معظم المواقع - حرف كبير ورقم ورمز - صُممت لمنع الإنسان من اختيار password. وهي لا تفيد كلمة مرور مولّدة في شيء، وتدفع الناس إلى أنماط متوقعة: حرف كبير في الأول و1! في الآخر. اضبط كلمة المرور المولّدة على أقصى طول يقبله الموقع، ودع مجموعة المحارف تكون ما يسمح به.
- لا تعد استعمالها أبداً. هجمات حشو بيانات الاعتماد تنجح لأن موقعاً واحداً مخترقاً يسلّم المهاجمين دخولاً صالحاً إلى عشرين موقعاً آخر.
- استعمل مدير كلمات مرور. كون كلمة المرور المولّدة يستحيل حفظها هو المقصود تماماً؛ لا بد أن يخزنها شيء ما.
- انتبه للمحارف الملتبسة. إذا كانت كلمة المرور ستُقرأ بصوت عال أو تُكتب من ورقة، فاستبعد
lوIو1وOو0. - لعبارات المرور موضعها. عدة كلمات عشوائية سهلة الحفظ وطويلة، وهو ما يناسب الحفنة القليلة من كلمات المرور التي عليك تذكرها فعلاً: دخول جهازك، ومدير كلمات المرور نفسه.
- التبديل الدوري لم يعد موصى به. التوجيه الحديث أن تغيّر حين يوجد سبب للاعتقاد بالانكشاف، لا كل تسعين يوماً، لأن التبديل القسري ينتج تنويعات متوقعة.
رموز QR: ماذا تحمل وماذا لا تستطيع
رمز QR شفرة شريطية ثنائية الأبعاد تحمل قطعة نص قصيرة - غالباً رابطاً، لكن أيضاً بيانات شبكة واي فاي، أو رقم هاتف، أو موعداً في التقويم، أو بطاقة vCard. وهو ليس رابطاً إلى صورة مستضافة؛ فالبيانات في النقش نفسه، ومن ثم يظل الرمز الذي تولّده يعمل إلى الأبد بلا أي خدمة خلفه.
ومولّد رموز QR هنا يبني النقش داخل المتصفح، أي أن الرابط الذي ترمّزه لا يسجله طرف ثالث - وهو ما يستحق المعرفة حين يكون الرابط لوحة تحكم داخلية أو رابطاً موقّعاً. ونقطتان عمليتان: تصحيح الأخطاء يتيح للرمز أن يظل قابلاً للمسح حين يتلف جزء منه أو يغطيه شعار، على حساب نقش أكثف؛ والتباين أهم من الحجم. فالرمز يحتاج هامشاً هادئاً حوله، وأن يكون داكناً على فاتح؛ أما الرموز المعكوسة أو ضعيفة التباين فتفشل مع كثير من الماسحات.
أقسام ذات صلة
- أدوات المطورين - احسب بصمة قيمة مولّدة حين تحتاج بصمتها، أو اقرأ الطابع الزمني الذي يحمله معرّف UUID من الإصدار الأول أو السابع.
- أدوات الترميز - الأسرار المولّدة تُرمَّز عادة بصيغة Base64 قبل أن تستقر في ملف إعدادات أو ترويسة.
- أدوات النصوص - تحقق من JSON الذي توشك أن تلصق فيه دفعة من المعرفات المولّدة.