Sobre el Comprobador de Bcrypt
Comprueba si una contraseña en claro corresponde a un hash bcrypt. Es la operación inversa del generador: extremadamente útil para depurar logins, recuperar accesos en entornos de pruebas y validar contraseñas sin tener que reiniciar la base de datos. Toda la verificación se realiza localmente, sin enviar nada a servidores. Para generar hashes bcrypt, usa nuestro Generador de Hash.
Cómo verificar en 3 pasos
- 1Pega la contraseña original en el primer campo.
- 2Pega el hash bcrypt (60 caracteres, empezando por
$2a$,$2b$o$2y$). - 3El resultado aparece solo: mira si el texto coincide con el hash y las partes del hash.
Estructura de un hash bcrypt
Un hash bcrypt tiene 60 caracteres divididos en cuatro partes separadas por $.
| Parte | Ejemplo | Significado |
|---|---|---|
| Versión | $2b$ | Identifica la variante (2a, 2b o 2y) |
| Coste | 10$ | Número de rondas (coste computacional) |
| Salt | 22 caracteres | Secuencia aleatoria embebida en el hash |
| Hash | 31 caracteres | Resultado de bcrypt aplicado al texto + salt |
Casos de uso por framework
El algoritmo bcrypt está estandarizado, así que los hashes generados en los frameworks de abajo siguen el mismo formato y se pueden verificar aquí sin ninguna conversión.
| Framework / lenguaje | Generación | Verificación |
|---|---|---|
| Laravel (PHP) | Hash::make($plain) | Hash::check($plain, $hash) |
| Node.js (bcrypt / bcryptjs) | bcrypt.hash(plain, rounds) | bcrypt.compare(plain, hash) |
| Python (passlib / bcrypt) | bcrypt.hashpw(plain, salt) | bcrypt.checkpw(plain, hash) |
| Spring Security (Java) | encoder.encode(plain) | encoder.matches(plain, hash) |
| Django (Python) | make_password(plain) | check_password(plain, hash) |
| Ruby (bcrypt-ruby) | BCrypt::Password.create(plain) | password == plain |