🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Criptatore di Testi con Python

Codegrind Team•Jul 10 2024

Descrizione del Progetto

In questo progetto, realizzerai un criptatore di testi utilizzando Python. Il programma permetterĂ  di criptare e decriptare testi utilizzando una chiave simmetrica. Utilizzeremo la libreria cryptography per la crittografia e la decrittografia.

Requisiti

  1. Librerie Python: Utilizzare la libreria cryptography per la crittografia e decrittografia.
  2. Interfaccia Utente: Creare una semplice interfaccia utente a riga di comando che permetta all’utente di inserire il testo da criptare o decriptare e la chiave.
  3. Crittografia Simmetrica:
    • Generare una chiave simmetrica per la crittografia e decrittografia.
    • Criptare il testo utilizzando la chiave.
    • Decriptare il testo utilizzando la stessa chiave.

Passaggi

  1. Installazione delle Librerie:

    pip install cryptography
    
  2. Creazione del Programma:

    • Generare una chiave simmetrica.
    • Implementare la funzione di crittografia.
    • Implementare la funzione di decrittografia.
    • Creare una semplice interfaccia utente a riga di comando per interagire con l’utente.

Esempio di Codice

from cryptography.fernet import Fernet

# Funzione per generare una chiave
def generate_key():
    return Fernet.generate_key()

# Funzione per criptare un messaggio
def encrypt_message(key, message):
    fernet = Fernet(key)
    encrypted_message = fernet.encrypt(message.encode())
    return encrypted_message

# Funzione per decriptare un messaggio
def decrypt_message(key, encrypted_message):
    fernet = Fernet(key)
    decrypted_message = fernet.decrypt(encrypted_message).decode()
    return decrypted_message

def main():
    print("Criptatore di Testi")

    while True:
        print("\nSeleziona un'opzione:")
        print("1. Genera una nuova chiave")
        print("2. Cripta un messaggio")
        print("3. Decripta un messaggio")
        print("4. Esci")

        choice = input("Inserisci la tua scelta: ")

        if choice == '1':
            key = generate_key()
            print(f"Chiave generata: {key.decode()}")
        elif choice == '2':
            key = input("Inserisci la chiave: ").encode()
            message = input("Inserisci il messaggio da criptare: ")
            encrypted_message = encrypt_message(key, message)
            print(f"Messaggio criptato: {encrypted_message.decode()}")
        elif choice == '3':
            key = input("Inserisci la chiave: ").encode()
            encrypted_message = input("Inserisci il messaggio criptato: ").encode()
            try:
                decrypted_message = decrypt_message(key, encrypted_message)
                print(f"Messaggio decriptato: {decrypted_message}")
            except Exception as e:
                print(f"Errore durante la decrittazione: {e}")
        elif choice == '4':
            print("Uscita...")
            break
        else:
            print("Scelta non valida, riprova.")

if __name__ == "__main__":
    main()

Istruzioni per l’Esecuzione

  1. Installazione delle librerie necessarie:

    pip install cryptography
    
  2. Esecuzione del Programma:

    • Salva il codice in un file Python, ad esempio criptatore_testi.py.
    • Esegui il programma:
      python criptatore_testi.py
      
    • Segui le istruzioni per generare una chiave, criptare un messaggio e decriptare un messaggio.

Estensioni Possibili

  1. Interfaccia Grafica: Utilizzare una libreria come tkinter per creare un’interfaccia grafica per il criptatore di testi.
  2. Salvataggio delle Chiavi: Aggiungere funzionalitĂ  per salvare le chiavi generate in un file sicuro.
  3. Supporto per File: Implementare la crittografia e decrittografia di file oltre ai messaggi di testo.