Sobes.tech
Junior — Middle

როგორ ინახება და იცავს PostgreSQL მონაცემთა ბაზაში მომხმარებელთა პაროლები?

sobes.tech AI

პასუხი AI-სგან

PostgreSQL-ში მომხმარებლების პაროლები ჩვეულებრივ არ ინახება მონაცემთა ბაზაში ღია ტექსტში. ამის ნაცვლად, გამოიყენება ჰეშირება და მარილი, რათა დაცული იყოს პაროლები.

ძირითადი მიდგომები:

  • პროგრამის დონეზე: მომხმარებლის პაროლი ჰეშდება (მაგალითად, bcrypt, Argon2 ან PBKDF2-ის გამოყენებით) უნიკალური მარილის დამატებით, და მხოლოდ ჰეში ინახება მონაცემთა ბაზაში.
  • PostgreSQL-ის დონეზე: ავტორიზაციისთვის, მონაცემთა ბაზა იყენებს თავის მექანიზმს, სადაც პაროლები ინახება ჰეშების სახით (MD5 ან SCRAM-SHA-256).

პაროლის შენახვის მაგალითი მომხმარებელთა ცხრილში:

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

რეგისტრაციის დროს პროგრამაში:

const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// შენახეთ hash-ს password_hash ველში

ამ გზით, მონაცემთა ბაზის დარღვევის შემთხვევაშიც კი, რეალური პაროლები დაცულია.