تتمثل إحدى أفضل الطرق لتخزين كلمات المرور بشكل آمن في البحث عنها وتجزئتها. يؤدي التمليح والتجزئة إلى تحويل كلمة المرور العادية إلى قيمة فريدة يصعب عكسها. تتيح لك مكتبة bcrypt كلمات مرور التجزئة والملح في Node.js بجهد ضئيل جدًا.
ما هو تجزئة كلمة المرور؟
تجزئة كلمة المرور يعني تمرير كلمة مرور للنص العادي من خلال خوارزمية تجزئة لتوليد قيمة فريدة. بعض الأمثلة على خوارزميات التجزئة هي bcrypt و scrypt و SHA. الجانب السلبي للتجزئة هو أنه يمكن التنبؤ به.
في كل مرة تقوم فيها بتمرير نفس الإدخال إلى خوارزمية تجزئة ، ستولد نفس الإخراج. يمكن للمتسلل الذي يتمتع بإمكانية الوصول إلى كلمة المرور المجزأة إجراء هندسة عكسية للتشفير للحصول على كلمة المرور الأصلية. قد يستخدمون تقنيات مثل هجمات القوة الغاشمة أو طاولات قوس قزح. هذا هو المكان الذي يأتي فيه التمليح.
ما هو تمليح كلمة المرور؟
تمليح كلمة المرور يضيف سلسلة عشوائية (الملح) إلى كلمة المرور قبل تجزئتها. بهذه الطريقة ، ستكون التجزئة التي يتم إنشاؤها دائمًا مختلفة في كل مرة. حتى إذا حصل المتسلل على كلمة المرور المجزأة ، فمن غير العملي بالنسبة له اكتشاف كلمة المرور الأصلية التي أنشأتها.
كيفية استخدام bcrypt للتجزئة والتحقق من كلمة المرور
bcrypt هي وحدة npm التي تبسط تمليح كلمة المرور وتجزئة.
الخطوة 1: قم بتثبيت bcrypt
باستخدام npm:
npm التثبت bcrypt
باستخدام الغزل:
إضافة الغزل bcrypt
الخطوة الثانية: استيراد ملفات bcrypt
مقدار ثابت bcrypt = تطلب("bcrypt")
الخطوة الثالثة: استخرج الملح
لتوليد الملح ، اتصل ب bcrypt.genSalt () طريقة. تقبل هذه الطريقة قيمة عدد صحيح وهي عامل التكلفة الذي يحدد الوقت المستغرق لتجزئة كلمة المرور. كلما زاد عامل التكلفة ، زاد الوقت الذي تستغرقه الخوارزمية وزادت صعوبة عكس التجزئة باستخدام القوة الغاشمة. يجب أن تكون القيمة الجيدة عالية بما يكفي لتأمين كلمة المرور ولكن أيضًا منخفضة بما يكفي لعدم إبطاء العملية. يتراوح عادة بين 5 و 15. في هذا البرنامج التعليمي ، سوف نستخدم 10.
bcrypt.genSalt (10 ، (يخطئ ، ملح) => {
// استعمالملحلالتجزئةكلمه السر
})
الخطوة 4: تجزئة كلمة المرور
قم بتمرير كلمة المرور العادية والملح الذي تم إنشاؤه إلى ملف تجزئة () طريقة:
bcrypt.genSalt (10 ، (يخطئ ، ملح) => {
bcrypt.hash (نص عادي ، كلمة مرور ، ملح ، وظيفة(يخطئ ، التجزئة) {
// تخزين التجزئة في قاعدة البيانات
});
})
بمجرد إنشاء التجزئة ، قم بتخزينها في قاعدة البيانات. ستستخدمه للتحقق من كلمة المرور والمصادقة على مستخدم يحاول تسجيل الدخول.
بدلاً من إنشاء الملح والتجزئة بشكل منفصل ، يمكنك أيضًا إنشاء الملح والتجزئة تلقائيًا باستخدام وظيفة واحدة.
bcrypt.hash (نص عادي كلمة مرور ، 10, وظيفة(يخطئ ، التجزئة) {
// تخزين التجزئة في قاعدة البيانات
});
الخطوة 5: قارن كلمات المرور باستخدام bcrypt
ل مصادقة المستخدمين، سوف تحتاج إلى مقارنة كلمة المرور التي يقدمونها مع تلك الموجودة في قاعدة البيانات. bcrypt.compare () يقبل كلمة مرور النص العادي والتجزئة التي قمت بتخزينها ، إلى جانب وظيفة رد الاتصال. يوفر رد الاتصال هذا كائنًا يحتوي على أي أخطاء حدثت ، والنتيجة الإجمالية من المقارنة. إذا تطابقت كلمة المرور مع التجزئة ، فستكون النتيجة صحيحة.
bcrypt.compare (نص عادي ، كلمة مرور ، تجزئة ، وظيفة(يخطئ ، نتيجة) {
إذا (نتيجة) {
// كلمة المرور صالحة
}
});
استخدام Async / Await
يمكنك تجزئة كلمات المرور والتحقق منها باستخدام غير متزامن / انتظار على النحو التالي.
غير متزامنوظيفةhashPassword(نص عادي) {
مقدار ثابت التجزئة = انتظر bcrypt.hash (نص عادي كلمة مرور ، 10);
// تخزين التجزئة في قاعدة البيانات
}
// قارن كلمة المرور
غير متزامنوظيفةقارن(نص عادي) {
مقدار ثابت النتيجة = انتظر bcrypt.compare (نص عادي ، كلمة مرور ، تجزئة) ؛
إرجاع نتيجة؛
}
استخدام الوعود
تدعم مكتبة bcrypt أيضًا استخدام الوعود.
وظيفةhashPassword(نص عادي) {
bcrypt.hash(نص عادي, 10)
ثم (التجزئة => {
// تخزين التجزئة في قاعدة البيانات
})
.امساك(يخطئ => {
وحدة التحكم.log (يخطئ)
})
}
وظيفةقارن(نص عادي) {
bcyrpt.يقارن(نص عادي, التجزئة)
ثم (النتيجة => {
إرجاع نتيجة
})
.امساك(يخطئ => {
وحدة التحكم.log (يخطئ)
})
}
التجزئة والتمليح هو ربح سهل
يمكنك استخدام مكتبة bcrypt لتجزئة كلمات المرور والتحقق منها في Node.js. تقلل تجزئة كلمات المرور من فرص استخدام المجرمين الإلكترونيين لها للوصول إلى البيانات أو الخدمات الحساسة. تمليح كلمات مرورك المجزأة يجعلها أكثر أمانًا. بصرف النظر عن التجزئة ، تحقق دائمًا من قوة كلمة المرور كإجراء أمني إضافي.
أكثر 8 حيل شيوعًا تستخدم لاختراق كلمات المرور
اقرأ التالي
مواضيع ذات صلة
- برمجة
- حماية
- برمجة
- جافا سكريبت
- حماية
- الخوارزميات
نبذة عن الكاتب

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