مولد Bcrypt

5 من 2 تقييمات
مولد Bcrypt

مولد Bcrypt أداة مجانية تنشئ تجزئة bcrypt لكلمات المرور من أي سلسلة نصية، لتخزين كلمات المرور بأمان.

ما bcrypt، وهل ما زالت آمنة؟

Bcrypt خوارزمية لتجزئة كلمات المرور، وما زال استخدامها مقبولا عند ضبطها بتكلفة مناسبة، رغم أن الأنظمة الأحدث تفضل Argon2id في كثير من الأحيان. صمم نيلز بروفوس وديفيد مازيير خوارزمية bcrypt عام 1999، واعتمدا على عملية جدولة المفاتيح في تشفير Blowfish لجعل كل محاولة لتخمين كلمة المرور مكلفة عمدا.

التجزئة عملية أحادية الاتجاه. لذلك يتحقق التطبيق من كلمة المرور عبر تجزئة القيمة المدخلة باستخدام المعلمات المخزنة، بدلا من استعادة كلمة المرور الأصلية. وعلى خلاف الخوارزميات العامة مثل SHA-3، تنتج bcrypt سجلا مشفرا مستقلا وثابت الطول، يتضمن الإصدار والتكلفة والقيمة الملحية والمجموع الاختباري.

يتكون سجل bcrypt القياسي من 60 محرف ASCII. ويمثل مجموعه الاختباري 184 بت، ويظهر في صورة 31 محرفا باستخدام ترميز bcrypt الخاص المشابه لـ Base64. لا تعد bcrypt مكسورة من الناحية التشفيرية، لكنها تعاني قيدا مرتبطا بعمرها، إذ لا تعالج التطبيقات التقليدية أكثر من 72 بايت من بيانات الإدخال. كما توفر Argon2id حماية تعتمد على استهلاك الذاكرة، وهي ميزة لا توفرها bcrypt.

رسم توضيحي: يمر نص الإدخال عبر دالة Bcrypt فينتج ملخصًا ثابت الطول لا يمكن عكسه

كيف أستخدم مولد Bcrypt؟

أدخل السلسلة التي تريد تجزئتها، ثم شغل المولد وانسخ القيمة الظاهرة في حقل النتيجة تجزئة Bcrypt. احفظ النتيجة كاملة، ولا تستخرج المجموع الاختباري الأخير وحده.

  1. استخدم كلمة المرور أو السلسلة الاختبارية كما هي تماما، بما في ذلك حالة الأحرف والمسافات وعلامات الترقيم.
  2. أنشئ نتيجة bcrypt.
  3. انسخ المحارف الستين كاملة، بما فيها علامة الإصدار والتكلفة في البداية.
  4. احفظ النتيجة في عمود تجزئة كلمات المرور بقاعدة بياناتك.
  5. عند تسجيل الدخول، استخدم دالة التحقق من bcrypt التي توفرها منصتك، بدلا من إنشاء تجزئة ومقارنة النصين مباشرة.
أداة مولد Bcrypt على digily.link مع نموذج الإدخال

تستخدم bcrypt عادة قيمة ملحية عشوائية جديدة لكل تجزئة. لذلك قد تنتج عن تجزئة الإدخال نفسه مرتين قيمتان مختلفتان، مع نجاح التحقق من كلتيهما باستخدام ذلك الإدخال. هذا سلوك متوقع، ويمنع ظهور كلمات المرور المتطابقة في صورة قيم مخزنة متطابقة.

تتم المعالجة على الخادم. ينتقل إدخالك إلى الخادم عبر HTTPS ولا يتم تخزينه. إذا كنت تتعامل مع كلمة مرور حقيقية مستخدمة في بيئة إنتاج، فتحقق مما إذا كان إدخالها في أي خدمة خارجية عبر الإنترنت يتوافق مع سياسة الأمان في مؤسستك.

هل يمكن فك تجزئة bcrypt أو عكسها؟

لا، لا يمكن فك تجزئة bcrypt، لأنها ليست بيانات مشفرة ولا تحتوي على مفتاح لفك التشفير. والطريقة العملية لمهاجمتها هي تخمين كلمات المرور المحتملة، ثم اختبار كل تخمين مقابل التجزئة المخزنة.

تبطئ bcrypt عملية التخمين من خلال التكلفة القابلة للضبط. لكنها لا تستطيع تأمين كلمة مرور قصيرة أو شائعة أو سبق تسريبها، وقد ينجح مهاجم مصمم في اكتشاف المدخلات الضعيفة. تمنع القيمة الملحية المهاجمين من إعادة استخدام جدول واحد محسوب مسبقا ضد حسابات كثيرة، لكنها ليست سرية وتكون مضمنة في السجل المخزن.

مثال على نتيجة أنتجتها أداة مولد Bcrypt

كيف تقرأ نتيجة bcrypt؟

تتبع نتيجة bcrypt عادة تنسيق modular crypt. ومن أمثلة بنيتها $2y$12$[22-character salt][31-character checksum]. هذا مجرد توضيح للتنسيق، وليس تجزئة لكلمة مرور محددة.

الجزء الطول المعتاد الغرض
علامة الإصدار 4 محارف تحدد أحد متغيرات bcrypt، مثل $2y$ أو $2b$.
التكلفة 3 محارف تسجل تكلفة مكونة من رقمين، يتبعها فاصل.
القيمة الملحية 22 محرفا ترمز قيمة ملحية عشوائية بطول 128 بت.
المجموع الاختباري 31 محرفا يرمز مجموع bcrypt الاختباري بطول 184 بت.

احتفظ بهذه الأجزاء معا. فتغيير محرف واحد، أو اقتطاع القيمة، أو تخزينها في عمود أقصر من اللازم، يؤدي عادة إلى فشل التحقق. وقد تختلف علامة الإصدار بين المكتبات المتوافقة، لذا ينبغي للتطبيقات الاعتماد على واجهات برمجة تطبيقات موثوقة لكلمات المرور، بدلا من تحليل السجل وإعادة بنائه بنفسها.

متى أستخدم bcrypt؟

استخدم bcrypt لتجزئة كلمات المرور في الأنظمة التي تدعمها بالفعل، خصوصا عندما يكون التوافق مع قاعدة بيانات أو إطار عمل قائم مهما. صممت الخوارزمية لتكون بطيئة ولتستخدم قيمة ملحية، لذلك لا تناسب إنشاء مجموع اختباري عام للملفات أو معرف لإزالة التكرار.

  • الاستخدامات المناسبة: تشمل كلمات مرور التطبيقات، واختبار عمليات الترحيل، والتحقق من أحجام حقول قواعد البيانات، وإعادة إنشاء بيئة تطوير متوافقة مع bcrypt.
  • استخدم Argon2id بدلا منها: عند إنشاء نظام جديد لكلمات المرور، إذا كانت المنصة تدعمها ويمكن إدارة إعدادات الذاكرة فيها بصورة صحيحة.
  • استخدم SHA-3 بدلا منها: للتحقق من سلامة الملفات أو إنشاء بصمات للمحتوى أو إزالة التكرار. ينتج مولد SHA-3/384 ومولد SHA-3/512 ملخصات عامة الاستخدام، وليس سجلات لكلمات المرور.
  • لا تستخدم bcrypt: للتوقيعات الرقمية أو مصادقة الرسائل أو التشفير أو تخزين بيانات يجب استعادتها لاحقا.

تعالج المسافات وعلامات الترقيم والأرقام بوصفها بيانات إدخال، ولا يتم تجاهلها. أما المحارف ذات العلامات النطقية والمحارف غير اللاتينية، فترمز إلى بايتات قبل أن تعالجها bcrypt. لذلك يجب أن ينتج النظامان البايتات نفسها، باستخدام ترميز محارف متسق وتطبيع Unicode بالطريقة ذاتها. ويكتسب حد 72 بايت أهمية خاصة هنا، لأن محرف Unicode الواحد قد يشغل أكثر من بايت. يمكن من الناحية التقنية تجزئة إدخال فارغ، لكن كلمة المرور الفارغة لا توفر مقاومة حقيقية للتخمين.

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

ما مساحة قاعدة البيانات اللازمة لتخزين تجزئة bcrypt؟

خصص ما لا يقل عن 60 محرف ASCII لسجل bcrypt تقليدي. وقد يكون الحقل الأوسع قليلا مفيدا عند ترحيل خوارزمية كلمات المرور مستقبلا، بينما لا توجد حاجة إلى عمود ثنائي لتخزين الصيغة القياسية المرمزة.

هل يمكنني نقل تجزئات كلمات المرور الحالية من SHA إلى bcrypt؟

لا يمكنك تحويل ملخص SHA موجود إلى تجزئة bcrypt لكلمة المرور الأصلية من دون معرفة تلك الكلمة. من طرق الترحيل الشائعة التحقق من التجزئة القديمة عند تسجيل دخول المستخدم في المرة التالية، ثم تجزئة كلمة المرور التي أدخلها باستخدام bcrypt أو Argon2id واستبدال السجل القديم.

قبل حفظ النتيجة، تأكد من نسخ القيمة الكاملة المكونة من 60 محرفا، ومن أن حقل قاعدة البيانات لا يقتطعها، وأن التطبيق المستلم يدعم علامة الإصدار الموجودة في السجل.

الأدوات الشائعة