Сохраняем пароли в базе данных
Как корректно сохранить пароли в базе данных
Так делать нельзя. Нельзя сохранять пароли в базе данных. Но можно сохранять хеши паролей (password hash).
Если Вы используете Node.js, установите библиотеку bcrypt
:
npm install bcrypt;
После этого нужно вызвать установленную библиотеку в проекте, и установить константу - так называемую, соль хеша, которая пригодится чуть позже:
const bcrypt = require('bcrypt');
const saltRounds = 10;
Теперь создадим хеш пароля:
const hash = await bcrypt.hash('PASSWORD', saltRounds)
где строка PASSWORD
- реальный пароль.
Хеш можно сгенерировать и с помощью callback-функции:
bcrypt.hash('PASSWORD', saltRounds, (err, hash) => {
})
Полученный хеш сохраняем в базе данных.
Для того, чтобы проверить пароль, сравнив его с полученным хешем, пригодится функция bcrypt.compare()
:
const result = await bcrypt.compare('PASSWORD', hash)
// возвращает true или false
или через callback-функцию:
bcrypt.compare('somePassword', hash, (err, result) => {
// возвращает true или false
})
Спасибо за внимание.