Contraseñas
Generador de contraseñas seguras
Ya tienes una contraseña hecha ahí abajo: se ha generado al abrir la página, en tu navegador, y no ha pasado por ningún sitio. Ajusta lo que quieras y mira cuántos bits aguanta de verdad.
Tu contraseña no sale de esta pestaña. No viaja a ningún servidor, no queda en el historial y al recargar la página ha desaparecido.
La objeción evidente: ¿por qué fiarse de un generador en línea?
Es la pregunta correcta, y hay que hacérsela a cualquier web que te ofrezca una contraseña. Si la contraseña se genera en su servidor, esa web ha visto tu contraseña, y no tienes forma de saber qué ha hecho con ella. Aquí la contraseña se genera en tu navegador con crypto.getRandomValues, la fuente de azar que el propio navegador reserva para criptografía. No hay ninguna petición que la lleve a ninguna parte, no se guarda en el navegador y al recargar la página ha desaparecido.
No hace falta creerme: carga la página, desconecta el wifi y sigue generando contraseñas. Funciona igual, porque no hay nada al otro lado.
Cómo funciona
-
Ya está generada
Al abrir la página tienes una contraseña de 20 caracteres lista para copiar. Sin clics, sin esperas y sin registro.
-
Ajusta si lo necesitas
Longitud, qué tipos de carácter entran, si quitar los que se confunden. El medidor de bits se recalcula al momento.
-
Cópiala y guárdala en tu gestor
O pásate a la pestaña de frases si es una contraseña que vas a teclear a mano todos los días.
Por qué la longitud importa más que la complejidad
Es la idea más útil de toda esta página, y va contra lo que llevan veinte años diciéndonos los formularios de registro. Cada carácter que añades multiplica las combinaciones posibles; añadir símbolos raros solo cambia el número por el que multiplicas. Multiplicar más veces gana siempre a multiplicar por un número algo mayor.
Con los números de esta misma herramienta:
- 8 caracteres con mayúsculas, minúsculas, números y símbolos: 50,7 bits. Contra un atacante con la base de datos robada y hash rápido, cae en unos 16 minutos.
- 16 caracteres solo con minúsculas: 75,2 bits. El mismo atacante tarda unos 691 años.
La segunda es más fácil de teclear, más fácil de dictar por teléfono y unas veinticuatro millones de veces más costosa de romper. Por eso las guías modernas —y desde 2017 las del NIST estadounidense— piden longitud y dejan de exigir esa mezcla obligatoria de símbolos: lo único que conseguía era que la gente escribiera «Password1!» y lo reutilizara en todas partes.
Qué significan los bits, y por qué exigir símbolos los baja
La entropía en bits es el logaritmo en base dos del número de contraseñas distintas que podrían haber salido con tus ajustes. Cada bit dobla ese número y dobla el tiempo de ataque. Es la única forma sensata de comparar dos contraseñas, mucho mejor que un semáforo de «débil / media / fuerte» sin números detrás.
Y aquí un detalle que casi ninguna web tiene en cuenta: marcar «al menos uno de cada tipo» reduce la entropía. Al exigirlo estás descartando todas las contraseñas que no cumplen la condición, así que quedan menos posibles. No es mucho —1,06 bits en una de 8 caracteres, 0,14 en una de 20— pero es real, y en esta herramienta el descuento se calcula de forma exacta en lugar de ignorarlo. Por eso el número cambia cuando marcas esa casilla.
También cambia cómo se genera. Lo habitual en otras webs es colocar a la fuerza un dígito y un símbolo y luego barajar; parece equivalente y no lo es, porque reserva sitio a conjuntos pequeños y hace que los dígitos salgan muy por encima de lo que les toca. Aquí se genera y, si falta algún tipo, se descarta la contraseña entera y se hace otra. Así todas las contraseñas válidas salen con la misma probabilidad, que es la condición para que la cifra de bits sea la de verdad y no un adorno.
El tiempo de descifrado, con el supuesto delante
Cualquier cifra de «tardaría X años» depende por completo de a qué velocidad supongas que el atacante prueba, y ese supuesto cambia el resultado en nueve órdenes de magnitud. Una web que te da un número sin decir de dónde sale te está dando un número inventado.
Aquí eliges el escenario y cada uno enseña su velocidad. La misma contraseña de 60 bits:
- Desde fuera, contra un servicio que no limita bien los intentos (1.000 por segundo): unos 18 millones de años.
- Con la base robada y el sitio guardando bien las contraseñas con bcrypt (50.000 por segundo): unos 365.000 años.
- Con la base robada y hash rápido SHA-256, ocho tarjetas gráficas (cien mil millones por segundo): unos 67 días.
- Con la base robada y MD5 sin sal, el peor caso realista (un billón por segundo): unos 7 días.
La cuenta es 2^(bits−1) ÷ intentos por segundo. Se resta un bit porque de media se acierta a mitad del recorrido. Puedes rehacerla con una calculadora, que es justamente la idea. Y fíjate en lo que dice la tabla: tu contraseña puede ser buenísima y aun así caer en una semana si el sitio guarda las contraseñas mal. Esa parte no está en tu mano; por eso conviene no reutilizarlas.
Frases de contraseña: lo que de verdad se recomienda
Una frase de contraseña son varias palabras elegidas al azar de una lista, unidas por un separador. Algo como roble-cantina-veloz-mercado. Se recuerda muchísimo mejor que una cadena de símbolos y aguanta igual o más, porque la fuerza sale del número de palabras y del tamaño de la lista, no de lo rara que parezca.
La lista de aquí tiene 4.862 palabras en español, así que cada palabra aporta 12,25 bits: cinco palabras dan unos 61 bits y seis pasan de 73. La condición es que las elija el ordenador. Si las eliges tú no son aleatorias: las personas escogemos palabras relacionadas, del mismo campo semántico, y eso hunde la entropía real muy por debajo de lo que parece.
La lista está filtrada a palabras de 3 a 9 letras, sin tildes ni eñes, para que la frase se pueda teclear en cualquier teclado y la acepte cualquier formulario. Los bits se calculan sobre el número real de palabras de esa lista filtrada, no sobre el de la lista original: inflar ahí la cifra sería el mismo truco que criticamos en los tiempos de descifrado.
Para dar de alta a mucha gente
La tercera pestaña genera hasta 500 contraseñas de golpe y las descarga en texto plano o en CSV con una columna de número y otra de contraseña. Sirve para dar de alta usuarios, preparar credenciales de un curso o rellenar un entorno de pruebas. Se generan en tu navegador igual que las demás y el archivo va directo a tu carpeta de descargas.
Dos consejos que valen más que la función: borra ese archivo en cuanto hayas dado de alta a la gente, y haz que cambien la contraseña en el primer inicio de sesión. Un archivo con contraseñas en claro no debería sobrevivir al día en que se usó.
Y una advertencia sobre el otro extremo: para guardar esas contraseñas en tu base de datos no vale un hash normal. Un SHA-256 a secas se calcula por miles de millones por segundo en una tarjeta gráfica; hacen falta algoritmos lentos y con sal, como bcrypt o Argon2. El generador de hash lo explica con detalle, y sirve además para firmar peticiones con HMAC.
Preguntas frecuentes
¿De verdad no se envía la contraseña a ningún sitio?
No. Se genera con crypto.getRandomValues dentro de tu navegador y no hay ninguna petición que la lleve a ninguna parte. Tampoco se guarda: al recargar la página, la anterior ha desaparecido.
No hace falta creerme: carga la página, desconecta el wifi y sigue generando. Funciona igual, porque no hay nada al otro lado.
¿Por qué la longitud importa más que meter símbolos raros?
Porque cada carácter que añades multiplica las combinaciones, mientras que ampliar el alfabeto solo cambia el número por el que multiplicas.
8 caracteres con de todo: 50,7 bits, unos 16 minutos frente a un ataque con hash rápido. 16 caracteres solo minúsculas: 75,2 bits, unos 691 años. Y la segunda se teclea mejor.
¿De dónde sale el tiempo de descifrado?
De 2^(bits−1) ÷ intentos por segundo. Se resta un bit porque de media se acierta a mitad del recorrido.
La velocidad la eliges tú entre cuatro supuestos y cada uno enseña su cifra. Una web que dice «tres mil millones de años» sin decir de qué velocidad parte no está diciendo nada.
¿Qué es una frase de contraseña y por qué la recomiendan los expertos?
Varias palabras al azar unidas por un separador: roble-cantina-veloz-mercado. Se recuerda mejor que una cadena de símbolos y aguanta igual o más.
Con la lista de 4.862 palabras de aquí, cada palabra aporta 12,25 bits: cinco dan unos 61 bits. La condición es que las elija el ordenador: si las eliges tú, no son aleatorias.
¿Necesito un gestor de contraseñas?
Si tienes más de un puñado de cuentas, sí. Una contraseña buena es larga y aleatoria, y por tanto imposible de memorizar; por cincuenta cuentas, no hay cabeza que aguante.
Un gestor las guarda cifradas y las rellena por ti, así solo recuerdas una: la del gestor. Y ese es justo el caso donde una frase de contraseña brilla, porque la vas a teclear a diario. Los hay gratuitos y de código abierto; aquí no se vende ninguno.
¿Por qué no puedo reutilizar la misma contraseña?
Porque el día que uno de esos sitios sufra una filtración —y pasa constantemente—, los atacantes prueban esa contraseña automáticamente en todos los servicios grandes. Se llama credential stuffing y es rentable porque no hay que descifrar nada: ya la tienen.
Da igual lo fuerte que sea: si está reutilizada, la fuerza no sirve de nada. Una distinta por sitio convierte una filtración en un problema de una sola cuenta.
¿Qué significa la entropía en bits?
Es el logaritmo en base dos del número de contraseñas que podrían haber salido con esos ajustes. Cada bit dobla ese número y dobla el tiempo de ataque.
Un detalle que casi nadie tiene en cuenta: exigir «al menos un número y un símbolo» descarta combinaciones, así que la entropía real baja un poco. Aquí ese descuento se calcula exactamente, y por eso el número cambia al marcar la casilla.
¿Puedo generar muchas de golpe para dar de alta usuarios?
Sí, hasta 500, descargables en texto o CSV con columna de número y de contraseña. Se generan en tu navegador como las demás.
Borra el archivo en cuanto hayas dado de alta a la gente y haz que cambien la contraseña en el primer inicio de sesión.
¿Qué pasa si mi navegador es muy antiguo?
Si no tiene crypto.getRandomValues, la herramienta te lo dice y no genera nada. No usamos Math.random como sustituto: es predecible y una contraseña salida de ahí no vale para nada. Es preferible no darte una contraseña que darte una mala haciéndola pasar por buena.