Hash Bcrypt 🔒 Funciona localmente en tu navegador — no se sube nada.

Hashea una contraseña con bcrypt, o compárala con un hash.

 

Sobre esta herramienta

Bcrypt es una función de hashing de contraseñas diseñada para ser deliberadamente lenta, que es justo lo que quieres: encarece los ataques de fuerza bruta. Su factor de coste te deja aumentar esa lentitud a medida que el hardware se vuelve más rápido. Usa la pestaña Hash para convertir una contraseña en un hash bcrypt y sembrar una base de datos de prueba, y la pestaña Verificar para comprobar si una contraseña coincide con un hash que ya tienes.

Se ejecuta en tu navegador con la librería bcryptjs, así que ninguna contraseña se envía a un servidor. Ten en cuenta que bcrypt sirve para almacenar contraseñas, no para un cifrado reversible.

Preguntas frecuentes

¿Por qué usar bcrypt en vez de SHA-256 para contraseñas?

SHA-256 es rápido, lo cual es genial para la integridad de archivos pero terrible para contraseñas, porque los atacantes pueden probar miles de millones de intentos por segundo. bcrypt es deliberadamente lento e incluye una sal aleatoria por cada hash, lo que hace poco práctico el fuerza bruta y los ataques con tablas rainbow precomputadas.

¿Qué significa el número de "coste" (cost)?

El coste es un factor de trabajo en potencias de dos: cada +1 duplica aproximadamente el tiempo para calcular un hash. El coste 10 (el predeterminado) tarda del orden de decenas de milisegundos; el coste 14-15 puede tardar segundos. Elige el coste más alto que tu servidor pueda permitirse por inicio de sesión sin convertirse en un cuello de botella.

¿Mis contraseñas se envían a un servidor?

No. El hasheo y la verificación se ejecutan por completo en tu navegador, en un Web Worker cuando está disponible, para que un hash de coste 15 no congele la pestaña. Nada de lo que escribes aquí se transmite ni se almacena en ningún sitio.

¿Por qué cada hash bcrypt de la misma contraseña es diferente?

bcrypt genera una sal aleatoria nueva cada vez que hasheas, y esa sal queda incrustada en la propia cadena de salida ($2b$10$<sal><hash>). Esto es lo esperado, y es exactamente lo que impide que dos contraseñas idénticas produzcan hashes idénticos.

¿Por qué la verificación falló con "formato de hash inválido" en vez de "no coincide"?

Un hash bcrypt válido siempre coincide con el patrón $2a/b/x/y$<coste>$<53 caracteres>. Si lo que pegaste no coincide —truncado, algoritmo equivocado, espacios de más— ese es un problema distinto de una contraseña incorrecta, por lo que se reporta por separado.