Generatore di Password con Python

Edoardo Midali
Descrizione del Progetto
In questo progetto, realizzerai un generatore di password utilizzando Python. Il programma permetterà di generare password sicure in base a specifici criteri di lunghezza e tipi di caratteri inclusi (lettere, numeri e simboli).
Requisiti
- Librerie Python: Utilizzare la libreria
randomper generare i caratteri casuali. - Interfaccia Utente: Creare una semplice interfaccia utente a riga di comando che permetta all’utente di specificare la lunghezza della password e i tipi di caratteri inclusi.
- Criteri di Generazione:
- Specificare la lunghezza della password.
- Includere lettere minuscole, lettere maiuscole, numeri e simboli a seconda della scelta dell’utente.
- Validazione: Assicurarsi che la password generata soddisfi i criteri specificati.
Passaggi
- Importare la Libreria Random: Utilizzare la libreria
randomper generare i caratteri casuali. - Creazione del Programma:
- Chiedere all’utente di specificare la lunghezza della password.
- Chiedere all’utente quali tipi di caratteri includere.
- Generare una password casuale che soddisfi i criteri specificati.
- Mostrare la password generata all’utente.
Esempio di Codice
import random
import string
def generate_password(length, include_lowercase, include_uppercase, include_digits, include_symbols):
characters = ""
if include_lowercase:
characters += string.ascii_lowercase
if include_uppercase:
characters += string.ascii_uppercase
if include_digits:
characters += string.digits
if include_symbols:
characters += string.punctuation
if not characters:
raise ValueError("Devi selezionare almeno un tipo di carattere per generare una password.")
password = ''.join(random.choice(characters) for _ in range(length))
return password
def main():
print("Generatore di Password Sicure")
while True:
try:
length = int(input("Inserisci la lunghezza della password: "))
include_lowercase = input("Includere lettere minuscole? (s/n): ").lower() == 's'
include_uppercase = input("Includere lettere maiuscole? (s/n): ").lower() == 's'
include_digits = input("Includere numeri? (s/n): ").lower() == 's'
include_symbols = input("Includere simboli? (s/n): ").lower() == 's'
password = generate_password(length, include_lowercase, include_uppercase, include_digits, include_symbols)
print(f"La tua password generata è: {password}")
except ValueError as e:
print(e)
another = input("Vuoi generare un'altra password? (s/n): ").lower()
if another != 's':
break
if __name__ == "__main__":
main()
Istruzioni per l’Esecuzione
- Salva il codice in un file: Ad esempio
generatore_password.py. - Esegui il programma:
python generatore_password.py - Interazione con l’utente:
- Segui le istruzioni per specificare la lunghezza della password e i tipi di caratteri da includere.
- Ricevi la password generata in base ai criteri specificati.
- Decidi se generare un’altra password o terminare il programma.
Estensioni Possibili
- Interfaccia Grafica: Utilizzare una libreria come
tkinterper creare un’interfaccia grafica per il generatore di password. - Salvataggio delle Password: Aggiungere funzionalità per salvare le password generate in un file o in un database.
- Generazione di Frasi di Sicurezza: Implementare una funzionalità per generare frasi di sicurezza utilizzando parole casuali.