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 ველში
ამ გზით, მონაცემთა ბაზის დარღვევის შემთხვევაშიც კი, რეალური პაროლები დაცულია.