Назад к вопросам
Альфа-Банк
Junior — Middle
81
Каким образом осуществляется хранение и защита паролей пользователей в базе данных PostgreSQL?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В PostgreSQL пароли пользователей обычно не хранятся в базе данных в открытом виде. Вместо этого применяются хеширование и соль для защиты паролей.
Основные подходы:
- На уровне приложения: пароль пользователя хешируется (например, с помощью bcrypt, Argon2 или PBKDF2) с добавлением уникальной соли, и в базу записывается только хеш.
- На уровне PostgreSQL: для аутентификации пользователей СУБД используется собственный механизм, где пароли хранятся в виде хешей (MD5 или SCRAM-SHA-256).
Пример хранения пароля в таблице пользователей:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
В приложении при регистрации:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// сохранить hash в поле password_hash
Таким образом, даже при компрометации базы данных, реальные пароли пользователей остаются защищены.