Sobes.tech
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

Овим се, чак и у случају компромитовања базе података, права лозинка корисника остаје заштићена.