lab.m8d.io
Panel/Seguridad/Generador Contraseñas

Generador Contraseñas

Contraseñas seguras, frases de paso y analizador de fortaleza

Seguridad

Contraseña generada

Entropía0 bits
Pool0 chars
Longitud
43264128
Caracteres

Generación múltiple

Cantidad

Tiempo estimado de crackeo

Online1K intentos/seg
Offline rápido10B intentos/seg
GPU cluster10T intentos/seg
Todo se ejecuta en tu navegador

Las contraseñas se generan con crypto.getRandomValues() y nunca se envían a ningún servidor. Puedes desconectar internet y la herramienta seguirá funcionando.

Acerca de esta herramienta

El Generador de Contraseñas de lab.m8d.io crea contraseñas criptográficamente seguras y frases de paso directamente en el navegador usando crypto.getRandomValues(). Incluye dos modos de generación — contraseñas aleatorias con longitud y juego de caracteres configurable, y frases de paso tipo Diceware con palabras aleatorias — además de un analizador de fortaleza que calcula entropía, detecta patrones débiles y estima el tiempo de crackeo bajo diferentes escenarios de ataque. Todo se ejecuta localmente; ninguna contraseña se envía a servidores externos.

Generación de contraseñas aleatorias

La herramienta genera contraseñas usando la API Web Crypto (crypto.getRandomValues()), que proporciona aleatoriedad criptográficamente segura respaldada por la entropía del sistema operativo: • Longitud configurable — De 4 a 128 caracteres. Se recomienda un mínimo de 12 caracteres para cuentas personales y 16+ para cuentas críticas (email principal, banca, servidores). • Juegos de caracteres — Mayúsculas (A-Z), minúsculas (a-z), dígitos (0-9) y símbolos (!@#$%^&*). Cada juego activado aumenta el tamaño del pool de caracteres y por tanto la entropía por carácter. • Exclusión de ambiguos — Opción para excluir caracteres visualmente similares (0/O, 1/l/I) que causan errores al transcribir contraseñas manualmente. • Garantía de representación — El generador asegura que al menos un carácter de cada juego activado aparezca en la contraseña final, evitando que una contraseña "aleatoria" termine siendo solo letras por casualidad. • Selección imparcial — Se usa rejection sampling para eliminar el sesgo modular. Esto garantiza que cada carácter del pool tenga exactamente la misma probabilidad de ser seleccionado, sin favorecer los primeros caracteres del conjunto.

Frases de paso (Diceware)

Las frases de paso combinan varias palabras aleatorias separadas por un carácter delimitador. Son más fáciles de recordar que contraseñas aleatorias y pueden ser igual de seguras: • Diccionario de 1024 palabras — La herramienta selecciona palabras de un diccionario de 1024 palabras comunes en inglés. Cada palabra aporta 10 bits de entropía (log₂ 1024 = 10). • Entropía por número de palabras: - 3 palabras = 30 bits (insuficiente) - 4 palabras = 40 bits (mínimo aceptable) - 5 palabras = 50 bits (bueno para uso personal) - 6 palabras = 60 bits (recomendado) - 7 palabras = 70 bits (excelente) - 8+ palabras = 80+ bits (máxima seguridad) • Separadores — Guión (-), punto (.), guión bajo (_), espacio o sin separador. El separador añade una cantidad trivial de entropía adicional pero mejora significativamente la legibilidad. • Capitalización — Opción para capitalizar la primera letra de cada palabra, lo que facilita la lectura y puede ser requerido por algunos sistemas que exigen mayúsculas. • Ventaja sobre contraseñas aleatorias — Una frase de 5 palabras como "Tiger-Maple-Crown-Drift-Noble" tiene ~50 bits de entropía y es mucho más fácil de recordar que "xK#9mP$2qR" con entropía similar. Para memorización humana, las frases de paso son superiores.

Análisis de fortaleza

El analizador evalúa cualquier contraseña sin enviarla a ningún servidor. El análisis incluye: • Entropía (bits) — Medida de la incertidumbre: cuántas posibilidades tendría que probar un atacante en promedio. Se calcula como longitud × log₂(pool), ajustado por patrones detectados. Referencia: 40 bits es el mínimo aceptable, 60 bits es bueno, 80+ bits es excelente. • Tamaño del pool — Número de caracteres posibles según los tipos detectados (mayúsculas=26, minúsculas=26, dígitos=10, símbolos≈32). • Detección de patrones: - Contraseñas comunes (top 100: password, 123456, qwerty…) - Caracteres repetidos (aaa, 111) - Secuencias (abc, 321, cba) - Secuencias de teclado (qwerty, asdf, zxcv) - Patrones de año (1990, 2024) - Un solo tipo de carácter • Puntuación 0-4 — De "Muy débil" a "Muy fuerte", basada en la entropía efectiva después de penalizar patrones: - 0 (Muy débil): < 25 bits o contraseña común - 1 (Débil): 25-40 bits - 2 (Aceptable): 40-60 bits - 3 (Fuerte): 60-80 bits - 4 (Muy fuerte): 80+ bits

Tiempos de crackeo estimados

La herramienta estima cuánto tardaría un atacante en adivinar la contraseña bajo tres escenarios: • Online (1.000 intentos/segundo) — Ataque remoto contra un servicio web con rate limiting básico. Representa el escenario más optimista para el defensor. Una contraseña con 40 bits de entropía resistiría ~35 años de ataque online continuo. • Offline rápido (10.000 millones/segundo) — Ataque contra un hash robado (MD5, SHA1 sin salt) usando hardware dedicado. Este es el escenario más común en filtraciones de bases de datos. 60 bits de entropía = ~36 años. Con hashes seguros (bcrypt, Argon2), este número se multiplica por miles. • GPU cluster (10 billones/segundo) — Ataque con un cluster moderno de GPUs contra hashes rápidos. Representa el peor escenario realista. 80 bits de entropía resiste incluso este escenario durante miles de millones de años. Estos tiempos asumen fuerza bruta pura (probar todas las combinaciones). Los ataques de diccionario, reglas y rainbow tables pueden ser significativamente más rápidos contra contraseñas basadas en palabras comunes o patrones predecibles, lo que refuerza la importancia de usar contraseñas verdaderamente aleatorias.

Preguntas frecuentes

¿Es seguro generar contraseñas en un sitio web?
En esta herramienta, sí. Todo el código se ejecuta en tu navegador usando crypto.getRandomValues(), la misma API que usan los gestores de contraseñas. Las contraseñas nunca se envían a ningún servidor — puedes verificarlo desconectando internet y comprobando que la herramienta sigue funcionando. El código fuente es auditable en el navegador.
¿Cuántos caracteres debe tener una contraseña segura?
Depende del uso y del juego de caracteres. Con mayúsculas, minúsculas, dígitos y símbolos: 12 caracteres (~79 bits) es bueno para cuentas personales, 16 caracteres (~105 bits) es excelente para cuentas críticas, y 20+ caracteres es ideal. Para frases de paso, 5-6 palabras (~50-60 bits) es un buen equilibrio entre seguridad y memorabilidad.
¿Qué es la entropía de una contraseña?
La entropía mide la incertidumbre de una contraseña en bits. Cada bit duplica el número de combinaciones posibles: 40 bits = ~1 billón de combinaciones, 60 bits = ~1 trillón, 80 bits = ~1 cuatrillón. Se calcula como longitud × log₂(tamaño del pool de caracteres). Una contraseña de 12 caracteres con mayúsculas, minúsculas, dígitos y símbolos tiene un pool de ~94 caracteres, dando ~78.8 bits de entropía.
¿Es mejor una frase de paso que una contraseña aleatoria?
Depende del objetivo. Para memorización humana, las frases de paso son superiores: 'Tiger-Maple-Crown-Drift-Noble' (~50 bits) es fácil de recordar. Una contraseña aleatoria como 'xK#9mP$2qR' tiene entropía similar pero es imposible de memorizar. Para contraseñas almacenadas en un gestor de contraseñas, una cadena aleatoria de 20+ caracteres es ideal porque no necesitas recordarla.
¿Qué significa 'excluir caracteres ambiguos'?
Los caracteres ambiguos son los que se confunden visualmente: el número 0 con la letra O, el número 1 con la letra l minúscula y la I mayúscula. Excluirlos es útil cuando necesitas transcribir la contraseña manualmente (dictarla, escribirla en papel, o leerla de una pantalla). La reducción de entropía es mínima (~0.5 bits menos por carácter).
¿Cuánto tarda en crackearse una contraseña de 8 caracteres?
Una contraseña aleatoria de 8 caracteres con todo el juego de caracteres (~52 bits de entropía) puede crackearse en ~6 minutos con un GPU cluster moderno, ~1 hora con hardware doméstico, o ~35 años online. Por eso 8 caracteres ya no se considera seguro — el mínimo recomendado actual es 12 caracteres.
¿Por qué el generador usa crypto.getRandomValues() y no Math.random()?
Math.random() usa un PRNG como xorshift128+ que NO es criptográficamente seguro — sus valores son predecibles si se conoce el estado interno. Un atacante que observe algunos valores generados puede predecir los siguientes. crypto.getRandomValues() usa un generador criptográficamente seguro (CSPRNG) respaldado por la entropía del sistema operativo, lo que hace imposible predecir los valores generados.
¿Cómo funciona el analizador de contraseñas?
El analizador calcula la entropía teórica basada en longitud y tipos de caracteres, y luego aplica penalizaciones por patrones detectados: contraseñas comunes (top 100), caracteres repetidos, secuencias numéricas o alfabéticas, secuencias de teclado (qwerty, asdf), patrones de año y uso de un solo tipo de carácter. La entropía efectiva después de penalizaciones determina la puntuación final de 0 a 4.