كيفية تخزين كلمات المرور في قاعدة البيانات

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

باستخدام 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
})