أنت لا تفعل. لا تخزن كلمات المرور في قاعدة البيانات. تقوم بتخزين ملفتجزئة كلمة المرور، سلسلة تم إنشاؤها من كلمة المرور ، ولكن لا يمكن لأي شخص الرجوع منها إلى قيمة كلمة المرور الأصلية.
باستخدام Node ، قم بتثبيتbcrypt
:
npm install bcrypt
اطلبها ، وحدد قيمة جولات الملح ، سنستخدمها لاحقًا:
const bcrypt = require('bcrypt')
const saltRounds = 10
إنشاء تجزئة كلمة المرور
قم بإنشاء تجزئة كلمة المرور باستخدام:
const hash = await bcrypt.hash('PASSWORD', saltRounds)
أينPASSWORD
هي سلسلة كلمة المرور الفعلية.
إذا كنت تفضل عمليات الاسترجاعات:
bcrypt.hash('PASSWORD', saltRounds, (err, hash) => {
})
ثم يمكنك تخزين ملفhash
قيمة في قاعدة البيانات.
تحقق من تجزئة كلمة المرور
للتحقق من كلمة المرور ، قارنها مع التجزئة المخزنة في قاعدة البيانات باستخدامbcrypt.compare()
:
const result = await bcrypt.compare('PASSWORD', hash)
//result is true or false
استخدام عمليات الاسترجاعات:
bcrypt.compare('somePassword', hash, (err, result) => {
//result is true or false
})