Generatore di Password con Python

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

  1. Librerie Python: Utilizzare la libreria random per generare i caratteri casuali.
  2. 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.
  3. Criteri di Generazione:
    • Specificare la lunghezza della password.
    • Includere lettere minuscole, lettere maiuscole, numeri e simboli a seconda della scelta dell’utente.
  4. Validazione: Assicurarsi che la password generata soddisfi i criteri specificati.

Passaggi

  1. Importare la Libreria Random: Utilizzare la libreria random per generare i caratteri casuali.
  2. 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

  1. Salva il codice in un file: Ad esempio generatore_password.py.
  2. Esegui il programma:
    python generatore_password.py
    
  3. 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

  1. Interfaccia Grafica: Utilizzare una libreria come tkinter per creare un’interfaccia grafica per il generatore di password.
  2. Salvataggio delle Password: Aggiungere funzionalità per salvare le password generate in un file o in un database.
  3. Generazione di Frasi di Sicurezza: Implementare una funzionalità per generare frasi di sicurezza utilizzando parole casuali.