Sobes.tech
Junior — Middle

Comment sont stockés et protégés les mots de passe des utilisateurs dans la base de données PostgreSQL?

sobes.tech IA

Réponse de l'IA

Dans PostgreSQL, les mots de passe des utilisateurs ne sont généralement pas stockés en clair dans la base de données. À la place, le hachage et le sel sont utilisés pour protéger les mots de passe.

Approches principales :

  • Au niveau de l'application : le mot de passe de l'utilisateur est haché (par exemple, avec bcrypt, Argon2 ou PBKDF2) en ajoutant un sel unique, et seul le hachage est enregistré dans la base.
  • Au niveau de PostgreSQL : pour l'authentification, le SGBD utilise son propre mécanisme, où les mots de passe sont stockés sous forme de hachages (MD5 ou SCRAM-SHA-256).

Exemple de stockage du mot de passe dans la table des utilisateurs :

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

Lors de l'inscription dans l'application :

const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// enregistrer le hash dans le champ password_hash

Ainsi, même en cas de compromission de la base de données, les mots de passe réels des utilisateurs restent protégés.