Sobes.tech
Junior — Middle

PostgreSQL veritabanında kullanıcı şifreleri nasıl saklanır ve korunur?

sobes.tech yapay zeka

AI'dan gelen yanıt

PostgreSQL'de kullanıcı şifreleri genellikle veritabanında açık biçimde saklanmaz. Bunun yerine, şifreleri korumak için hash ve tuz kullanılır.

Ana yaklaşımlar:

  • Uygulama seviyesinde: Kullanıcı şifresi (örneğin bcrypt, Argon2 veya PBKDF2 kullanılarak) benzersiz bir tuz eklenerek hash'lenir ve sadece hash veritabanına kaydedilir.
  • PostgreSQL seviyesinde: Kimlik doğrulama için, veritabanı kendi mekanizmasını kullanır ve şifreler hash (MD5 veya SCRAM-SHA-256) biçiminde saklanır.

Kullanıcı tablosunda şifre saklama örneği:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  username TEXT UNIQUE NOT NULL,
  password_hash TEXT NOT NULL
);

Kayıt sırasında uygulamada:

const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// hash'i password_hash alanına kaydet

Bu şekilde, veritabanı ihlali durumunda bile, kullanıcıların gerçek şifreleri korunmuş olur.