Tecnología

Calculadora bcrypt: cost factor, tiempo por hash y seguridad

Ingresá el cost factor de bcrypt y calculá cuántos ms tarda cada hash, cuántos hashes/seg genera tu servidor y si cumple el mínimo OWASP 2026. Con tabla de referencia cost 8–16.

🗓️ Actualizado junio de 2026 Revisado por
Calculadora Gratis · Privada
Revisado por: (política editorial ) · Última revisión:
¿Tenés una web? Incrustá esta calculadora gratis Gratis — copiá el código y pegalo en tu web Embeber en tu sitio
<iframe src="https://hacecuentas.com/embed/calculadora-hashes-bcrypt-costo-tiempo-cracking" width="100%" height="560" style="border:1px solid #e2e8f0;border-radius:12px;max-width:720px" loading="lazy" title="Calculadora bcrypt: cost factor, tiempo por hash y seguridad"></iframe>
<p style="font-size:13px;text-align:center;margin:8px 0">Powered by <a href="https://hacecuentas.com" target="_blank" rel="noopener">Hacé Cuentas</a> — <a href="https://hacecuentas.com/calculadora-hashes-bcrypt-costo-tiempo-cracking" target="_blank" rel="noopener">Calculadora bcrypt: cost factor, tiempo por hash y seguridad</a></p>
Ver preview →

Pegalo en tu sitio. Dejá el link de crédito — gracias por compartir. Más widgets →

Cuando una base de datos se filtra —y pasa más seguido de lo que creés— la diferencia entre que los atacantes recuperen las contraseñas en horas o en siglos depende de una sola decisión técnica: qué algoritmo usaste para guardarlas y con qué parámetros. bcrypt sigue siendo la opción más usada en producción a nivel global, y su secreto es simple pero poderoso: hacerse deliberadamente lento.

Creado en 1999 por Niels Provos y David Mazières para OpenBSD, bcrypt usa el cifrado Blowfish con un mecanismo de expansión de clave adaptativo. El parámetro central es el factor de costo (cost factor): un número entero que determina cuántas iteraciones se ejecutan según la fórmula iteraciones = 2^cost. Cost 10 = 1.024 iteraciones. Cost 12 = 4.096 iteraciones. Cost 14 = 16.384 iteraciones. Cada vez que subís 1, el tiempo de cómputo se duplica exactamente.

Eso tiene una consecuencia brutal para los atacantes: una GPU RTX 4090 puede calcular más de 184.000 millones de hashes MD5 por segundo, pero con bcrypt cost=12 baja a apenas ~800 hashes por segundo. Ese freno artificial es el punto. No es un bug ni una ineficiencia: es el diseño.

El problema práctico para los desarrolladores es encontrar el balance: demasiado bajo y la seguridad es insuficiente frente al hardware de 2025–2026; demasiado alto y el servidor no aguanta la carga de autenticaciones concurrentes.

Esta calculadora te muestra exactamente eso: dado un cost factor, cuántos hashes por segundo puede generar tu servidor, cuánto tarda un atacante con hardware moderno en crackear una contraseña típica, y si tu configuración actual cumple con las recomendaciones vigentes de OWASP. Sin necesidad de correr benchmarks en producción.

Cuándo usar esta calculadora

  • Un desarrollador freelance configura el login de un e-commerce y elige cost=12: cada autenticación tarda ~100 ms, lo que permite hasta 10 logins/seg por núcleo de CPU sin afectar la experiencia del usuario.
  • Una fintech que almacena datos de tarjetas de crédito evalúa subir de cost=12 a cost=14: la calculadora muestra que el tiempo de cómputo se cuadruplica a ~400 ms/hash, reduciendo la capacidad de un servidor de 4 núcleos de 2.400 a 600 logins/minuto — y decide escalar horizontalmente antes de subir el cost.
  • Un sysadmin descubre que la app heredada usa cost=8 (configuración de 2012): la calculadora confirma que una RTX 4090 puede intentar ~12.800 hashes/seg, reduciendo el tiempo de cracking de una contraseña de 8 caracteres alfanuméricos de años a meses — justificando una migración urgente.
  • Un equipo de seguridad de una empresa de salud compara bcrypt cost=13 vs Argon2id para una nueva plataforma de historia clínica digital: usan la calculadora para estimar la carga de CPU con 200 autenticaciones simultáneas y determinar si el hardware actual los soporta.
  • Un estudiante de sistemas aprende la diferencia entre SHA-256 y bcrypt: con la calculadora visualiza que cost=10 genera ~40 hashes/seg vs los 20.000 millones de SHA-256/seg de la misma GPU — un factor de ~500 millones de veces más lento.
  • Un CTO debe justificar ante el directorio por qué migrar de MD5 (sistema legado) a bcrypt cost=12 implica un costo de infraestructura mayor pero reduce el riesgo de breach a niveles aceptables según OWASP.
  • Un pentester evalúa cuánto tiempo le llevaría a un atacante con una granja de 10 GPUs RTX 4090 crackear las contraseñas robadas de una base de datos con cost=10: la calculadora le permite estimar el impacto real y reportarlo con números concretos en su informe.
  • Un desarrollador de una app de gobierno digital en Argentina revisa si su configuración bcrypt cumple con las buenas prácticas de seguridad para sistemas que manejan datos de ciudadanos, alineándose con las recomendaciones de la Oficina Nacional de Tecnologías de Información (ONTI).

Tiempo de cracking por tipo de contraseña con bcrypt cost=12

Ataque offline con 1 GPU RTX 4090 (~800 hashes/seg). Tiempo para recorrer todo el espacio de claves.

ContraseñaCombinacionesTiempo estimado (1 GPU)
4 dígitos (PIN)10.00012 segundos
6 dígitos1.000.00021 minutos
6 alfanuméricos (62 chars)5,68×10¹⁰~2 años
8 alfanuméricos2,18×10¹⁴~8.650 años
8 con símbolos (95 chars)6,63×10¹⁵~263.000 años
10 alfanuméricos8,39×10¹⁷~33 millones de años
12 con símbolos5,40×10²³> 2×10¹³ años

tiempo = combinaciones ÷ (hashes/seg). Combinaciones = (chars posibles)^longitud. Con cost=10 los tiempos se dividen por ~4; con cost=14 se multiplican por ~4. La longitud de la contraseña pesa mucho más que el cost factor.

Cómo funciona

Cómo se calcula el tiempo de bcrypt

El tiempo de cómputo de un hash bcrypt escala de forma exponencial con el cost factor. La relación fundamental es:

iteraciones = 2^cost

tiempo_hash ≈ tiempo_base × 2^(cost - cost_base)

hashes_por_segundo = 1 / tiempo_hash_en_segundos

Ejemplo concreto: Si en tu servidor cost=10 tarda 25 ms (≈ 40 hashes/seg), entonces:

  • cost=12 → 25 ms × 2^(12-10) = 25 × 4 = 100 ms (≈ 10 hashes/seg)

  • cost=14 → 25 ms × 2^(14-10) = 25 × 16 = 400 ms (≈ 2,5 hashes/seg)
  • El tiempo de cracking de un atacante con hardware dedicado se estima así:

    tiempo_cracking = tamaño_espacio_contraseña / hashes_por_segundo_atacante
    
    tamaño_espacio = caracteres_posibles ^ longitud
    
    Ejemplo 8 chars alfanuméricos: 62^8 ≈ 218.340.105.584.896 combinaciones

    ---

    Tabla de referencia: bcrypt cost factor vs seguridad

    CostIteracionesTiempo/hash (CPU)Hashes/seg CPUHashes/seg GPU RTX 4090Cracking 8 chars alfanum. (GPU)
    8256~6 ms~167~12.800~198 días
    101.024~25 ms~40~3.200~2,2 años
    112.048~50 ms~20~1.600~4,3 años
    124.096~100 ms~10~800~8,7 años ✓ OWASP mín.
    138.192~200 ms~5~400~17,4 años
    1416.384~400 ms~2,5~200~34,8 años
    1665.536~1.600 ms~0,6~50~138 años

    > Los valores de GPU corresponden a ataques offline con hashcat sobre hardware 2024–2025. Espacio estimado: contraseña de 8 caracteres alfanuméricos (62 chars posibles, mayúsculas + minúsculas + dígitos).

    ---

    Casos típicos

    Caso 1 — App web con login de usuarios (cost=12)


    Un servidor con CPU de 4 núcleos (tipo AWS t3.medium) genera aproximadamente 10 hashes/seg por núcleo con cost=12. Con 500 usuarios que inician sesión en el pico del día (distribuidos en 60 segundos), necesitás procesar ~8 hashes/seg, lo cual cabe cómodamente. Un atacante con RTX 4090 que roba la base de datos puede intentar ~800 hashes/seg, tardando estadísticamente ~8,7 años en crackear una contraseña de 8 caracteres alfanuméricos. Cost=12 es el mínimo recomendado por OWASP para 2025.

    Caso 2 — Sistema de salud o bancario (cost=14)


    Para datos sensibles, cost=14 sube el tiempo por hash a ~400 ms. Esto reduce los intentos de un atacante GPU a ~200 hashes/seg, extendiendo el cracking a ~35 años para una contraseña de 8 caracteres. El impacto en UX es aceptable si los logins no son masivamente concurrentes: un servidor puede autenticar ~150 usuarios/minuto por núcleo.

    Caso 3 — Contraseña débil (cost=12, 6 chars numéricos)


    Con cost=12 y una contraseña de solo 6 dígitos (10^6 = 1.000.000 combinaciones), un atacante GPU tarda: 1.000.000 / 800 = 1.250 segundos ≈ 21 minutos. Esto demuestra que el cost factor no salva contraseñas cortas: la longitud y complejidad de la contraseña sigue siendo crítica.

    ---

    Errores comunes

    1. Usar cost=4 o cost=6 en producción → Valores usados en tests/benchmarks, pero en producción permiten millones de intentos por hora incluso en CPU. Nunca usar cost < 10 en sistemas reales.

    2. Confundir "rondas" con "iteraciones" → En bcrypt, el parámetro que se configura se llama "work factor" o "cost", no "rondas" directamente. Las rondas internas son siempre 64; el cost controla la expansión de clave (2^cost veces).

    3. Comparar bcrypt con MD5 o SHA-256 en contexto de contraseñas → MD5 y SHA-256 son hashes de propósito general, diseñados para ser rápidos. Una GPU puede calcular >10.000 millones de hashes MD5/seg, haciendo inútil cualquier contraseña corta. bcrypt es deliberadamente lento.

    4. No actualizar el cost factor con el paso del tiempo → La recomendación es que el hash de una contraseña tarde al menos 100 ms. A medida que el hardware se vuelve más potente, el cost debe incrementarse. Un sistema que usaba cost=10 en 2015 debería haber migrado a cost=12 o más para 2025.

    5. Hashear la contraseña antes de pasarla a bcrypt → bcrypt tiene un límite interno de 72 bytes. Si pre-hasheás con SHA-256 (salida binaria de 32 bytes) para sortear el límite, recordá usar la representación hexadecimal o base64 para no introducir bytes nulos que truncan el input.

    Ejemplo: bcrypt cost=12 (recomendado OWASP)

    Cost factor ingresado: 12
    Iteraciones = 2^12 = 4.096
    Tiempo por hash ≈ 100 ms en CPU moderna
    Hashes/seg servidor = 1000 / 100 = 10 hashes/seg por núcleo
    GPU RTX 4090 ≈ 800 hashes/seg
    Contraseña 8 chars alfanuméricos (62^8 ≈ 218.000 millones): 218.000.000.000 / 800 / 3.600 / 24 / 365 ≈ 8,7 años en crackear
    Cost=12: ~100 ms/hash, ~10 hashes/seg, cumple OWASP 2026

    Preguntas frecuentes

    ¿Qué es el cost factor de bcrypt y cómo afecta la seguridad?
    El cost factor es un parámetro entero (típicamente entre 4 y 31) que determina cuántas rondas de expansión de clave ejecuta bcrypt. La fórmula es exacta: iteraciones = 2^cost. Con cost=10 se ejecutan 1.024 iteraciones; con cost=12, 4.096; con cost=14, 16.384. Cada incremento de 1 duplica el tiempo de cómputo. Esto tiene dos efectos directos: (1) hace más lento cualquier intento de fuerza bruta o diccionario, ya que el atacante debe pagar ese costo por cada contraseña que intenta; (2) permite adaptar la seguridad al hardware disponible sin cambiar el algoritmo. El cost queda embebido en el hash resultante (formato $2b$12$...), por lo que siempre sabés con qué parámetro fue generado.
    ¿Qué cost factor de bcrypt se recomienda usar en 2025–2026?
    OWASP (Open Worldwide Application Security Project) establece que el hash de una contraseña debe tardar al menos 100 ms en el servidor de producción. En hardware de CPU moderno (Intel/AMD de última generación, 2024–2025), eso equivale aproximadamente a cost=12. Para sistemas con datos sensibles — salud, finanzas, datos de acceso a infraestructura crítica — se recomienda cost=13 o cost=14. El valor mínimo aceptable para cualquier sistema en producción activa es cost=10; por debajo de eso, el hardware moderno puede reducir el tiempo de cracking a rangos prácticos para un atacante.
    ¿Por qué bcrypt es mucho más seguro que SHA-256 o MD5 para almacenar contraseñas?
    SHA-256 y MD5 son funciones hash de propósito general: están diseñadas para ser rápidas. Una GPU RTX 4090 puede calcular más de 184.000 millones de hashes MD5 por segundo y más de 20.000 millones de SHA-256 por segundo. Eso permite a un atacante probar todas las contraseñas de 8 caracteres en cuestión de horas. bcrypt con cost=12 en la misma GPU genera apenas ~800 hashes por segundo — un factor de hasta 25 millones de veces más lento. La diferencia no es que bcrypt sea más complejo matemáticamente, sino que fue diseñado específicamente para ser costoso en tiempo y resistente a aceleración por hardware especializado (GPUs, FPGAs, ASICs).
    ¿Cómo se puede migrar el cost factor en una aplicación que ya está en producción?
    bcrypt fue diseñado para ser compatible hacia adelante: podés cambiar el cost factor en cualquier momento sin invalidar las contraseñas existentes. El proceso es transparente para los usuarios: cuando alguien inicia sesión, el sistema verifica la contraseña con el hash almacenado (que incluye el cost original), y si la verificación es exitosa, re-hashea la contraseña con el nuevo cost y reemplaza el hash en la base de datos. Con el tiempo, todos los usuarios activos migran naturalmente. Para los usuarios inactivos, los hashes viejos siguen siendo válidos. Si necesitás una migración más agresiva, podés forzar un reset de contraseña para usuarios con hashes de cost bajo — práctica recomendada si el cost original estaba por debajo de 10.
    ¿bcrypt tiene algún límite técnico importante que deba conocer?
    Sí, uno crítico: bcrypt tiene un límite de 72 bytes en la longitud de la contraseña. Cualquier byte más allá del 72° es silenciosamente ignorado. Esto significa que dos contraseñas que comparten los primeros 72 bytes producen exactamente el mismo hash, aunque difieran en los caracteres siguientes. En la práctica, afecta muy poco a contraseñas cotidianas (pocas superan 72 caracteres en ASCII), pero es un riesgo en sistemas que permiten passphrase muy largas. La solución estándar es pre-hashear la contraseña con SHA-256 (en formato hexadecimal o base64) antes de pasarla a bcrypt, o migrar a Argon2id, que no tiene este límite.
    ¿Cuánto tiempo tardaría crackear una contraseña si alguien roba la base de datos?
    Con cost=12 y una GPU RTX 4090 (~800 hashes/seg), los tiempos estimados son: contraseña de 4 dígitos (10.000 combinaciones) → menos de 1 segundo; contraseña de 6 dígitos (1.000.000 combinaciones) → ~21 minutos; contraseña de 8 caracteres alfanuméricos (62^8 ≈ 218.000 millones) → ~8,7 años; contraseña de 10 caracteres con símbolos (95^10 ≈ 5,9 × 10^19) → más de 2 millones de años. Con cost=10 (~3.200 hashes/seg GPU), esos tiempos se dividen por ~4. La conclusión práctica: la longitud de la contraseña es el factor más determinante; 12+ caracteres con variedad hacen el ataque inviable incluso con hardware de punta.
    ¿Cómo afecta el cost factor al rendimiento del servidor bajo carga real?
    Con cost=12 (~100 ms/hash en CPU moderna), un único núcleo de CPU puede procesar aproximadamente 10 logins/seg. Un servidor de 4 núcleos físicos puede manejar ~40 logins/seg o ~2.400 logins/minuto. Para la mayoría de las aplicaciones web, esto es más que suficiente. Si tu sistema tiene picos de autenticación altos, las estrategias recomendadas son: implementar una cola de autenticación asíncrona, limitar intentos de login para reducir la carga generada por bots, y escalar horizontalmente. Subir de cost=12 a cost=14 cuadruplica el tiempo (~400 ms/hash), reduciendo la capacidad a ~600 logins/minuto por servidor de 4 núcleos.
    ¿El salt en bcrypt tengo que generarlo yo o lo hace la librería?
    La librería lo hace automáticamente. bcrypt genera un salt aleatorio de 128 bits (16 bytes) cada vez que creás un hash nuevo. Este salt queda embebido en el string resultante: el formato completo es $2b$[cost]$[22 chars de salt][31 chars de hash], todo junto en una cadena de 60 caracteres. Gracias a esto, dos usuarios con la misma contraseña tienen hashes completamente distintos, lo que elimina los ataques con tablas rainbow. Nunca generés ni reutilicés salts manualmente salvo que estés trabajando con una implementación de muy bajo nivel por razones muy específicas.
    ¿Qué diferencia hay entre bcrypt, scrypt y Argon2id?
    Los tres son algoritmos diseñados para hashing de contraseñas con costo ajustable, pero difieren en qué recursos consumen. bcrypt (1999) solo ajusta costo de CPU. scrypt (2009) agrega costo de memoria configurable, encareciendo los ataques con hardware paralelo masivo. Argon2id (ganador de la Password Hashing Competition 2015, estandarizado en RFC 9106) es el más moderno: permite configurar CPU, memoria y paralelismo simultáneamente. OWASP recomienda Argon2id como primera opción para sistemas nuevos, y bcrypt como alternativa madura y probada cuando Argon2id no está disponible. En la práctica, bcrypt sigue siendo la opción más universal por soporte en librerías de todos los lenguajes.
    ¿Qué es exactamente el string que devuelve bcrypt y cómo se interpreta?
    bcrypt devuelve una cadena de exactamente 60 caracteres con este formato: $2b$12$RbKmHPGKpLEjBmmmkf7VYubGqDCGkHp3jm0LkSdW0v7fqN.mLfxVe. Desglosado: $2b$ = versión del algoritmo (2b es la más moderna y recomendada); 12$ = el cost factor usado; los siguientes 22 caracteres = el salt en base64; los últimos 31 caracteres = el hash en base64. Cuando verificás una contraseña, la librería extrae el cost y el salt del string almacenado, re-calcula el hash, y compara — nunca guardás la contraseña en texto plano en ningún paso. Este formato autónomo (self-contained) es una de las grandes ventajas de bcrypt: no necesitás columnas separadas para salt y costo en tu base de datos.
    ¿Hay alguna normativa argentina que obligue a usar bcrypt u otro algoritmo específico?
    No existe en Argentina una ley que obligue explícitamente a usar bcrypt u otro algoritmo de hashing específico. Sin embargo, la Ley 25.326 de Protección de Datos Personales obliga a implementar medidas de seguridad adecuadas para proteger datos personales. La ONTI emite guías de buenas prácticas para sistemas del Estado que referencian estándares NIST y OWASP. Para el sector financiero, el BCRA emite comunicaciones sobre seguridad informática que exigen controles adecuados sin especificar algoritmos. En la práctica, seguir OWASP es el estándar de facto para demostrar diligencia razonable en caso de un incidente.
    ¿bcrypt sigue siendo relevante en 2025–2026 o está obsoleto?
    bcrypt sigue siendo completamente relevante y ampliamente recomendado en 2025–2026. Tiene 25+ años de análisis criptográfico sin vulnerabilidades fundamentales conocidas. Está disponible en prácticamente todos los lenguajes y frameworks modernos (Node.js, Python, PHP, Ruby, Java, Go, .NET). OWASP lo lista como opción válida en su Password Storage Cheat Sheet actualizado en 2024. La única razón para migrar a Argon2id en sistemas nuevos es que Argon2id resiste mejor ataques con hardware masivo paralelo gracias a su componente de memoria. Para sistemas existentes en bcrypt con cost adecuado, no hay urgencia de migrar.

    Metodología y confianza

    Editorial

    Calculadora de tecnología revisada por el equipo editorial de Hacé Cuentas, contrastada con OWASP Password Storage Cheat Sheet, según nuestra política editorial y metodología.

    Actualización

    Última revisión: 12 de junio de 2026. Los parámetros se verifican periódicamente con las fuentes citadas.

    Privacidad

    Los cálculos corren 100% en tu navegador. No guardamos ni transmitimos tus datos.

    Limitaciones

    Resultados orientativos. Para decisiones críticas, consultá con un profesional.

    📌 Cómo citar esta calculadora

    Rodríguez, M. (2026). Calculadora bcrypt: cost factor, tiempo por hash y seguridad. Hacé Cuentas. https://hacecuentas.com/calculadora-hashes-bcrypt-costo-tiempo-cracking

    Contenido bajo licencia CC-BY 4.0 — reutilizable citando la fuente con enlace a Hacé Cuentas.

    ✉️ Reportar un error en esta calculadora