Junior — Middle
Kā tiek glabāti un aizsargāti lietotāju paroles PostgreSQL datu bāzē?
sobes.tech AI
Atbilde no AI
PostgreSQL bieži lietotāju paroles parasti netiek glabātas atklātā tekstā datu bāzē. Tā vietā tiek izmantots hash un sāls, lai aizsargātu paroles.
Galvenie pieejas veidi:
- Lietojumprogrammas līmenī: lietotāja parole tiek hashēta (piemēram, ar bcrypt, Argon2 vai PBKDF2) ar unikālas sāls pievienošanu, un datu bāzē tiek saglabāts tikai hash.
- PostgreSQL līmenī: autentifikācijai datu bāze izmanto savu mehānismu, kur paroles tiek glabātas kā hash (MD5 vai SCRAM-SHA-256).
Paroles glabāšanas piemērs lietotāju tabulā:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
Reģistrācijas laikā lietojumprogrammā:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// saglabāt hash laukā password_hash
Tādējādi, pat ja datu bāze tiek uzlauzta, lietotāju reālās paroles paliek aizsargātas.