Generador de hash bcrypt y Argon2
Crea hashes de contraseña bcrypt o Argon2id con el coste que elijas, o comprueba si una contraseña coincide con un hash. Se ejecuta en un worker en segundo plano en tu navegador.
Se ejecuta en tu navegador: no se sube nada.
Generar un hash
Esta contraseña tiene más de 72 bytes. bcrypt no puede procesarla fielmente; elige Argon2id o una contraseña más corta.
De 4 a 14. Cada paso duplica el tiempo.
$2y$ es el que escribe PHP. El algoritmo es el mismo.
19456 KiB son unos 19 MiB. Hasta 262.144.
Trabajando…
Verificar una contraseña
Un hash bcrypt ($2a$, $2b$, $2y$) o Argon2.
Cómo se usa
- Escribe la contraseña, elige bcrypt o Argon2id, ajusta el coste (rondas) o la memoria y pulsa Generar.
- Copia el hash a tu base de datos o a tu archivo de seeds.
- Para comprobar una contraseña, introdúcela con el hash en la sección Verificar. Se reconocen ambos formatos.
Preguntas frecuentes
¿Se sube mi contraseña?
No. El hash se calcula en tu navegador con WebAssembly, dentro de un worker en segundo plano. Esta página no carga anuncios, analítica ni scripts de terceros, y nada de lo que escribes se registra. Aun así, no pegues una contraseña real de producción en ninguna web; usa una de prueba.
¿Es compatible con PHP y Laravel?
Sí. El prefijo $2y$ por defecto es el que escribe password_hash() de PHP, y password_verify() acepta estos hashes (y al revés). Los hashes Argon2id usan el formato estándar $argon2id$ que PHP produce con PASSWORD_ARGON2ID.
¿Qué coste debo usar?
Cada +1 duplica el tiempo. Elige el más alto que tu servidor pueda permitirse, buscando unos 250 ms por hash; hoy lo habitual es de 10 a 12. La página muestra cuánto tardó tu navegador.
¿Qué ajustes de Argon2id uso?
El mínimo de OWASP es 19 MiB de memoria, 2 iteraciones y 1 carril (los valores por defecto aquí); 46 MiB con 1 iteración es una alternativa equivalente. Más memoria es más fuerte.
¿Por qué se rechaza una contraseña de más de 72 bytes?
bcrypt solo usa los primeros 72 bytes, así que el resto se ignoraría sin avisar. Usa Argon2id, o aplica un hash previo a la contraseña en tu aplicación.
¿Por qué cada hash es distinto para la misma contraseña?
Cada vez se genera una sal aleatoria que se guarda dentro del hash. La verificación la lee, así que todos los hashes válidos de la contraseña se verifican.