Hash y verificacion Bcrypt

Genera hashes bcrypt con sal para contrasenas y verifica texto plano contra un hash existente, todo en tu navegador.

Genera hashes bcrypt con sal para contrasenas y verifica texto plano contra un hash existente, todo en tu navegador. Genera hashes bcrypt con sal para contrasenas y verifica texto plano contra un hash existente, todo en tu navegador.

Hash bcrypt generado

Contexto

Que es bcrypt y por que importa

bcrypt es una funcion de hash de contrasenas adaptativa disenada por Niels Provos y David Mazieres en 1999. A diferencia de resumenes rapidos como MD5 o SHA-256, bcrypt cuesta deliberadamente tiempo de CPU: cada hash ejecuta el cifrado Blowfish a traves de un numero configurable de rondas, y el trabajo se duplica con cada incremento del factor de coste. Esta ralentizacion es lo que encarece los ataques offline de diccionario y fuerza bruta. Una implementacion correcta tambien embebe una sal aleatoria de 128 bits dentro de la salida, de modo que dos hashes de la misma contrasena siempre difieren y las tablas arcoiris resultan inutiles.

Como leer un hash bcrypt

Un hash bcrypt se ve como $2b$12$e0.6kJ8a5X8u5Yp3qR5E0e9dF4z3W2c1v0b9n8m7l6k5j4h3g2f1. Las partes tras los signos de dolar llevan la version del algoritmo, el coste y la sal:

  • $2b$ -- la revision del algoritmo. $2a$ y $2y$ son variantes antiguas con diferencias sutiles en el manejo del bit de signo; $2b$ es la recomendacion actual y lo que emite bcryptjs.
  • 12 -- el factor de coste. 2^12 = 4096 rondas del calendario de claves. Cada +1 duplica el tiempo; 10-12 es un valor razonable para login interactivo, mientras que 12-14 conviene a credenciales almacenadas.
  • Los 53 caracteres restantes contienen una sal base64 de 22 caracteres (128 bits) mas un checksum de 31 caracteres (184 bits). Toda la cadena es un registro autocontenido: el verificador lee version, coste y sal del propio hash y repite la derivacion para comparar.

Como usar esta herramienta

Escribe una contrasena en la entrada, elige un factor de coste y pulsa Hash. El hash generado aparece en la salida y tambien se coloca en el campo de verificacion. Para comprobar un hash existente, pegalo en el campo de verificacion y escribe la contrasena candidata en la entrada: la pagina compara al instante y muestra una marca verde o una cruz roja. Como la comparacion usa bcrypt.compareSync, nunca revela cuan cerca estuvo un intento erroneo: cada intento se hashea completo antes de decidir el resultado.

Notas de seguridad y limitaciones

bcrypt trunca la entrada a 72 bytes: las contrasenas mas largas se cortan en silencio, de modo que dos contrasenas que comparten los primeros 72 bytes se comparan iguales. Si necesitas entradas mas largas, pre-hashea con SHA-256 (hexadecimal) y hashea ese resumen. Bcrypt es un algoritmo deliberadamente ligero en memoria -- resiste menos a las matrices GPU que disenos con memoria dura como Argon2 o scrypt, pero su tabla de 4 KB y sus 64 bytes de estado siguen haciendo poco atractivo el agrietamiento con ASIC baratos. Para sistemas nuevos Argon2id suele ser mejor; bcrypt sigue siendo una opcion excelente y muy compatible para compatibilidad heredada y para entornos sin Argon2. Esta pagina corre por completo en tu navegador: la contrasena y el hash nunca salen de tu dispositivo, y puedes inspeccionar el codigo (bcryptjs MIT/BSD) empaquetado en public/assets.

Construido con la biblioteca bcryptjs (BSD-3-Clause) empaquetada en public/assets. El hashing corre en local; no se transmite nada.

Preguntas frecuentes

Por que la misma contrasena produce un hash distinto cada vez?
Cada hash genera una sal aleatoria de 128 bits y la incrusta en la salida. El verificador relee la sal del hash, asi que la correccion no se ve afectada, pero entradas identicas nunca producen salidas identicas.
Que factor de coste debo usar?
Para logins interactivos, 10-12 es un buen valor por defecto. Para credenciales almacenadas puedes usar 12-14. Costes mas altos son mas seguros pero mas lentos; elige el mayor valor que tu servidor pueda permitirse por login.
Se sigue recomendando bcrypt en 2026?
Si. bcrypt sigue muy desplegado y se considera seguro con un coste de 10+. Para sistemas nuevos suelen preferirse Argon2id o scrypt, de memoria dura, pero bcrypt es una opcion excelente y probada, sobre todo donde esos no estan disponibles.
Por que bcrypt es mas lento que SHA-256?
Ese es el punto. SHA-256 esta disenado para ser rapido, lo que permite a los atacantes probar miles de millones de conjeturas por segundo. El costoso calendario de claves y la sal de bcrypt obligan a invertir tiempo real por conjetura, volviendo impracticables los ataques offline.
Que significa el limite de 72 bytes para mis contrasenas?
bcrypt ignora todo lo que supere el byte 72. Dos contrasenas de mas de 72 bytes que comparten el mismo prefijo se verificaran identicas. Para secretos mas largos, hashealos primero con SHA-256 (en hex) y hashea el resumen.
Se envia mi contrasena a un servidor?
No. Todo corre en local en tu navegador con la biblioteca bcryptjs empaquetada. Puedes desconectarte de la red tras cargar la pagina y seguira funcionando.