مولد كلمة المرور Bcrypt
أنشئ تجزئات bcrypt آمنة لكلمات المرور فوراً في متصفحك. اختر عامل التكلفة وقم بالتجزئة من جانب العميل — خاص تماماً ومجاني.
أنشئ تجزئات bcrypt آمنة لكلمات المرور فوراً في متصفحك. اختر عامل التكلفة وقم بالتجزئة من جانب العميل — خاص تماماً ومجاني.
bcrypt هي وظيفة تجزئة كلمة المرور صممها نيلز بروفوس وديفيد مازيير في عام 1999، وهي مستمدة من تشفير السمكة المنتفخة. على عكس وظائف التجزئة ذات الأغراض العامة مثل SHA-256، فإن bcrypt بطيء بشكل متعمد - وبطيء من حيث التكوين، عبر معلمة التكلفة - وهي بالضبط الخاصية التي تحتاجها أداة تجزئة كلمة المرور. تتيح وظيفة التجزئة الأسرع للمهاجمين فرض المزيد من المرشحين في الثانية؛ واحد أبطأ يحد منهم.
يتضمن bcrypt أيضًا ملحًا لكل كلمة مرور تلقائيًا، مما يزيل فئة كاملة من الهجمات بناءً على جداول قوس قزح المحسوبة مسبقًا. يتم تخزين معلمة الملح والتكلفة كجزء من مخرجات bcrypt، لذلك يحتاج التحقق فقط إلى التجزئة المخزنة وكلمة المرور المرشحة - ولا توجد إدارة منفصلة للملح. هذا المزيج من البطء والملح والتنسيق القائم بذاته جعل تشفير تجزئة كلمة المرور الافتراضية لمدة عقدين من الزمن خيارًا قويًا اليوم.
البدائل الحديثة موجودة. فاز Argon2 بمسابقة تجزئة كلمة المرور لعام 2015 ويوفر صلابة الذاكرة بالإضافة إلى صلابة الوقت. يقدم scrypt خصائص مماثلة. بالنسبة للتصميمات الجديدة، فإن Argon2id هو الخيار الموصى به. يظل bcrypt مقبولًا ومنتشرًا على نطاق واسع، خاصة في البيئات التي لا يتوفر فيها Argon2.
يعد تخزين كلمات المرور كنص عادي ممارسة خاطئة. إن تخزينها باستخدام تجزئة سريعة مثل SHA-256 لا يكاد يكون أفضل - حيث تحسب وحدات معالجة الرسوميات الحديثة مليارات من تجزئة SHA-256 في الثانية، مما يجعل هجمات القوة الغاشمة ضد أي كلمة مرور شائعة ممكنة في ساعات. يؤدي بطء bcrypt المتعمد إلى تغيير الاقتصاد: عند عامل التكلفة 12، ينفق المهاجم ما يقرب من 250 مللي ثانية لكل كلمة مرور مرشحة، مما يجعل القوة الغاشمة غير عملية لأي كلمة مرور غير تافهة.
يعمل الملح التلقائي لكل كلمة مرور الخاص بـ bcrypt أيضًا على التغلب على هجمات جدول قوس قزح. ينتج مستخدمان لهما نفس كلمة المرور تجزئات bcrypt مختلفة لأن أملاحهما تختلف. إن اختراق قاعدة بيانات كلمات المرور لا يسمح للمهاجم بالتعرف بسرعة على كلمات المرور الشائعة أو نتائج الجدول المحسوبة مسبقًا.
اكتب كلمة المرور، واختر التكلفة، واحصل على التجزئة.
يستخدم bcrypt مرحلة إعداد مفتاح تشفير السمكة المنتفخة المعدلة، ويتكرر مرتين بتكلفة. عامل التكلفة لوغاريتمي - التكلفة 12 أبطأ مرتين من التكلفة 11، وأربعة أضعاف أبطأ من التكلفة 10. يتيح هذا القياس اللوغاريتمي للمسؤولين زيادة التكلفة بمرور الوقت مع تحسن الأجهزة، دون إعادة تصميم النظام.
تنسيق الإخراج هو $version$cost$saltAndHash حيث يتم ترميز saltAndHash باستخدام base64 بأبجدية مخصصة. الإصدار عادةً ما يكون $2b$ (الإصدار الحديث مع إصلاح الخطأ الملتف) أو $2y$ (خاص بـPHP، ما يعادله). الملح 16 بايت. التجزئة 24 بايت. يقومون معًا بتشفير 53 حرفًا من custom-base64.
الحد الأقصى لطول الإدخال هو 72 بايت (حد طول مفتاح السمكة المنتفخة). يتم اقتطاع كلمات المرور الأطول بصمت، وهو أمر غريب في تشفير bcrypt منذ فترة طويلة. أفضل الممارسات هي إما الحد من طول كلمة المرور إلى 72 بايت أو التجزئة المسبقة باستخدام SHA-256 لتطبيع الطول قبل التشفير.