Generador de Contraseรฑas Aleatorias (Python)
Empezamos con el primer proyecto de la guia 50 Proyectos de Programacion para Practicar y Aprender. Proyectos para Principiantes
Enunciado de proyecto:
Crea un programa que genere contraseรฑas seguras con una longitud especificada por el usuario.
Cรณdigo Python:
import random
import string
def generar_contrasena(longitud):
"""Genera una contraseรฑa aleatoria segura."""
caracteres = string.ascii_letters + string.digits +
string.punctuation
contrasena = ''.join(random.choice(caracteres)
for i in range(longitud))
return contrasena
if __name__ == "__main__":
try:
longitud_contrasena = int(
input("Introduce la longitud de la contraseรฑa deseada: "))
if longitud_contrasena <= 0:
print("La longitud de la contraseรฑa debe
ser mayor que 0.")
else:
contrasena_generada =
generar_contrasena(longitud_contrasena)
print("Contraseรฑa generada:",
contrasena_generada)
except ValueError:
print("Por favor, introduce un nรบmero
entero vรกlido para la longitud.")
Explicaciรณn del cรณdigo:
- Importaciรณn de mรณdulos:
random
: Para generar nรบmeros aleatorios.string
: Para acceder a conjuntos de caracteres como letras, dรญgitos y puntuaciรณn.
- Funciรณn
generar_contrasena(longitud)
:- Define un conjunto de caracteres posibles (letras, dรญgitos, puntuaciรณn).
- Utiliza
random.choice()
para seleccionar aleatoriamente un carรกcter del conjunto por la cantidad de veces especificada por la longitud deseada. - Une los caracteres seleccionados en una cadena usando
''.join()
. - Retorna la contraseรฑa generada.
- Bloque principal
if __name__ == "__main__":
:- Solicita al usuario que introduzca la longitud de la contraseรฑa deseada.
- Intenta convertir la entrada del usuario a un entero. Si falla (por ejemplo, si el usuario introduce texto), captura la excepciรณn
ValueError
e informa al usuario. - Verifica que la longitud introducida sea mayor que 0.
- Si la entrada es vรกlida, llama a la funciรณn
generar_contrasena()
para generar la contraseรฑa. - Imprime la contraseรฑa generada.
Indice de la guia de proyectos