Sobes.tech
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.