/** * Módulo de hash e verificação de senhas * Usa bcrypt para hashing seguro */ import bcrypt from "bcrypt"; const SALT_ROUNDS = 12; /** * Gera hash de senha usando bcrypt * @param password - Senha em texto plano * @returns Hash da senha */ export async function hashPassword(password: string): Promise { try { const hash = await bcrypt.hash(password, SALT_ROUNDS); return hash; } catch (error) { console.error("❌ Erro ao gerar hash de senha:", error); throw new Error("Falha ao processar senha"); } } /** * Compara senha em texto plano com hash * @param password - Senha em texto plano * @param hash - Hash armazenado * @returns true se a senha corresponde, false caso contrário */ export async function comparePassword( password: string, hash: string, ): Promise { try { const match = await bcrypt.compare(password, hash); return match; } catch (error) { console.error("❌ Erro ao comparar senha:", error); return false; } }