Junior — Middle
Hoe worden gebruikerswachtwoorden opgeslagen en beschermd in de PostgreSQL-database?
sobes.tech AI
Antwoord van AI
In PostgreSQL worden gebruikerswachtwoorden meestal niet in platte tekst opgeslagen. In plaats daarvan worden hashing en zout gebruikt om wachtwoorden te beschermen.
Belangrijkste benaderingen:
- Op applicatieniveau: het wachtwoord van de gebruiker wordt gehasht (bijvoorbeeld met bcrypt, Argon2 of PBKDF2) met toevoeging van een unieke zout, en alleen de hash wordt opgeslagen.
- Op PostgreSQL-niveau: voor authenticatie gebruikt het databasebeheersysteem zijn eigen mechanisme, waarbij wachtwoorden worden opgeslagen als hashes (MD5 of SCRAM-SHA-256).
Voorbeeld van wachtwoordopslag in de gebruikers tabel:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
Tijdens registratie in de applicatie:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// sla hash op in het veld password_hash
Op deze manier blijven de echte wachtwoorden van gebruikers beschermd, zelfs bij een datalek.