Saltar al contenido

Comprobador de bcrypt y argon2

bcrypt & argon2 Checker

Genera el hash bcrypt de una contraseña con el costo que elijas y comprueba una contraseña contra un hash bcrypt existente; detecta argon2 pero no lo calcula.

Calcula el hash de una contraseña con bcrypt, o comprueba una contraseña contra un hash `$2a$`/`$2b$`/`$2y$` existente. La implementación es el `$2b$` de OpenBSD verificado contra los vectores publicados de crypt_blowfish de Openwall, y corre en un worker en esta pestaña.

🔒 Se ejecuta por completo en tu navegadorbcryptargon2passwordhash
Modo

Se procesa solo en esta pestaña; no se transmite nada.

Costo

1024 rondas — el valor por defecto de siempre.

Esto es bcrypt tal como OpenBSD define $2b$, verificado contra los vectores de prueba publicados de Openwall crypt_blowfish y ejecutándose por completo en esta pestaña. Solo cuentan los primeros 72 bytes de una contraseña: así es bcrypt, no un fallo de aquí. Los hashes $2x$ (creados por un fallo de crypt_blowfish anterior a 2011) se rechazan, y argon2 no está implementado.

Cómo se usa

  1. Elige hash o verificar

    Hacer el hash necesita un costo; verificar lee el costo del hash que pegas, porque está guardado en la cadena.

  2. Elige un costo que puedas permitirte

    Cada paso duplica el trabajo. 10 fue el valor por defecto durante años, 12 es una elección sólida hoy, y 14 tarda unos segundos visibles en un navegador, y ese es el sentido: a un atacante le cuesta lo mismo.

  3. Lee el veredicto

    Coincide o no coincide. Todo ocurre en la pestaña, así que un hash de producción pegado aquí no viaja a ningún sitio.

Preguntas frecuentes

¿Por qué argon2 se rechaza en lugar de admitirse?

Porque un argon2 de confianza en un navegador significa distribuir un build de WebAssembly que este proyecto no puede auditar línea a línea. bcrypt está implementado aquí en código que puedes leer, comprobado contra vectores publicados. Rechazar un hash argon2 es más honesto que una respuesta verosímil salida de una caja negra.

¿Por qué mi contraseña larga verifica contra el hash equivocado?

bcrypt solo lee los primeros 72 bytes. Dos contraseñas que comparten sus primeros 72 bytes son la misma contraseña para él: eso es bcrypt en sí, no esta implementación. Importa para una frase de contraseña, y es una de las razones por las que la gente se pasa a argon2.

¿Por qué hacer el hash de la misma contraseña dos veces da cadenas distintas?

Porque cada ejecución genera una sal nueva de 16 bytes, y la sal viaja dentro del hash. Ambas cadenas verifican la misma contraseña. Un hash de contraseña que es igual cada vez es un hash sin sal, que es exactamente para lo que se construyeron las tablas arcoíris.

¿$2a$, $2b$ y $2y$ son distintos?

No para ninguna contraseña de 72 bytes o menos, que son todas. Los prefijos registran antes o después de qué bug histórico se hizo un hash. `$2x$` es la excepción: marca hashes hechos por un bug de crypt_blowfish anterior a 2011, y esos se rechazan aquí.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.