
Python Security Project — Updated!
Progetto di sicurezza Python che implementa uno strumento di crittografia e decrittografia dei file.
🔐 Strumento Desktop di Crittografia e Decrittografia File
Un'utilità di sicurezza desktop Python di livello produttivo progettata per proteggere le risorse del filesystem locale tramite crittografia simmetrica autenticata. Questa applicazione presenta un'interfaccia grafica (GUI) reattiva costruita con Tkinter, un motore crittografico indipendente e una registrazione diagnostica strutturata.
Logica Crittografica
- Crittografia: Testo in chiaro + Chiave Segreta ──> Testo cifrato
- Decrittografia: Testo cifrato + La Stessa Chiave Segreta ──> Testo in chiaro
🚀 Caratteristiche Principali
- Interfaccia Desktop Tkinter: Un'interfaccia grafica (GUI) pulita e reattiva con selettori di file nativi del sistema operativo, ridimensionamento adattivo della griglia, transizioni di colore personalizzate per lo stato attivo e avvisi di stato interattivi.
- Architettura Disaccoppiata: Separazione completa delle responsabilità tra il livello di presentazione visiva (
CryptoAppGUI) e gli algoritmi di elaborazione backend (MyCryptoProcessor). - Crittografia Autenticata (AES-128): Sfrutta la robusta specifica Fernet—basata su AES in modalità CBC con chiave a 128 bit—garantendo assoluta riservatezza dei dati e integrità crittografica.
- Framework di Registrazione a Doppia Destinazione: Sostituisce le stampe volatili sul terminale con una configurazione di registrazione nativa che emette simultaneamente metriche console in tempo reale e registra tracce di audit permanenti in
crypto_app.log. - Resilienza agli Errori di Runtime: Routine rigorose di pulizia dei percorsi, sanificazione delle stringhe e ambiti granulari di validazione try-except per prevenire arresti da path traversal e gestire con eleganza i file mancanti.
- Barriere di Sicurezza UX (Vincoli di Input): Implementati browser di directory separati con vincoli di input. Il selettore del testo in chiaro limita la visualizzazione ai file
.txt, mentre il selettore del testo cifrato filtra esclusivamente i file.encrypted, eliminando completamente gli errori di selezione accidentali.
🛠️ Stack Tecnico
- Linguaggio: Python 3.x
- Framework GUI: Tkinter / TTK (Componenti Nativi)
- Motore Crittografico: cryptography (Specifica Fernet)
- Motore di Registrazione: logging (Componente Nativo)
📦 Installazione e Configurazione
-
Clona il Repository:
git clone https://gitlab.com/rejithregi-group/SecurityProject.git cd SecurityProject -
Installa le Dipendenze:
pip install -r requirements.txt
🖥️ Utilizzo e Flusso di Lavoro
Esegui la finestra dell'applicazione dal tuo terminale:
python FileEncryptionDecryptionTool.py
Flusso di Lavoro Operativo Tipico
- Genera Nuova Chiave: Clicca il pulsante blu per generare un file
.keysicuro. Salvalo in modo sicuro tramite il prompt nativo del sistema operativo. Avviso: Perdere questa chiave significa che i tuoi dati crittografati non potranno essere recuperati. - Crittografa il File Target: Clicca "Sfoglia..." sulla riga del File di Testo in Chiaro Target (filtrato rigorosamente per
.txt), scegli la tua chiave master di crittografia e premi il pulsante verde di esecuzione. L'app genera una copia protetta con suffisso.encrypted. - Decrittografa il File Target: Clicca "Sfoglia..." sulla riga dedicata del File Crittografato Target (filtrato rigorosamente per file
.encrypted), scegli la tua chiave di validazione corrispondente ed esegui il pulsante color carbone per ripristinare in sicurezza il tuo asset di testo in chiaro sul disco.
🔒 Operazioni di Sicurezza e Audit
Questa utilità implementa attivamente diagnostiche automatizzate per mantenere chiare le tracce degli sviluppatori:
- Verifica dell'Integrità del Sistema: Tutte le interazioni con i file avvengono all'interno di gestori di contesto sicuri (
with open) per garantire il flush dei blocchi di dati e cicli sicuri di pulizia della memoria. - Registrazione di Audit: Ogni transazione di sessione, mappatura dei percorsi delle chiavi e risultato operativo del cifrario viene mappato esplicitamente in un file persistente denominato
crypto_app.log.
👨💻 Autore
- Rejith Regi
- Profilo GitLab: rejithregi-group
- Repository del Progetto Live: https://gitlab.com/rejithregi-group/SecurityProject
📜 Licenza
Questo progetto è concesso in licenza sotto la Licenza MIT.