BrowserTools
Publicidad
Inicio / Codificadores / Generador y Verificador de Bcrypt

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?
No. Tanto el hash como la verificación se ejecutan enteramente en tu navegador usando una implementación de bcrypt en JavaScript. Nada de lo que escribes se sube, transmite ni registra. La herramienta sigue funcionando sin conexión una vez cargada la página, así que es segura para usar con credenciales reales mientras pruebas o aprendes.
¿Qué es el factor de coste y qué valor debería usar?
El factor de coste (el número después del segundo signo de dólar en un hash) define cuántas rondas de trabajo realiza bcrypt, en una escala logarítmica. Cada incremento duplica aproximadamente el tiempo por hash. Un coste de 10 es un valor por defecto habitual; 12 es más fuerte pero más lento. Elige el coste más alto que tu servidor pueda tolerar manteniendo unos tiempos de respuesta de inicio de sesión aceptables, a menudo entre 100 y 250 milisegundos por hash.
¿Por qué bcrypt incluye un salt automáticamente?
Un salt son datos aleatorios mezclados en el hash para que contraseñas idénticas produzcan salidas diferentes, frustrando los ataques con tablas arcoíris precalculadas. Bcrypt genera un salt aleatorio nuevo para cada hash y lo incrusta directamente en la cadena de salida, así que no necesitas almacenar ni gestionar salts por separado. El verificador lee el salt directamente del hash almacenado.
¿Puedo revertir un hash bcrypt a la contraseña?
No. Bcrypt es una función unidireccional, así que no hay operación de descodificación y esta herramienta no tiene modo de descodificación. La única forma de probar una contraseña es aplicar el hash a una candidata con el mismo salt y coste y compararla, que es exactamente lo que hace el modo Verificar. Si un hash pudiera revertirse, sería inútil para proteger contraseñas.
¿Cómo sabe el modo Verificar si una contraseña coincide?
Extrae la versión del algoritmo, el factor de coste y el salt que están almacenados dentro del hash bcrypt, vuelve a aplicar el hash a tu contraseña candidata con esos mismos parámetros, y comprueba si el resumen resultante es igual al almacenado. Este es el proceso idéntico que usa un sistema de inicio de sesión, y por eso nunca necesitas almacenar la contraseña original en ningún sitio.
¿En qué se diferencia bcrypt de SHA-256 en el Generador de Hash?
SHA-256 es un resumen criptográfico rápido pensado para sumas de verificación, comprobaciones de integridad y huellas; es intencionadamente rápido, lo que lo convierte en una mala elección para contraseñas porque los atacantes pueden probar miles de millones de intentos por segundo. Bcrypt es deliberadamente lento y con salt, diseñado específicamente para encarecer el adivinado de contraseñas. Usa el Generador de Hash para la integridad de archivos o datos, y bcrypt para almacenar contraseñas.
¿Qué significan los prefijos $2a$ y $2b$?
El marcador inicial identifica la variante de bcrypt que produjo el hash. $2a$ es la versión común de toda la vida, mientras que $2b$ es una variante corregida que solucionó un fallo de desbordamiento relacionado con entradas muy largas. Ambas tienen amplio soporte y se verifican correctamente. La parte después del marcador codifica el coste, y el resto contiene el salt y el resumen juntos.
¿Tiene bcrypt un límite de longitud de contraseña?
Sí. Bcrypt solo procesa los primeros 72 bytes de la contraseña de entrada; cualquier cosa más allá se ignora. Para la mayoría de las contraseñas esto es irrelevante, pero importa si pre-aplicas un hash o concatenas valores largos antes de bcrypt. Si necesitas admitir entradas arbitrariamente largas, aplica primero un hash SHA-256 a la contraseña o usa una función como Argon2 que no tenga ese límite.

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.

Publicidad
Publicidad
Publicidad