Skip to content

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.

Sin rastreo Se ejecuta en el navegador Gratis
100 % en tu navegador — tu contraseña nunca sale de tu dispositivo.
Hash bcrypt
Anatomía del hash
Versión
Coste
Sal
Resumen

Sigue el comportamiento de referencia de bcrypt con la salida contrastada con Node bcrypt, Python bcrypt y Apache htpasswd — Equipo de Seguridad de Go Tools · Jun 12, 2026

¿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. 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. 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. 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.

✗ Incorrecto
bcrypt.decrypt(hash)  // no such operation
✓ Correcto
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.

✗ Incorrecto
cost: 4  // far too fast, weak against brute force
✓ Correcto
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.

✗ Incorrecto
hash(pw) === storedHash  // fails — different salts
✓ Correcto
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?
Con este, sí — porque nada de lo que escribes sale jamás de tu navegador. La contraseña, el hash generado y la verificación se ejecutan localmente en JavaScript en tu propio dispositivo. No hay peticiones de red, ni registros, ni almacenamiento: puedes confirmarlo abriendo las Herramientas de desarrollador de tu navegador (F12 → pestaña Red) mientras generas un hash y observando cero peticiones salientes, o desconectándote de internet y viendo que la herramienta sigue funcionando. Eso es lo contrario de un generador sospechoso que envía tu contraseña por POST a un servidor. Como hábito, prefiere de todos modos una contraseña de prueba desechable en lugar de una real de producción siempre que solo estés experimentando.
¿Cómo genero un hash bcrypt online?
Abre la pestaña Generar, escribe una contraseña (o pulsa Contraseña aleatoria para acuñar una fuerte), elige un factor de coste — 12 es el valor por defecto moderno — y selecciona un prefijo de versión: $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?
No. bcrypt es una función de hashing de contraseñas unidireccional, no cifrado, así que no hay clave ni operación de descifrado que convierta un hash de nuevo en la contraseña original. La única forma de averiguar la contraseña a partir de un hash es probar candidatos y calcular el hash de cada uno hasta que coincida — que es exactamente lo que el factor de coste ajustable de bcrypt está diseñado para hacer lento y costoso. Por eso verificas una contraseña contra un hash en lugar de descifrarlo: la herramienta vuelve a calcular el hash de tu candidato con la sal y el coste almacenados en el hash y comprueba si el resultado es idéntico.
¿Qué factor de coste (factor de trabajo) debería usar?
El coste 12 es el valor por defecto moderno y un equilibrio sensato entre seguridad y velocidad. El coste es un factor de trabajo logarítmico: cada incremento duplica el número de rondas internas, así que el coste 13 tarda aproximadamente el doble en calcularse y verificarse que el coste 12, y el coste 11 tarda la mitad. Costes más altos ralentizan a los atacantes que fuerzan por fuerza bruta hashes filtrados, pero también añaden latencia a cada inicio de sesión legítimo, así que no lo subas más allá del punto en el que la autenticación se sienta lenta en tu hardware real. El coste 10 es aceptable para endpoints de bajo riesgo; de 12 a 14 conviene para cualquier cosa sensible. El rango válido es de 4 a 31, y esta herramienta te deja elegir de 4 a 15.
¿Cuál es la diferencia entre $2a$, $2b$ y $2y$?
Son prefijos de versión para el mismo algoritmo bcrypt, y las diferencias se remontan a correcciones históricas de errores en cómo algunas implementaciones manejaban la longitud de las cadenas y los caracteres de bit alto. $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?
Cambia a la pestaña Verificar, pega el hash bcrypt almacenado (la cadena completa $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?
Las tres son funciones de hashing de contraseñas deliberadamente lentas y con sal, y todas son muy superiores a un SHA-256 a secas para almacenar contraseñas. bcrypt es la más ampliamente soportada y probada en batalla, con un coste ajustable sencillo; sus principales límites son un tope de 72 bytes de contraseña y que solo está limitada por la CPU. scrypt añade dureza de memoria, encareciendo los ataques a gran escala con GPU/ASIC. Argon2 (concretamente Argon2id) es la recomendación actual del Password Hashing Competition y de OWASP, ajustando tiempo, memoria y paralelismo de forma independiente. Si eliges desde cero hoy, Argon2id es el valor por defecto más fuerte; bcrypt sigue siendo una opción excelente y segura — especialmente donde importan el soporte de bibliotecas o la interoperabilidad. Cubrimos las concesiones en profundidad en bcrypt vs Argon2 vs scrypt.
¿Por qué el hash bcrypt es diferente cada vez?
Porque bcrypt genera una sal aleatoria nueva para cada hash, y la sal se mezcla antes del hashing. La misma contraseña, por tanto, produce una cadena de 60 caracteres completamente distinta cada vez que pulsas Generar — y ese es el objetivo: impide que los atacantes precalculen tablas rainbow o detecten que dos usuarios comparten una contraseña. La sal no es secreta; se almacena dentro del propio hash (los 22 caracteres tras el coste), de modo que la verificación puede volver a leerla. Si vuelves a generar el hash simplemente obtienes otro hash válido para la misma contraseña, y todos ellos se verificarán correctamente.

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.