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
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
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
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
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:
- Analiza la versión (
2b), costo (12), sal (los primeros 22 caracteres después del costo) y digest (los últimos 31 caracteres). - Vuelve a ejecutar bcrypt en el texto plano candidato con la sal y el costo extraídos.
- 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
Codificador de cifrado A1Z26
Codifica texto usando el cifrado A1Z26 (A=1, B=2, ... Z=26) o decodifica una secuencia de números de vuelta a letras, con separador personalizable.
Cifrado / Descifrado AES
Cifra y descifra texto de bajo riesgo con cifradores AES de OpenSSL. La frase de paso se resume con SHA-256 y la salida Base64 contiene IV más texto cifrado.
Generador bcrypt
Genera un hash bcrypt a partir de una contraseña en texto plano. Factor de costo ajustable de 4 a 14, compatible con Laravel, Django, Node y PHP.
Codificador y Decodificador Base32
Codifica y decodifica cadenas Base32 usando el alfabeto RFC 4648. Útil para secretos TOTP, tokens insensibles a mayúsculas y identificadores escritos por humanos.
Codificador de Cifrado Atbash
Codifica o decodifica texto con el cifrado Atbash, una sustitución hebrea que mapea A-Z a Z-A. La misma operación encripta y desencripta.
Codificador y Decodificador Base85
Codifica y decodifica Base85 en variantes Adobe Ascii85 (PostScript/PDF) o Z85 (ZeroMQ). Más compacto que Base64 para datos binarios.