dr.Brain

doctor Brain

мир глазами веб-разработчика

Сохраняем пароли в базе данных

Как корректно сохранить пароли в базе данных

dr.Brain

время чтения 1 мин.

Photo by Jason Dent on Unsplash

Так делать нельзя. Нельзя сохранять пароли в базе данных. Но можно сохранять хеши паролей (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
})

Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.