Generador y verificador de hashes bcrypt

Almacenar contraseñas con MD5 o SHA256 las deja expuestas porque esos algoritmos son demasiado rápidos. Una GPU moderna prueba miles de millones de intentos por segundo contra ellos. Los desarrolladores necesitan un algoritmo deliberadamente lento y con sal, pero configurarlo localmente solo para probar un hash hace perder tiempo.

Este generador de hashes bcrypt crea hashes de contraseña seguros con un factor de coste que tú controlas. Pega una contraseña, elige un factor de trabajo y obtén al instante un hash bcrypt válido. También puedes verificar un hash existente con un texto plano, y todo se ejecuta en tu navegador.

Hashing solo en el navegador
Genera y verifica bcrypt
Control personalizado del factor de coste

Crea o verifica un hash bcrypt

Almacenar contraseñas con MD5 o SHA256 las deja expuestas porque esos algoritmos son demasiado rápidos. Una GPU moderna prueba miles de millones de intentos por segundo contra ellos. Los desarrolladores necesitan un algoritmo deliberadamente lento y con sal, pero configurarlo localmente solo para probar un hash hace perder tiempo.

Coste de bcrypt
12
Prefijo del hash
$2b$ (valor moderno predeterminado)
0 caracteres
0 bytes

Usa $2b$ para la salida moderna predeterminada o $2y$ cuando necesites un formato compatible con PHP.

¿Qué es un generador de hashes bcrypt?

Un generador de hashes bcrypt, también llamado generador de hashes de contraseñas bcrypt, convierte una contraseña en texto plano en un hash bcrypt seguro. Bcrypt es una función de hashing de contraseñas basada en el cifrado Blowfish, diseñada por Niels Provos y David Mazières en 1999. A diferencia de hashes rápidos como MD5, bcrypt es deliberadamente lento para resistir ataques de fuerza bruta.

Esta herramienta produce un hash estándar de 60 caracteres que cualquier biblioteca bcrypt puede verificar. También funciona como verificador bcrypt y comprueba si una contraseña coincide con un hash que ya tienes. Ambas acciones se realizan completamente en tu dispositivo, por lo que ninguna contraseña se envía a un servidor.

Cómo usar este generador de hashes bcrypt

Usar este generador de hashes bcrypt en línea solo lleva unos segundos y no requiere cuenta ni instalación. La herramienta funciona en cualquier navegador moderno de escritorio y móvil. Sigue estos pasos para generar o verificar un hash.

  • Introduce tu contraseña en texto plano en el campo de entrada.
  • Elige un factor de coste, normalmente entre 10 y 12.
  • Haz clic en Generar para crear el hash bcrypt.
  • Para verificar, pega un hash existente y el texto plano y después haz clic en Verificar.

El generador crea una sal aleatoria nueva cada vez que lo ejecutas. Esto significa que la misma contraseña produce un hash diferente en cada generación. Ese comportamiento es correcto y esperado, y la función de verificación permite confirmar una coincidencia.

Comprender el formato de un hash bcrypt

Cada hash bcrypt sigue una estructura fija que agrupa cuatro partes en una sola cadena. Comprenderla ayuda a depurar problemas de autenticación y confirmar que un hash es válido. El ejemplo siguiente muestra cada segmento de un hash bcrypt real.

Un hash como $2b$10$oHLkY4emC3geWiN6anPYnevZAh9RtyHgQeOeGwWbWF9xlJidZsQDi se divide claramente. $2b$ indica la versión de bcrypt, 10 es el factor de coste, los siguientes 22 caracteres son la sal y los últimos 31 caracteres son el hash. La cadena completa siempre tiene 60 caracteres, lo que facilita detectar hashes mal formados.

Segmento
Ejemplo
Significado
Versión$2b$Identificador del algoritmo
Coste10Factor de trabajo, 2 elevado a este valor
Sal22 caracteresSal aleatoria para cada hash
Hash31 caracteresEl digest de bcrypt

Versiones de bcrypt: $2a$, $2b$ y $2y$

El prefijo de versión indica a las bibliotecas qué variante de bcrypt produjo un hash. La mayoría de las bibliotecas modernas utilizan $2b$ de forma predeterminada, la versión actual de OpenBSD. En sistemas reales todavía encontrarás prefijos antiguos o específicos de un lenguaje.

El prefijo $2a$ es el original y sigue siendo ampliamente compatible entre bibliotecas. PHP y Laravel producen hashes $2y$, procedentes de la implementación crypt_blowfish. Los tres se verifican de la misma forma, por lo que un hash $2y$ de PHP se valida correctamente con la contraseña adecuada. Este generador de hashes bcrypt produce un prefijo estándar que acepta cualquier biblioteca compatible.

Elegir un factor de coste de bcrypt

El factor de coste, también llamado factor de trabajo, controla la lentitud de cada hash. Aumentarlo en uno duplica el tiempo de cálculo, porque las rondas equivalen a 2 elevado al coste. Un coste de 10 significa 1.024 rondas, mientras que un coste de 12 significa 4.096 rondas.

Los valores de coste más altos resisten mejor los ataques de fuerza bruta, pero ralentizan cada inicio de sesión. Un valor entre 10 y 12 equilibra seguridad y velocidad para la mayoría de las aplicaciones web actuales. Prueba el tiempo en tu propio hardware y apunta a unos 250 milisegundos por hash. Este generador de bcrypt en línea te permite ver cómo afecta cada configuración de coste a la salida.

Verifica un hash con el generador de hashes bcrypt

La verificación es esencial porque no puedes comparar directamente dos hashes bcrypt. La misma contraseña produce un hash diferente cada vez debido a la sal aleatoria. La comparación de cadenas siempre falla, por lo que un verificador adecuado es el único método fiable.

El verificador extrae la sal y el coste del hash almacenado y vuelve a calcular el hash del texto plano con esos valores exactos. Si el resultado coincide con el hash almacenado, la contraseña es correcta. Pega el hash y la contraseña candidata en esta herramienta para realizar la comprobación de forma segura en tu navegador.

Bcrypt para Laravel, PHP y Node.js

Bcrypt es el algoritmo de contraseñas predeterminado en la mayoría de los frameworks web modernos. La función password_hash() de PHP utiliza bcrypt por defecto y devuelve un hash $2y$. Laravel lo envuelve en su helper Hash::make(), por lo que un generador de hashes Laravel y un generador bcrypt producen el mismo formato.

Los desarrolladores de Node.js utilizan los paquetes bcrypt o bcryptjs para obtener resultados idénticos. Todos producen la salida estándar de 60 caracteres que crea esta herramienta. Puedes generar aquí un hash de prueba e insertarlo directamente en el seed o fixture de tu base de datos.

Por qué bcrypt protege mejor las contraseñas

Bcrypt combina tres defensas que los hashes rápidos como SHA256 no tienen. Añade automáticamente una sal a cada hash, por lo que las contraseñas idénticas nunca comparten un digest. Es deliberadamente lento, lo que reduce los ataques de fuerza bruta y diccionario a una velocidad mínima.

Su factor de coste adaptable es la tercera y más importante ventaja. A medida que el hardware se vuelve más rápido, aumentas el coste para que los hashes sigan siendo caros de descifrar. Un hash creado hoy puede mantenerse seguro durante años simplemente eligiendo un factor de trabajo razonable. Para crear las contraseñas, combina esta herramienta con nuestro Generador de contraseñas.

El límite de 72 bytes de las contraseñas

Bcrypt solo procesa los primeros 72 bytes de cualquier contraseña. Los caracteres posteriores se ignoran, lo que puede debilitar inesperadamente frases de contraseña muy largas. Las bibliotecas antiguas truncaban la entrada silenciosamente, mientras que las nuevas rechazan entradas demasiado largas con un error.

Este límite explica por qué WordPress aplica primero SHA-384 a las contraseñas antes de usar bcrypt. Si tus contraseñas pueden superar los 72 bytes, aplica primero SHA-256 una vez y después bcrypt al resultado. Para hashes específicos de WordPress, utiliza nuestro Generador de hashes de contraseñas de WordPress. Para revisar digests que no sean contraseñas, el Generador de hashes cubre desde MD5 hasta SHA-512.

Preguntas frecuentes

Preguntas frecuentes