¿Qué es el cost factor de bcrypt y por qué importa?
bcrypt lleva más de 20 años siendo el estándar del sector. Cada login en tu app es un hash de contraseña + comparación con la base de datos. Cuanto más lento el hash, más le cuesta a un atacante adivinar contraseñas probando millones de combinaciones. Aquí entra el "cost factor": un parámetro que escala exponencialmente el tiempo de cómputo.
Cost 10 = ~10 ms por hash (hardware rápido, login rápido). Cost 12 = ~40 ms. Cost 14 = ~160 ms. Cost 16 = >0,5 s (login notablemente lento). Compromiso: demasiado bajo = fuerza bruta fácil. Demasiado alto = mala UX y mayor coste de servidor.
OWASP recomienda en 2025: apunta a 250-500 ms por hash en tu hardware de producción. Lanza el benchmark aquí en tu máquina y ve qué cost factor cae en esa ventana.
Todo se ejecuta en local. Tu contraseña de prueba no sale del navegador.
Cómo usar
- Pulsa Lanzar benchmark. La herramienta hashea una contraseña de muestra con cost factors 4, 6, 8, 10, 12, 14 (tres veces cada uno).
- Un momento después ves el gráfico: eje Y en milisegundos, cada barra es un cost distinto. Las barras crecen exponencialmente (cada cost es 2× más lento que el anterior).
- Recomendación: el cost más alto que aún cabe en la ventana de 250-500 ms (barra verde). Pon ese número en la config de tu app.
- Abajo: el Quick-test te deja hashear cualquier contraseña a cualquier cost y ver el tiempo exacto + el hash bcrypt para esa contraseña en este dispositivo.
- Recuerda: el cost en tu portátil no es el cost en tu servidor de producción. Lanza el benchmark en el hardware real donde correrá tu app.
Cuándo usarlo
Cinco situaciones comunes en las que un analizador de cost ayuda:
- Elegir un cost para una app nueva. Estás hasheando contraseñas de usuario por primera vez y necesitas un cost. El benchmark te dice: en este VPS, cost 12 son 280 ms, perfecto.
- Migrar a un cost más fuerte. Tu app ha usado cost 10 durante 3 años, toca subirlo. El benchmark muestra que cost 13 ahora son solo 200 ms en los servidores nuevos.
- Diagnosticar logins lentos. Los usuarios se quejan de logins de 2 segundos. Benchmark: ah, el equipo puso cost 16, demasiado alto para esta máquina.
- Comparar hardware. Servidor viejo vs instancia AWS nueva: ¿cuánto cost te puedes permitir?
- Formación al equipo. Enseña a un junior cómo funciona el cost factor y por qué MD5 no basta.
Para generar otros hashes (SHA-256, MD5, Argon2), usa el generador de hash de contraseñas. Para comprobar si una contraseña está filtrada, usa contraseñas filtradas.