Junior — Middle
PostgreSQL verilənlər bazasında istifadəçilərin şifrələri necə saxlanılır və qorunur?
sobes.tech Süni İntellekt
AI-dan cavab
PostgreSQL-də istifadəçilərin şifrələri adətən verilənlər bazasında açıq formada saxlanmır. Bunun yerinə, şifrələri qorumaq üçün hash və duz istifadə olunur.
Əsas yanaşmalar:
- Tətbiq səviyyəsində: istifadəçinin şifrəsi (məsələn, bcrypt, Argon2 və ya PBKDF2 ilə) unikal duz əlavə edilərək hash-lənir və yalnız hash verilənlər bazasında saxlanılır.
- PostgreSQL səviyyəsində: autentifikasiya üçün, verilənlər bazası öz mexanizmini istifadə edir və şifrələr hash (MD5 və ya SCRAM-SHA-256) şəklində saxlanılır.
İstifadəçi cədvəlində şifrə saxlamanın nümunəsi:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
Qeydiyyat zamanı tətbiqdə:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// hash-i password_hash sahəsinə saxla
Bu şəkildə, verilənlər bazası pozulsa belə, istifadəçilərin həqiqi şifrələri qorunur.