DevToolPal
ES

Generador y verificador de hash bcrypt

Genera el hash bcrypt de una contraseña con el coste que elijas o comprueba si una contraseña coincide con un hash bcrypt.

Se ejecuta en local, nunca se sube

Opciones

Modo

Contraseña

Resultado

El resultado aparece aquí

Qué hace

bcrypt es una función de hash de contraseñas diseñada para ser lenta. A diferencia de MD5 o SHA-256, que se calculan miles de millones de veces por segundo, bcrypt tiene un coste configurable que encarece cada intento de un atacante que robe tu base de datos. Sigue siendo una de las opciones más usadas para guardar contraseñas, junto con Argon2 y scrypt.

Esta herramienta hace dos cosas:

  • Generar hash: convierte una contraseña en un hash bcrypt con el coste y el prefijo de versión que elijas.
  • Verificar: comprueba si una contraseña coincide con un hash bcrypt existente, por ejemplo de tu base de datos o del archivo de datos iniciales de un framework.

Cómo usarla

  1. Escribe una Contraseña o pulsa Ejemplo.
  2. En el modo Generar hash, elige el Coste y la Versión. El hash aparece al instante; pulsa Nueva sal para obtener otro.
  3. En el modo Verificar, pega el Hash bcrypt a comprobar. El resultado indica si la contraseña coincide.

Cómo leer un hash bcrypt

Un hash como $2b$10$./3kakECWB0QfIgYzIqciuv449HNnwGbgExtJQQwQ1MofonthOdoK tiene cuatro partes: la versión 2b, el coste 10 (2¹⁰ rondas de preparación de clave), una sal de 22 caracteres y una suma de comprobación de 31 caracteres. Todo lo que el servidor necesita para verificar después una contraseña está en esa cadena, así que solo guardas el hash.

Límites a tener en cuenta

bcrypt solo lee los primeros 72 bytes de una contraseña. Las contraseñas más largas, o con muchos caracteres no ASCII (cada uno ocupa de 2 a 4 bytes en UTF-8), se recortan sin aviso. La herramienta te avisa cuando ocurre. Si necesitas aceptar frases de paso muy largas, aplica antes otro hash o considera Argon2id.

Preguntas frecuentes

› ¿Por qué obtengo un hash distinto cada vez para la misma contraseña?

Cada hash usa una sal aleatoria nueva de 16 bytes, que se guarda dentro del propio hash. Es intencionado: así contraseñas iguales no producen hashes iguales. Para comprobar una contraseña usa Verificar en lugar de comparar cadenas de hash.

› ¿Qué coste debo usar?

Elige el coste más alto que tu servidor pueda permitirse en cada inicio de sesión, normalmente entre 10 y 12 hoy en día. Cada paso duplica el trabajo. Mide en tu hardware de producción; un objetivo habitual es de 100 a 300 ms por hash.

› ¿Qué diferencia hay entre $2a$, $2b$ y $2y$?

Es el mismo algoritmo. $2b$ es el prefijo actual de OpenBSD, $2y$ es el que escribe password_hash de PHP y $2a$ es el antiguo. La mayoría de las bibliotecas aceptan los tres, así que elige el que espere tu sistema.

› ¿Se envía mi contraseña a algún sitio?

No. El hash y la comprobación se hacen en tu navegador. La contraseña y el hash que compruebas solo se guardan en la memoria de esta página; no se almacenan ni se añaden a los enlaces para compartir.