Generador de Hash bcrypt

Generar hash

Mayor = más lento y más seguro. 12 es un buen valor por defecto.

De vez en cuando tienes un hash bcrypt de una copia de seguridad antigua y una contraseña en texto plano, y necesitas saber si coinciden. O tienes una contraseña y quieres el hash que produciría un factor de costo dado. Esta herramienta hace ambas cosas: escribe una contraseña y genera un nuevo hash, pega un hash y un candidato y te dice si la verificación tiene éxito, utilizando la misma comparación de tiempo constante que una verificación de inicio de sesión en producción.

Generar o verificar bcrypt

  1. 1

    Elige un modo

    Genera un nuevo hash a partir de una contraseña, o verifica una contraseña contra un hash existente `$2a$` / `$2b$` / `$2y$`.

  2. 2

    Para generar: ingresa texto plano y costo

    Costo 4-14; 10-12 es normal. Se crea una sal aleatoria de 16 bytes para cada hash.

  3. 3

    Para verificar: pega hash y texto plano

    La herramienta extrae la sal y el costo del hash y vuelve a hashear el texto plano con los mismos parámetros.

  4. 4

    Lee el resultado

    El modo de generación copia el hash de 60 caracteres; el modo de verificación devuelve una coincidencia verde o una discrepancia roja.

Internos del modo de verificación

Dado un hash almacenado como:

$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6

El verificador:

  1. Analiza la versión (2b), costo (12), sal (los primeros 22 caracteres después del costo) y digest (los últimos 31 caracteres).
  2. Vuelve a ejecutar bcrypt en el texto plano candidato con la sal y el costo extraídos.
  3. Compara el digest resultante con el original usando comparación de tiempo constante.

Una comparación exitosa produce true; cualquier diferencia produce false.

Comparación de tiempo constante

Comparar dos cadenas con un == ingenuo devuelve tan pronto como un byte difiere — un canal lateral de tiempo que puede filtrar el hash dígito por dígito a través de suficientes muestras. Las verificaciones de contraseña en producción (y esta herramienta) utilizan una comparación de tiempo constante que siempre examina cada byte, por lo que el tiempo de decisión no depende de cuántos bytes iniciales coinciden.

Casos de diagnóstico comunes

Síntoma Causa probable
La verificación falla, estás seguro de la contraseña Espacios en blanco finales o BOM en la entrada. Elimina ambos.
La verificación falla, versión 2y Algunas bibliotecas no aceptan 2y; es válido y compatible. Vuelve a hashear con 2b en adelante.
Hash demasiado corto / malformado No es un hash bcrypt. MD5 son 32 caracteres hexadecimales, SHA-1 son 40, bcrypt son 60 con delimitadores $.
Advertencia de desajuste de costo El costo almacenado está por debajo de tu mínimo de política. Vuelve a hashear en el próximo inicio de sesión exitoso.

Rehashing en el inicio de sesión

Mejor práctica: cuando un usuario inicia sesión con éxito, verifica si el hash almacenado tiene un costo inferior a tu política actual. Si es así, vuelve a hashear la contraseña al nuevo costo y actualiza la base de datos. En unos meses, actualizas toda la base de usuarios sin pedir a nadie que cambie su contraseña.

Lo que la herramienta no hace

  • Verificación masiva — Diseñada para un hash a la vez.
  • Crackear o fuerza bruta — Ataques de diccionario o tablas arcoíris están intencionalmente fuera de alcance.
  • Recuperar el texto plano — bcrypt es unidireccional; si has olvidado la contraseña, el único camino es restablecer.

Preguntas frecuentes

No. El hashing y la verificación ocurren en tu navegador. Ni el texto plano ni el hash salen de la página.

La sal se genera aleatoriamente por hash. Ese es el objetivo: dos usuarios con la misma contraseña obtienen hashes diferentes, lo que derrota las tablas arcoíris.

Sí, eso es exactamente lo que hace el modo de verificación: pega el hash que tienes, pega una contraseña candidata, la herramienta confirma o niega una coincidencia.

Sí. Todas las variantes modernas interoperan: el digest es compatible entre versiones; solo difiere la etiqueta. Algunos hashes antiguos $2$ de sistemas de la era 2000 pueden necesitar una biblioteca con soporte legado explícito.

Herramientas relacionadas