📢 Nuovo Corso Bootstrap Completo disponibile!

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

  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:

    Terminal window
    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:

    Terminal window
    pip install cryptography
  2. 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.

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.