Generador y Verificador de Bcrypt
Genera hashes bcrypt de contraseñas y verifica una contraseña contra un hash existente, enteramente en tu navegador.
Cargando Generador y Verificador de Bcrypt… Si no ocurre nada, activa JavaScript.
Bcrypt es una función de hash de contraseñas diseñada en 1999 por Niels Provos y David Mazieres, creada específicamente para que las contraseñas almacenadas resistan el descifrado por fuerza bruta. A diferencia de resúmenes rápidos de propósito general como MD5 o SHA-256, bcrypt es deliberadamente lento e incluye un factor de coste ajustable que define cuánto trabajo computacional requiere cada hash. Cada hash de bcrypt también incrusta un salt aleatorio único, así que dos usuarios con la misma contraseña producen hashes completamente diferentes, y una sola cadena de salida lleva todo lo necesario para verificar una contraseña más tarde: la versión del algoritmo, el coste, el salt y el resumen. Ese formato autocontenido es la razón por la que los hashes bcrypt pueden almacenarse directamente en una columna de base de datos.
Preguntas frecuentes
¿Se envían a algún sitio las contraseñas y los hashes que introduzco?
¿Qué es el factor de coste y qué valor debería usar?
¿Por qué bcrypt incluye un salt automáticamente?
¿Puedo revertir un hash bcrypt a la contraseña?
¿Cómo sabe el modo Verificar si una contraseña coincide?
¿En qué se diferencia bcrypt de SHA-256 en el Generador de Hash?
¿Qué significan los prefijos $2a$ y $2b$?
¿Tiene bcrypt un límite de longitud de contraseña?
Acerca de Generador y Verificador de Bcrypt
Esta herramienta tiene dos modos. En el modo Hash introduces una contraseña y eliges un factor de coste de 8, 10 o 12 rondas, y produce una cadena de hash bcrypt completa que empieza por un marcador como $2a$ o $2b$. Un coste más alto duplica aproximadamente el trabajo por cada incremento, así que 12 es notablemente más lento que 10, que es el valor por defecto habitual. En el modo Verificar pegas un hash bcrypt existente y una contraseña candidata, y la herramienta informa de si coinciden. La verificación funciona reejecutando bcrypt con el salt y el coste extraídos del hash almacenado, y luego comparando el resultado, que es exactamente cómo un sistema de inicio de sesión comprueba una contraseña sin almacenarla nunca en texto plano.
Todo se ejecuta localmente en tu navegador usando una implementación de bcrypt en JavaScript. Las contraseñas y los hashes que introduces nunca se suben, transmiten ni registran, lo que hace que la herramienta sea segura para experimentar con credenciales reales mientras aprendes, pruebas un backend o siembras una base de datos de desarrollo. Ten en cuenta que bcrypt es una función unidireccional: no hay modo de descodificación, porque un hash correcto no puede revertirse a la contraseña original. También es distinta de los hashes rápidos de la herramienta Generador de Hash. Usa bcrypt (o una alternativa moderna como Argon2) para almacenar contraseñas, y reserva los resúmenes tipo SHA para sumas de verificación, comprobaciones de integridad y huellas que no sean de contraseñas.
Por qué la lentitud es una característica, no un fallo
La mayoría del software se diseña para ser lo más rápido posible, pero bcrypt se diseñó deliberadamente para ser lento, y esa decisión es todo el sentido. Cuando Niels Provos y David Mazieres presentaron bcrypt en USENIX en 1999, lo construyeron sobre el costoso paso de configuración de clave del cifrado Blowfish y le añadieron un factor de coste ajustable. La genialidad del diseño es que el coste no está fijado en el algoritmo; a medida que los ordenadores se vuelven más rápidos, los defensores pueden simplemente subir el coste para que descifrar contraseñas siga siendo tan doloroso como años atrás.
Esto importa porque la amenaza es asimétrica. Un servidor legítimo aplica el hash a una contraseña por inicio de sesión, así que un hash que tarde una quinta parte de segundo apenas se nota. Un atacante que roba una base de datos de contraseñas, sin embargo, quiere probar miles de millones de intentos, y esa misma quinta parte de segundo por intento convierte una tarde de descifrado en siglos. Los hashes rápidos como MD5 y SHA-1 sin salt se desmoronan ante las GPU modernas y el hardware especializado que prueba decenas de miles de millones de candidatos por segundo; la lentitud ajustable de bcrypt y su salt por contraseña frenan a la vez la fuerza bruta y las tablas arcoíris.
Como el factor de coste vive dentro de cada hash, un sistema puede actualizar su seguridad de forma transparente con el tiempo. Cuando un usuario inicia sesión, el servidor puede comprobar el coste incrustado en su hash almacenado, y si está por debajo del objetivo actual, volver a aplicar el hash a la contraseña recién verificada con un coste más alto y guardar el nuevo valor. Bcrypt ha envejecido notablemente bien desde 1999, y aunque funciones más nuevas como scrypt y Argon2 añaden dureza de memoria para resistir aún mejor el hardware especializado, bcrypt sigue siendo un valor por defecto sólido y ampliamente soportado para el almacenamiento de contraseñas.