Generador y verificador de hash bcrypt
Genera y verifica hashes bcrypt de contraseñas online — coste ajustable, prefijos $2b$/$2a$/$2y$. 100 % en tu navegador; tu contraseña nunca se sube.
¿Qué es bcrypt?
Bcrypt es una función de hashing de contraseñas diseñada específicamente para almacenar contraseñas de forma segura. En lugar de guardar una contraseña en texto plano, un servidor almacena un hash bcrypt unidireccional; cuando un usuario inicia sesión, el servidor calcula el hash de la contraseña enviada de la misma forma y comprueba que ambos hashes coinciden. Bcrypt está construido sobre el cifrado Blowfish y fue diseñado por Niels Provos y David Mazières en 1999, con una característica deliberada que lo distingue de los hashes de propósito general como SHA-256: es lento a propósito, y puedes hacerlo más lento con el tiempo mediante un factor de coste ajustable a medida que el hardware se vuelve más rápido.
Un hash bcrypt es una única cadena autodescriptiva de 60 caracteres — por ejemplo $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. Empaqueta cuatro partes: la versión ($2b$), el coste (12, un factor de trabajo logarítmico), una sal Base64 de 22 caracteres y el resumen Base64 de 31 caracteres. Como la sal es aleatoria e incrustada en el hash, la misma contraseña produce un hash distinto cada vez — lo que derrota a las tablas rainbow y oculta el hecho de que dos usuarios eligieron la misma contraseña. La verificación lee de nuevo la sal y el coste del hash almacenado y vuelve a calcular el hash del candidato, así que bcrypt nunca necesita (ni puede) revertir un hash para recuperar la contraseña.
Esta herramienta se ejecuta enteramente en tu navegador usando una implementación bcrypt incluida — ninguna contraseña ni hash se sube jamás. Úsala para generar un hash con un coste y prefijo elegidos, para verificar una contraseña contra un hash existente y para leer la anatomía de un hash. Combina de forma natural con otras herramientas de seguridad: protege un directorio con HTTP Basic Auth usando nuestro Generador htpasswd (que puede emitir entradas bcrypt directamente), acuña una contraseña fuerte para hashear con nuestro Generador de contraseñas aleatorias, y recurre a nuestro Generador SHA-256 cuando necesites una suma de comprobación rápida de propósito general en lugar de un hash de contraseña lento. Si estás decidiendo con qué algoritmo almacenar contraseñas, compara las opciones en bcrypt vs Argon2 vs scrypt.
// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true
# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed) # True
# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true
# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq Características principales
Genera hashes bcrypt
Produce un hash bcrypt estándar de 60 caracteres a partir de cualquier contraseña con una sal aleatoria nueva. Cada clic genera un hash válido distinto, exactamente como haría un almacén de contraseñas real.
Factor de coste ajustable
Ajusta el factor de trabajo de 4 a 15 (12 es el valor por defecto moderno). Siente cómo cada paso duplica aproximadamente el tiempo de cálculo para que puedas elegir un coste fuerte pero lo bastante rápido para el inicio de sesión.
Elige el prefijo de versión
Emite $2b$ (el estándar actual de bcryptjs), $2y$ (PHP / htpasswd de Apache) o $2a$ (el original). Todos son intercambiables para la verificación entre bibliotecas.
Verifica una contraseña contra un hash
Pega un hash almacenado y una contraseña candidata para confirmar al instante si coinciden — volviendo a calcular el hash con la sal y el coste incrustados, sin descifrar nunca. Ideal para depurar un inicio de sesión fallido.
Anatomía del hash desglosada
Ve cualquier hash bcrypt dividido en su versión, coste, sal y resumen, para que la estructura de la cadena $2b$12$... sea obvia de un vistazo.
100 % del lado del cliente
Todo el hashing y la verificación ocurren localmente en tu navegador. Ninguna contraseña ni hash se envía jamás a un servidor, así que puedes trabajar con credenciales reales de forma privada.
Ejemplos del generador bcrypt
hash bcrypt (coste 12, $2b$)
contraseña: correct horse battery staple coste: 12 prefijo: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Un hash bcrypt con coste 12 y el prefijo $2b$. La sal es aleatoria, así que la misma contraseña produce un hash distinto cada vez — y aun así todos verifican contra la contraseña original.
Verificar una contraseña contra un hash
contraseña: correct horse battery staple hash: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Coincide — la contraseña es correcta para este hash
La verificación no descifra el hash. bcrypt vuelve a calcular el hash de la contraseña candidata usando la sal y el coste incrustados en el hash almacenado, y luego compara el resultado. Una coincidencia significa que la contraseña es correcta.
Anatomía de un hash desglosada
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
versión: $2b$ · coste: 12 · sal: dUSFKqT1FCMYZ6hcQfsxuO · resumen: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Todo hash bcrypt es autodescriptivo: una etiqueta de versión, un coste de dos dígitos, una sal Base64 de 22 caracteres y un resumen Base64 de 31 caracteres, todo en una sola cadena de 60 caracteres. La herramienta los separa para que puedas leerlos de un vistazo.
Cómo usar el generador bcrypt
- 1
Introduce una contraseña y elige el coste
En la pestaña Generar, escribe una contraseña o pulsa Contraseña aleatoria. Elige un factor de coste (4–15; 12 es el valor por defecto moderno) y un prefijo de versión — $2b$, $2a$ o $2y$ — para que coincida con tu stack.
- 2
Genera el hash
El hash bcrypt se calcula localmente con una sal aleatoria nueva y aparece como una única cadena de 60 caracteres $2b$12$.... Pulsa Copiar para extraerlo, o vuelve a generar para obtener un nuevo hash con sal.
- 3
Lee la anatomía o verifica
El panel de anatomía divide el hash en versión, coste, sal y resumen. Cambia a la pestaña Verificar para pegar un hash almacenado y una contraseña y confirmar al instante si coinciden.
Common Errors
Intentar descifrar un hash
Bcrypt es unidireccional; no hay descifrado. Para comprobar una contraseña, verifícala contra el hash en lugar de intentar revertir el resumen.
bcrypt.decrypt(hash) // no such operation
bcrypt.compare(password, hash) // returns true / false
Poner el coste demasiado bajo
Un coste bajo como 4 o 6 hashea casi al instante, lo que también permite a los atacantes forzar por fuerza bruta hashes filtrados rápidamente. Usa 12 como referencia.
cost: 4 // far too fast, weak against brute force
cost: 12 // modern default, resists brute force
Esperar el mismo hash dos veces
Como la sal es aleatoria, volver a hashear la misma contraseña produce una cadena distinta. Compara con verificar, nunca comprobando la igualdad byte a byte de dos hashes.
hash(pw) === storedHash // fails — different salts
bcrypt.compare(pw, storedHash) // correct check
Casos de uso comunes
- Sembrar un hash de contraseña en una base de datos
- Genera un hash bcrypt para una cuenta de administrador o de prueba e insértalo directamente en tu tabla de usuarios, para poder iniciar sesión sin montar antes un flujo de registro completo.
- Depurar un inicio de sesión fallido
- Verifica una contraseña que sabes correcta contra el hash almacenado para confirmar si el hash en sí es correcto, aislando el error de tu código de autenticación.
- Elegir el factor de coste adecuado
- Genera con varios niveles de coste en tu propio hardware para sentir cuánto tarda cada uno, y luego elige un factor de trabajo que resista la fuerza bruta sin ralentizar los inicios de sesión reales.
- Crear entradas htpasswd / Basic Auth
- Produce un hash bcrypt $2y$ para una credencial de Apache, Docker Registry o Caddy, y luego colócalo en una línea usuario:hash para HTTP Basic Auth.
- Construir fixtures de prueba
- Acuña hashes bcrypt deterministas por contraseña para sembrar pruebas de integración de un flujo de inicio de sesión o de restablecimiento de contraseña sin levantar un servidor de autenticación real.
- Auditar un hash que encontraste
- Lee la anatomía de una cadena bcrypt en una configuración o un volcado para comprobar su factor de coste, y verifícala contra la contraseña que esperas para confirmar una coincidencia.
Detalles técnicos
- Basado en Blowfish, coste adaptativo
- Bcrypt deriva su hash de la costosa configuración de clave del cifrado Blowfish, repetida 2^coste veces. Subir el coste en uno duplica el trabajo, manteniendo la función lenta frente a la fuerza bruta a medida que mejora el hardware.
- Sal aleatoria de 128 bits
- Cada hash incrusta una sal aleatoria de 16 bytes (128 bits), codificada en Base64 como 22 caracteres tras el coste. La sal hace único a cada hash, así que contraseñas idénticas nunca comparten un resumen y las tablas rainbow no se aplican.
- Formato autodescriptivo de 60 caracteres
- La salida es $versión$coste$sal+resumen — una cadena fija de 60 caracteres que lleva todo lo necesario para verificarla. No se requiere una columna de sal separada ni un almacén de parámetros.
- Límite de 72 bytes en la contraseña
- Bcrypt solo calcula el hash de los primeros 72 bytes de una contraseña; cualquier cosa más allá se ignora silenciosamente. Para frases de contraseña muy largas, pre-hashear (por ejemplo con SHA-256) antes de bcrypt es una mitigación común.
- Verifica, no descifres
- Bcrypt es unidireccional. La verificación vuelve a ejecutar el hash sobre la contraseña candidata usando la sal y el coste analizados del hash almacenado, y luego compara los resúmenes en tiempo constante. No hay ninguna operación que recupere el texto plano.
- Notas de honestidad y advertencias
- Los hashes se calculan localmente y nunca se comprueban contra un sistema en vivo. Los hashes copiados y cualquier contraseña que escribieras quedan en tu portapapeles y en la memoria del navegador — trátalos como secretos y borra tu portapapeles tras pegar en producción.
Buenas prácticas
- Usa coste 12 o superior
- El coste 12 es la referencia moderna; súbelo hacia 14 para sistemas sensibles siempre que la latencia de inicio de sesión siga siendo aceptable. Reevalúa periódicamente — lo que era lo bastante lento hace cinco años es barato de atacar hoy.
- Nunca almacenes ni registres texto plano
- Almacena solo el hash bcrypt, nunca la contraseña original, y mantén las contraseñas fuera de los registros y de los mensajes de error. Todo el valor de bcrypt se pierde si el texto plano se filtra junto a él.
- Deja que bcrypt gestione la sal
- Bcrypt genera e incrusta una sal aleatoria segura por ti. No proporciones tu propia sal estática ni la reutilices — una sal aleatoria por hash es lo que derrota a las tablas rainbow.
- Ten en cuenta el límite de 72 bytes
- Si aceptas frases de contraseña largas, recuerda que bcrypt ignora los bytes más allá de 72. Considera pre-hashear con SHA-256, o evalúa Argon2id, cuando las entradas muy largas deban cubrirse por completo.
Preguntas frecuentes sobre el generador bcrypt
¿Es seguro usar un generador bcrypt online?
¿Cómo genero un hash bcrypt online?
$2b$ para la mayoría de los stacks modernos, $2y$ para PHP y Apache, o $2a$ para el identificador original. El hash bcrypt se calcula al instante en tu navegador con una sal aleatoria nueva y aparece como una única cadena de 60 caracteres $2b$12$... que puedes copiar con un clic. Nada se sube: la contraseña y el hash nunca salen de tu dispositivo. Vuelve a generar en cualquier momento para obtener otro hash válido para la misma contraseña, ya que cada uno lleva una sal aleatoria diferente. ¿Se puede descifrar o revertir un hash bcrypt?
¿Qué factor de coste (factor de trabajo) debería usar?
¿Cuál es la diferencia entre $2a$, $2b$ y $2y$?
$2a$ es el identificador original ampliamente usado; $2b$ es la versión actual corregida que emiten la biblioteca bcryptjs y la mayoría de las implementaciones modernas; y $2y$ es el identificador que usan PHP y el htpasswd de Apache. Para la verificación son intercambiables — un hash que generes aquí con cualquier prefijo se validará correctamente entre bibliotecas, porque todas ejecutan la misma función central. Elige el prefijo que tu stack espere si necesitas compatibilidad byte a byte. ¿Cómo verifico una contraseña contra un hash bcrypt?
$2b$12$...) y la contraseña candidata, y la herramienta te dice al instante si coinciden. Funciona extrayendo la sal y el coste incrustados en el hash, volviendo a calcular el hash de la contraseña candidata con esos parámetros exactos y comparando el nuevo resumen con el almacenado — no hay descifrado de por medio. Así es como un sistema de inicio de sesión comprueba una contraseña: nunca recupera el texto plano, solo confirma que volver a calcular el hash de la contraseña enviada reproduce el hash almacenado. bcrypt vs Argon2 vs scrypt — ¿cuál debería usar?
¿Por qué el hash bcrypt es diferente cada vez?
Herramientas relacionadas
Ver todas las herramientas →Decodificador JWT
Herramientas de Seguridad
Decodifica tokens JWT online con nuestro decodificador JWT gratis. Inspecciona encabezado, carga útil, firma, expiración y reclamaciones al instante. 100% navegador — tu token nunca sale del dispositivo. Sin registro ni rastreo.
Codificador y Generador JWT
Herramientas de Seguridad
Generador y codificador JWT gratis online. Construye el encabezado y la carga útil, firma con HS256, RS256 o ES256 al instante. 100% en el navegador — tu secreto y tu clave nunca salen de tu dispositivo.
Generador de Hash MD5 Online y Verificador de Checksum
Herramientas de Seguridad
Genera hashes MD5, SHA-256, SHA-1 y SHA-512 gratis — 100% en tu navegador, sin registro. Hashea texto o archivos, verifica checksums y compara hashes con un clic. Tus datos permanecen privados.
Generador de Contraseñas Aleatorias y Seguras
Herramientas de Seguridad
Genera contraseñas seguras al instante — gratis, sin registro, 100% en tu navegador. Personaliza la longitud y los tipos de caracteres, genera hasta 50 contraseñas. Medidor de fortaleza con análisis de entropía.
Generador de Hash SHA-1 (Legado de 160 bits)
Herramientas de Seguridad
Genera hashes SHA-1 en tu navegador — salida hex de 40 caracteres, sin subidas. Herramienta para huellas Git, comprobación de certificados antiguos y auditorías de migración. Datos nunca salen de tu dispositivo.
Generador de Hash SHA-256 y Verificador de Checksum
Herramientas de Seguridad
Genera hashes SHA-256 online gratis. Hashea texto o archivos en tu navegador, verifica checksums y copia la salida hex de 64 caracteres. Sin registro; los datos nunca salen de la página.