Junior — Middle
Kako se čuvaju i štite lozinke korisnika u bazi podataka PostgreSQL?
sobes.tech АИ
Одговор од АИ
У 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
Овим се, чак и у случају компромитовања базе података, права лозинка корисника остаје заштићена.