Generador de Contraseñas Bcrypt
Genera hashes bcrypt seguros para contraseñas al instante en tu navegador. Elige tu factor de coste y hashea contraseñas en el cliente — completamente privado y gratuito.
Genera hashes bcrypt seguros para contraseñas al instante en tu navegador. Elige tu factor de coste y hashea contraseñas en el cliente — completamente privado y gratuito.
bcrypt es una función de hash de contraseñas diseñada por Niels Provos y David Mazières en 1999, derivada del cifrado Blowfish. A diferencia de las funciones hash de propósito general como SHA-256, bcrypt es deliberadamente lento (y configurable lento, a través de un parámetro de costo), que es exactamente la propiedad que necesita un hasher de contraseñas. Una función hash más rápida permite a los atacantes aplicar fuerza bruta a más candidatos por segundo; uno más lento los limita.
bcrypt también incorpora sal por contraseña automáticamente, eliminando toda una clase de ataques basados en tablas Rainbow precalculadas. El parámetro salt y cost se almacenan como parte de la salida de bcrypt, por lo que la verificación solo necesita el hash almacenado y la contraseña candidata, sin una administración de salt separada. Esta combinación de lentitud, sal y formato autónomo convirtió a bcrypt en el hash de contraseña predeterminado durante dos décadas y en una buena opción en la actualidad.
Existen alternativas modernas. Argon2 ganó el Concurso de Hashing de Contraseñas de 2015 y ofrece dureza de la memoria además de dureza del tiempo. scrypt ofrece propiedades similares. Para diseños nuevos, Argon2id es la opción recomendada. bcrypt sigue siendo aceptable y ampliamente implementado, particularmente en entornos donde Argon2 no está disponible.
Almacenar contraseñas como texto sin formato es una mala práctica. Almacenarlos con un hash rápido como SHA-256 es apenas mejor: las GPU modernas calculan miles de millones de hashes SHA-256 por segundo, lo que hace que los ataques de fuerza bruta contra cualquier contraseña común sean factibles en horas. La lentitud deliberada de bcrypt cambia la economía: con un factor de costo de 12, un atacante gasta aproximadamente 250 ms por contraseña candidata, lo que hace que la fuerza bruta sea poco práctica para cualquier contraseña no trivial.
El salt automático por contraseña de bcrypt también derrota los ataques de la tabla Rainbow. Dos usuarios con la misma contraseña producen diferentes hashes de bcrypt porque sus sales difieren. Comprometer la base de datos de contraseñas no permite que un atacante identifique rápidamente contraseñas comunes o visitas a tablas precalculadas.
Escriba una contraseña, elija el costo y obtenga el hash.
bcrypt utiliza una fase de configuración de clave de cifrado Blowfish modificada, repetida 2 ^ veces de costo. El factor de costo es logarítmico: el costo 12 es dos veces más lento que el costo 11, cuatro veces más lento que el costo 10. Esta escala logarítmica permite a los administradores aumentar el costo con el tiempo a medida que mejora el hardware, sin rediseñar el sistema.
El formato de salida es $version$cost$saltAndHash donde saltAndHash está codificado en base64 con un alfabeto personalizado. La versión suele ser $2b$ (la variante moderna con el error solucionado) o $2y$ (específico de PHP, equivalente). La sal es de 16 bytes; el hash es de 24 bytes; juntos codifican 53 caracteres de base64 personalizada.
La longitud máxima de entrada es 72 bytes (límite de longitud de la clave Blowfish). Las contraseñas más largas se truncan silenciosamente, lo cual es una peculiaridad de larga data de bcrypt. La mejor práctica es limitar la longitud de la contraseña a 72 bytes o realizar un hash previo con SHA-256 para normalizar la longitud antes de bcrypt.