Junior — Middle
Ako sa ukladajú a chránia heslá používateľov v databáze PostgreSQL?
sobes.tech AI
Odpoveď od AI
V PostgreSQL sa často neukladajú heslá používateľov v otvorenom texte. Namiesto toho sa používajú hashovanie a soľ na ochranu hesiel.
Hlavné prístupy:
- Na úrovni aplikácie: používateľské heslo sa hash-uje (napríklad bcrypt, Argon2 alebo PBKDF2) s pridaním unikátnej soli, a do databázy sa uloží iba hash.
- Na úrovni PostgreSQL: pre autentifikáciu systém používa vlastný mechanizmus, kde sú heslá uložené vo forme hashov (MD5 alebo SCRAM-SHA-256).
Príklad uloženia hesla v tabuľke používateľov:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
Pri registrácii v aplikácii:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// uložiť hash do poľa password_hash
Týmto spôsobom zostávajú skutočné heslá používateľov chránené aj pri narušení databázy.