Junior — Middle
Kuidas salvestatakse ja kaitstakse kasutajate paroole PostgreSQL andmebaasis?
sobes.tech AI
Vastus AI-lt
PostgreSQL-is ei tavaliselt kasutajate paroole andmebaasis salvestatud selgesõnalises vormis. Selle asemel kasutatakse hash'imist ja soola paroolide kaitsmiseks.
Peamised lähenemised:
- Rakenduse tasandil: kasutaja parool hash'itakse (näiteks bcrypt, Argon2 või PBKDF2 abil) unikaalse soola lisamisega ning ainult hash salvestatakse andmebaasi.
- PostgreSQL-i tasandil: autentimiseks kasutab andmebaas oma mehhanismi, kus paroolid salvestatakse hash'ide (MD5 või SCRAM-SHA-256) kujul.
Näide parooli salvestamisest kasutajate tabelis:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
Registreerimisel rakenduses:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// salvesta hash password_hash välja
Sellisel viisil jäävad kasutajate tegelikud paroolid kaitstuks isegi andmebaasi kompromiteerimisel.