Utilidades de contraseñas
Overview
El archivo services/api/src/utils/passwords.js centraliza dos operaciones de seguridad para contraseñas: generar hashes y comparar contraseñas en texto plano contra hashes almacenados. El módulo usa bcryptjs y fija SALT_ROUNDS en 10 para ambas operaciones.
Este archivo pertenece a la capa de utilidades del backend API. Su propósito es ofrecer funciones reutilizables para manejar credenciales sin duplicar lógica de hashing o verificación.
[!NOTE] Ambas funciones son
asyncy devuelven unaPromise.
How it works
El módulo importa bcrypt desde bcryptjs y define una constante interna llamada SALT_ROUNDS. Luego expone dos funciones públicas: hashPassword y comparePassword.
hashPassword(plainPassword)llama abcrypt.hash(plainPassword, SALT_ROUNDS).comparePassword(plainPassword, passwordHash)llama abcrypt.compare(plainPassword, passwordHash).
En conjunto, el archivo cubre el ciclo básico de contraseñas:
- convertir una contraseña en un hash seguro;
- verificar si una contraseña coincide con un hash existente.
Key components
{
"title": "passwords.js",
"content": "M\u00f3dulo de utilidades para hashing y verificaci\u00f3n de contrase\u00f1as con bcryptjs. Expone helpers reutilizables para la capa API.",
"type": "function",
"filePath": "services/api/src/utils/passwords.js",
"badges": [
"public"
]
}
{
"title": "hashPassword",
"content": "Funci\u00f3n p\u00fablica as\u00edncrona que recibe una contrase\u00f1a en texto plano y devuelve su hash generado con bcrypt y SALT_ROUNDS.",
"type": "function",
"filePath": "services/api/src/utils/passwords.js",
"badges": [
"public"
]
}
{
"title": "comparePassword",
"content": "Funci\u00f3n p\u00fablica as\u00edncrona que compara una contrase\u00f1a en texto plano con un hash bcrypt y devuelve el resultado de la verificaci\u00f3n.",
"type": "function",
"filePath": "services/api/src/utils/passwords.js",
"badges": [
"public"
]
}
Data & fields
[
{
"name": "SALT_ROUNDS",
"type": "number",
"required": true,
"description": "Número de rondas de sal usado por bcrypt para generar hashes en este módulo."
},
{
"name": "plainPassword",
"type": "string",
"required": true,
"description": "Contraseña en texto plano que se hashea o compara."
},
{
"name": "passwordHash",
"type": "string",
"required": true,
"description": "Hash bcrypt contra el que se compara la contraseña en texto plano."
}
]
Behaviors
hashPassword[badge:public] — Genera un hash bcrypt a partir deplainPasswordy devuelve el valor resultante.comparePassword[badge:public] — ComparaplainPasswordconpasswordHashy devuelve el resultado debcrypt.compare.
Gotchas & edge cases
[!WARNING] El módulo no valida los valores de entrada. La función delega directamente en
bcryptjs, por lo que el comportamiento depende de los argumentos recibidos.
[!IMPORTANT]
SALT_ROUNDSestá fijado en10dentro del archivo. No se recibe como parámetro externo.
[!NOTE] Este archivo no define rutas HTTP, controladores ni endpoints. Solo expone utilidades de uso interno.
Related
Este módulo depende exclusivamente de bcryptjs y se ubica en services/api/src/utils. Por su forma de exportación, está pensado para ser reutilizado por otras partes del backend que necesiten hashing o verificación de contraseñas.