Generador de Contraseñas Aleatorias
Ajusta las opciones: la contraseña se genera al instante con una fuente aleatoria criptográficamente segura, por completo en tu navegador.
Activa al menos un conjunto de caracteres para generar una contraseña.
Aleatoriedad real, no Math.random
La mayoría de los generadores de contraseñas en el navegador usan
Math.random() porque es el nombre de función obvio.
El problema es que Math.random() es un generador
pseudoaleatorio rápido pensado para gráficos y simulaciones, no
para seguridad — no está diseñado para resistir la predicción, y
tratar su salida como un secreto es una debilidad real y
documentada. Este generador usa en cambio
crypto.getRandomValues(), que toma su aleatoriedad de
la fuente criptográficamente segura de tu sistema operativo — la
misma calidad de aleatoriedad que se usa para generar claves de
cifrado. Cada carácter se elige de forma independiente entre los
conjuntos que hayas activado, y la opción "excluir caracteres
ambiguos" quita los parecidos (i l 1 L o 0 O) de esos
conjuntos antes de empezar a elegir, lo cual ayuda cuando una
contraseña hay que escribirla a mano o leerla en voz alta en vez
de pegarla.
Ejemplo práctico
Con la configuración por defecto — longitud 16, los cuatro conjuntos activados, exclusión de ambiguos desactivada — el conjunto combinado tiene 88 caracteres (26 mayúsculas + 26 minúsculas + 10 dígitos + 26 símbolos). La entropía es longitud × log2(tamaño del conjunto): 16 × log2(88) ≈ 16 × 6.459 ≈ 103.4 bits, que esta herramienta etiqueta como "Muy fuerte". Si desactivas símbolos y números el conjunto baja a 52 caracteres, y con la misma longitud la entropía cae a unos 91.2 bits — sigue siendo fuerte, pero el cálculo muestra exactamente lo que cuesta cada opción.
Preguntas frecuentes
¿Por qué crypto.getRandomValues en vez de Math.random?
Math.random() usa un algoritmo pseudoaleatorio rápido y predecible, pensado para animaciones y juegos — NO es criptográficamente seguro, y en algunos motores de navegador su estado interno puede reconstruirse a partir de unos pocos resultados. crypto.getRandomValues() toma su aleatoriedad de la fuente segura del sistema operativo, la misma que se usa para generar claves de cifrado. Para algo que protege una cuenta, esa diferencia lo es todo.
¿Qué longitud debería tener una contraseña?
16 caracteres o más para cualquier cosa importante — correo, banca, la contraseña maestra de tu gestor de contraseñas. 12 es un mínimo razonable para cuentas de menor riesgo. La longitud importa más que el ingenio: una contraseña larga y aleatoria vence a una corta con sustituciones tipo 'C0ntraseñ@!', que los atacantes ya contemplan.
¿Qué es la entropía y por qué importa?
La entropía mide cuántos intentos necesitaría un atacante, expresada en bits — cada bit adicional duplica el espacio de búsqueda. Aquí se calcula como longitud × log2(tamaño del conjunto de caracteres). Más bits significa un espacio más grande para forzar por fuerza bruta, pero es una simplificación: asume que cada carácter se elige de forma independiente y uniforme, lo cual es cierto para este generador pero no para las contraseñas que inventa una persona.
¿Se guarda mi contraseña generada en algún lugar?
No. La contraseña se genera y se muestra por completo en tu navegador con JavaScript — nunca se envía a un servidor, no se registra y no se escribe en la URL. En cuanto cierras la pestaña o navegas a otra página, desaparece salvo que la hayas copiado.