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
- 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:
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 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
-
Installazione delle librerie necessarie:
pip install cryptography
-
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.
- 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.