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