¿Debo usar una contraseña aleatoria o una frase de contraseña?+−
Ambas son legítimas, y las directrices de identidad digital del NIST de 2024 favorecen explícitamente la longitud sobre las reglas de complejidad forzada. Una contraseña aleatoria concentra más entropía por carácter, ideal cuando un gestor de contraseñas la recordará por ti. Una frase de contraseña (varias palabras aleatorias encadenadas) sacrifica algo de entropía por carácter por algo que una persona realmente puede memorizar y escribir, lo cual importa para contraseñas maestras o cualquier cosa que escribas de memoria.
¿Qué significan realmente los bits de entropía?+−
Cada bit adicional de entropía duplica el número de intentos que necesitaría un atacante para probar cada posibilidad. Una contraseña con 40 bits de entropía tiene alrededor de un billón de combinaciones posibles; una con 80 bits tiene alrededor de un billón de veces un billón. Las guías de seguridad generalmente consideran 80 bits o más como excelentes para cualquier cosa que no pueda protegerse con limitación de intentos o bloqueos, como una clave de cifrado o la contraseña maestra de un gestor.
¿Cómo se calcula la estimación del tiempo de descifrado?+−
Asume un atacante con acceso sin conexión a un hash de contraseña, probando alrededor de 10 mil millones de intentos por segundo, más o menos lo que logra un clúster de GPU moderno. Su objetivo es comunicar el orden de magnitud, no una previsión precisa: el tiempo de descifrado real depende en gran medida del algoritmo de hash que use el sistema objetivo, algo que esta herramienta no tiene forma de conocer.
¿Por qué excluir caracteres ambiguos como l, 1, I, O y 0?+−
Son fáciles de confundir al leerlos en voz alta, escribirlos a mano o mostrarlos en ciertas fuentes. Excluirlos intercambia una pequeña cantidad de entropía por una contraseña menos propensa a errores al escribirla desde una pantalla o un papel: útil para contraseñas que debas introducir manualmente en lugar de pegar desde un gestor.
¿Podría el generador aleatorio favorecer ciertos caracteres sobre otros?+−
No: utiliza muestreo por rechazo sobre crypto.getRandomValues() en lugar de una simple operación de módulo. Tomar un byte aleatorio y hacer byte % tamañoDelPool daría a los caracteres cercanos al inicio del pool una ventaja levemente mejor cada vez que el tamaño del pool no divide a 256 de forma exacta, así que el generador en su lugar descarta cualquier valor fuera de rango y vuelve a extraer hasta que el resultado caiga en un rango que se divide exactamente. El resultado es que cada carácter tiene exactamente la misma probabilidad de ser elegido, sin importar cuántos tipos de caracteres actives.
¿Por qué una contraseña aleatoria siempre incluye al menos uno de cada tipo de carácter que activé?+−
Después de construir el pool de caracteres, el generador reserva un carácter de cada categoría que activaste (mayúsculas, minúsculas, números, símbolos) antes de rellenar el resto de la longitud con el pool completo, y luego baraja todo en un orden aleatorio. Eso garantiza que tu contraseña no termine accidentalmente siendo solo letras sin ningún número, lo cual importa porque muchos sitios rechazan una contraseña a la que le falta un tipo de carácter requerido aunque el pool lo incluyera. El paso de barajado usa la misma selección aleatoria sin sesgo, así que los caracteres garantizados no terminan en posiciones predecibles.