Generador y verificador de hashes bcrypt
CifradoTodo se ejecuta en tu navegador: no se sube nada
Genera o verifica hashes de contraseña con bcrypt — el esquema que deberías usar hoy para guardar contraseñas, junto a scrypt y Argon2. Su clave no es «calcular rápido», sino calcular despacio a propósito: cada paso del factor de coste duplica el trabajo y, con él, el coste de la fuerza bruta para un atacante, mientras que un inicio de sesión legítimo solo paga decenas de milisegundos. El hash ya incluye el identificador del algoritmo, el factor de coste y la sal, así que al verificar no hay que guardar nada aparte: basta con conservar la cadena completa en la tabla de usuarios. Aquí se emite el prefijo `$2y$` (el que usa password_hash de PHP) y al verificar se aceptan también `$2a$` y `$2b$` — los tres son equivalentes sobre una entrada estándar. Todo se calcula en local: ni la contraseña ni el hash se suben.
Funciones
- Dos direcciones: generar un hash o verificar una contraseña contra uno
- Factor de coste de 4 a 15, con el tiempo aproximado de cada nivel indicado
- Emite el prefijo `$2y$` (compatible con PHP) y acepta `$2a$` / `$2b$` al verificar
- El hash lleva su propia sal y sus parámetros: no hace falta guardar nada más
- Una sal aleatoria nueva cada vez, así que la misma contraseña da un hash distinto en cada ejecución
- Si la longitud o el formato no cuadran, se explica el motivo concreto en vez de un simple «verificación fallida»
Cómo se usa
- Elige el modo: generar o verificar
- Al generar, fija el factor de coste; al verificar, pega el hash existente en su campo
- Pega la contraseña en la caja de entrada
- Pulsa Ctrl/⌘ + Enter o haz clic en Ejecutar, y copia el resultado
Preguntas frecuentes
- ¿Qué factor de coste debería usar?
- El valor predeterminado, 10 (unos 60 ms), sirve para la gran mayoría de los casos. La disyuntiva es «cuánto espera mi servidor en cada verificación» frente a «cuánto calcula un atacante en cada intento»: el mismo número, y por eso no se puede subir sin más. 12 es una elección habitual; 15 hace que cada verificación ronde los dos segundos y se note en un sitio con mucho tráfico. Para una protección mayor, cambia a scrypt o Argon2, que exigen más memoria con el mismo tiempo de reloj — y la memoria es justo el recurso que a un atacante le cuesta escalar.
- ¿Por qué la misma contraseña da un hash distinto cada vez?
- Porque en cada ocasión se genera una sal aleatoria que se incrusta en la cadena del hash (los 22 caracteres que siguen a `$2y$10$`). Eso es lo que derrota a las tablas arcoíris: sin sal, un atacante precalcula una vez los hashes de las contraseñas comunes y consulta de golpe todos los registros que coincidan; con una sal distinta por registro, la misma contraseña da un hash diferente en cada fila y esa tabla deja de servir. Que el resultado cambie cada vez es lo correcto, no un error.
- Cuando falla la verificación, ¿cómo distingo una contraseña equivocada de un hash mal formado?
- Esta herramienta los distingue. Un hash mal formado (sin el prefijo `$2y$`, o que no tiene 60 caracteres) lo dice con claridad y muestra el formato esperado. Un hash bien formado que simplemente no coincide da «no coincide». Ojo también con copiar un hash de una base de datos: suele arrastrar espacios o un salto de línea, y aquí se recortan en ambos extremos automáticamente.
- ¿Qué limitaciones tiene bcrypt?
- Hay dos que conviene conocer. Primera: trunca a 72 bytes, así que la parte final de una contraseña más larga se ignora — «una contraseña más larga es más segura» no se cumple en bcrypt (esta herramienta no dará error por ello, pero deberías saberlo). Segunda: consume CPU pero no memoria, lo que abarata relativamente el descifrado en paralelo con tarjetas gráficas — exactamente el problema que scrypt y Argon2 vinieron a resolver. Para un sitio normal bcrypt sigue siendo perfectamente suficiente; donde el listón criptográfico sea más alto, usa Argon2id.
Herramientas relacionadas
Scrypt
CifradoGenera hashes scrypt en formato PHC o verifica uno existente. Salida PHC, hex o Base64, y aviso explícito al superar el límite de memoria.
Hash
CifradoCalcula resúmenes MD5, SHA-1, SHA-256, SHA-512 o MD4 de cualquier texto, en bytes UTF-8 para que coincidan con openssl. En tu navegador.
Contraseñas de BD
CifradoGenera el md5 de PostgreSQL y el mysql_native_password de MySQL y MariaDB, cada uno con una sentencia SQL lista para ejecutar.
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Codificar URL
CifradoEscapa texto a la forma %XX y lo devuelve, tratando una URL completa y un valor de parámetro como trabajos distintos. Todo en tu navegador.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.