Generador de contraseñas
Zee Oye, el comando envió un memorándum de seguridad sobre higiene de contraseñas y me señalaron específicamente. Qué vergüenza. ¿Puedes hacer un pequeño generador de contraseñas? Le doy una longitud, digo sí o no a números y símbolos, y me da algo que realmente pueda usar. Supongo que usar "password123" para todas las cuentas no es lo mejor...
Lo que vas a construir
Password length: 12
Include numbers? (y/n): y
Include symbols? (y/n): y
Generated: k7#mP9xQ!2aLLo que necesitarás
- Salida y entrada — recopilar las preferencias del usuario
- Cadenas — caracteres, unir una lista de caracteres de vuelta en una cadena
- Listas — construir y combinar el conjunto de caracteres permitidos
- Módulos y la biblioteca estándar —
randompara elegir caracteres,stringpara conjuntos de caracteres preconstruidos
Pistas
Construye el conjunto primero. Empieza con una lista vacía de caracteres permitidos. Agrega letras siempre, luego agrega condicionalmente dígitos o símbolos según lo que el usuario haya elegido.
El módulo string ahorra trabajo. Tiene cadenas listas para ti: string.ascii_letters, string.digits, string.punctuation. No necesitas escribirlas tú.
Elige y luego une. Elige un carácter a la vez usando random.choice(), repite eso por la longitud que pidió el usuario, luego une los resultados en una sola cadena.
Yendo más allá
Una vez que el generador básico funcione:
- Garantiza las reglas. Si el usuario pidió números, asegúrate de que al menos un número aparezca en el resultado. Lo mismo para los símbolos. Elegir puramente al azar podría omitirlos.
- Genera un lote. Permite que el usuario pida varias contraseñas a la vez y muéstralas todas.
- Indicador de fortaleza. Después de generar, imprime una breve calificación: débil (solo letras), media (letras + números), fuerte (letras + números + símbolos).

