0Pricing
Cryptology Academy · درس

bcrypt: الخوارزمية ومعامل الكلفة

تعلّم آلية عمل bcrypt الداخلية، ومعامل العمل، وضبط الكلفة بشكل سليم

bcrypt: الخوارزمية ومعامل الكلفة درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا

bcrypt خوارزمية لتجزئة كلمات المرور صُممت عام 1999 تحديدًا لتكون بطيئة ومقاومة لهجمات العتاد. ولا تزال خوارزمية تجزئة كلمات المرور الأكثر انتشارًا.

أصول bcrypt

صمّمها Niels Provos وDavid Mazières، وهي مبنية على تشفير Blowfish. يشير الحرف 'b' إلى Blowfish. وتتمثل فكرتها الأساسية في استخدام إعداد المفتاح المكلف في Blowfish لتحقيق البطء المتعمد.

تنسيق تجزئة bcrypt

$2b$12$saltsaltsaltsaltsaltsalthashhashhashhashhashhashhash $2b$: إصدار الخوارزمية 12: عامل الكلفة (log2 لعدد التكرارات) salt: ‏22 محرفًا بترميز base64 (16 بايتًا) hash: ‏31 محرفًا بترميز base64 (24 بايتًا)

عامل الكلفة

الكلفة 12 = ‏2^12 = ‏4096 تكرارًا. والكلفة 13 = ‏8192 تكرارًا. تضاعف كل زيادة زمن الحساب. اضبطوا القيمة بحيث تستغرق التجزئة نحو 100 إلى 300 مللي ثانية على أجهزتكم. وتتدرج سرعة المهاجم بالطريقة نفسها.

bcrypt في Python

import bcrypt password = b'my_password' salt = bcrypt.gensalt(rounds=12) # generates random salt hashed = bcrypt.hashpw(password, salt) # Verify: bcrypt.checkpw(password, hashed) # True

Salt المضمّنة

تنشئ bcrypt قيمة Salt وتخزنها تلقائيًا دائمًا. تنتج gensalt() قيمة Salt عشوائية آمنة تشفيريًا بحجم 16 بايتًا. ولا تحتاجون إلى إدارة Salt بشكل منفصل، إذ تكون مضمنة في سلسلة التجزئة.

حد bcrypt البالغ 72 حرفًا

يقتطع bcrypt الإدخال عند 72 بايتًا. وتُعامَل كلمات المرور التي يزيد طولها على 72 حرفًا على أنها متطابقة بعد أول 72 بايتًا. الحل البديل: أجرِ تجزئة مسبقة باستخدام SHA-512 قبل bcrypt، ولكن تحقّق من ملاءمة هذا النهج.

سير عمل التحقق من كلمة المرور

تسجيل الدخول: 1. يرسل المستخدم كلمة المرور 2. استرجاع التجزئة المخزنة من قاعدة البيانات 3. bcrypt.checkpw(submitted, stored_hash) 4. تستخرج checkpw الملح من التجزئة المخزنة وتعيد حساب التجزئة 5. تُعيد True/False لا تخزّن كلمة المرور الأصلية مطلقًا.

نتائج القياس

كلفة bcrypt‏ 12: - معالج استهلاكي: نحو 150ms لكل تجزئة - وحدة معالجة الرسومات (RTX 4090): نحو 50,000 تجزئة/ثانية (مقابل 10B لخوارزمية SHA-256) تنخفض أفضلية المهاجم من مليار مرة إلى نحو 300 مرة عند استخدام كلفة bcrypt‏ 12.

توصيات عامل الكلفة

توصي OWASP لعام 2024 باستخدام عامل كلفة bcrypt‏ ≥ 10. الموصى به: 12. تحقّق سنويًا — ومع تحسّن الأجهزة، ارفع العامل. نفّذ إعادة التجزئة أثناء تسجيل الدخول: تحقّق من التجزئة ثم حدّثها إذا لزم الأمر.

قيود bcrypt

نقطة ضعف bcrypt هي أنه لا يتطلب ذاكرة كبيرة. ويمكن للمهاجمين استخدام ASICs مخصّصة ومحسّنة لـ bcrypt. في التطبيقات الجديدة، يُفضّل استخدام Argon2id، الذي يتطلب ذاكرة كبيرة ومقاوم لهجمات ASIC.

تحقّق سريعًا

ماذا يعني عامل الكلفة 12 في تجزئة bcrypt؟

مراجعة

تُعد bcrypt خوارزمية قوية، لكنها لا تتطلب ذاكرة كبيرة. سندرس بعد ذلك Argon2 — الخوارزمية الحديثة الرائدة في تجزئة كلمات المرور، مع متطلبات ذاكرة قابلة للضبط.

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

هل درس «bcrypt: الخوارزمية ومعامل الكلفة» مجاني؟

نعم — نص درس «bcrypt: الخوارزمية ومعامل الكلفة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «bcrypt: الخوارزمية ومعامل الكلفة»؟

تعلّم آلية عمل bcrypt الداخلية، ومعامل العمل، وضبط الكلفة بشكل سليم تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «bcrypt: الخوارزمية ومعامل الكلفة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. لماذا تفشل SHA-256 العادية مع كلمات المرور
  2. bcrypt: الخوارزمية ومعامل الكلفة
  3. Argon2: تجزئة كلمات المرور المعتمدة على الذاكرة
  4. PBKDF2 واختيار الخوارزمية المناسبة
← العودة إلى Cryptology Academy