Criptatore di Testi con Python
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
- Librerie Python: Utilizzare la libreria
cryptography
per la crittografia e decrittografia. - 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.
- 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
-
Installazione delle Librerie:
Terminal window pip install cryptography -
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 chiavedef generate_key(): return Fernet.generate_key()
# Funzione per criptare un messaggiodef encrypt_message(key, message): fernet = Fernet(key) encrypted_message = fernet.encrypt(message.encode()) return encrypted_message
# Funzione per decriptare un messaggiodef 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
-
Installazione delle librerie necessarie:
Terminal window pip install cryptography -
Esecuzione del Programma:
- Salva il codice in un file Python, ad esempio
criptatore_testi.py
. - Esegui il programma:
Terminal window python criptatore_testi.py - Segui le istruzioni per generare una chiave, criptare un messaggio e decriptare un messaggio.
- Salva il codice in un file Python, ad esempio
Estensioni Possibili
- Interfaccia Grafica: Utilizzare una libreria come
tkinter
per creare un’interfaccia grafica per il criptatore di testi. - Salvataggio delle Chiavi: Aggiungere funzionalità per salvare le chiavi generate in un file sicuro.
- Supporto per File: Implementare la crittografia e decrittografia di file oltre ai messaggi di testo.