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