/** * Passwort-Hashing mit bcrypt (plan.md Abschnitt 11: * "Passwoerter niemals selbst verschluesseln oder im Klartext speichern"). */ import bcrypt from 'bcryptjs'; /** Kostenfaktor: 12 Runden sind aktueller Standard (ca. 200-300 ms). */ const BCRYPT_ROUNDS = 12; /** Hasht ein Klartext-Passwort fuer die Speicherung in der Datenbank. */ export async function hashPassword(plainPassword: string): Promise { return bcrypt.hash(plainPassword, BCRYPT_ROUNDS); } /** Prueft ein Klartext-Passwort gegen den gespeicherten Hash. */ export async function verifyPassword( plainPassword: string, passwordHash: string, ): Promise { return bcrypt.compare(plainPassword, passwordHash); }