
Python Security Project — Mis à jour !
Projet de sécurité Python qui implémente un outil de chiffrement et déchiffrement de fichiers.
🔐 Outil de bureau de chiffrement et déchiffrement de fichiers cryptographiques
Un utilitaire de sécurité de bureau Python de qualité production, conçu pour protéger les actifs du système de fichiers local grâce à un chiffrement symétrique authentifié. Cette application propose une interface graphique (GUI) réactive construite avec Tkinter, un moteur cryptographique indépendant et une journalisation diagnostique structurée.
Logique cryptographique
- Chiffrement : Texte clair + Clé secrète ──> Texte chiffré
- Déchiffrement : Texte chiffré + La même clé secrète ──> Texte clair
🚀 Fonctionnalités clés
- Interface de bureau Tkinter : Une interface graphique (GUI) propre et réactive avec sélecteurs de fichiers natifs du système d'exploitation, mise à l'échelle adaptative de la grille, transitions de couleurs personnalisées pour les états actifs et alertes de statut interactives.
- Architecture découplée : Séparation complète des préoccupations entre la couche de présentation visuelle (
CryptoAppGUI) et les algorithmes de traitement backend (MyCryptoProcessor). - Chiffrement authentifié (AES-128) : Exploite la spécification robuste Fernet — construite sur AES en mode CBC avec une clé de 128 bits — garantissant une confidentialité absolue des données et une intégrité cryptographique.
- Cadre de journalisation à double cible : Remplace les impressions terminal volatiles par une configuration de journalisation native qui émet simultanément des métriques console en temps réel et enregistre des traces d'audit permanentes dans
crypto_app.log. - Résilience aux erreurs d'exécution : Routines strictes de nettoyage des chemins, d'assainissement des chaînes et portées de validation try-except granulaires pour prévenir les plantages liés au traversement de chemins et gérer les fichiers manquants avec élégance.
- Gardes de sécurité UX (contrainte des entrées) : Navigateurs de répertoires séparés avec contraintes d'entrée. Le sélecteur de texte clair restreint les vues aux fichiers
.txt, tandis que le sélecteur de texte chiffré filtre exclusivement les fichiers.encrypted, éliminant complètement les erreurs de sélection accidentelles.
🛠️ Pile technique
- Langage : Python 3.x
- Framework GUI : Tkinter / TTK (composants natifs)
- Moteur cryptographique : cryptography (spécification Fernet)
- Moteur de journalisation : logging (composant natif)
📦 Installation et configuration
-
Cloner le dépôt :
git clone https://gitlab.com/rejithregi-group/SecurityProject.git cd SecurityProject -
Installer les dépendances :
pip install -r requirements.txt
🖥️ Utilisation et flux de travail
Lancez la fenêtre de l'application depuis votre terminal :
python FileEncryptionDecryptionTool.py
Flux de travail opérationnel typique
- Générer une nouvelle clé : Cliquez sur le bouton bleu pour générer un fichier
.keysécurisé. Enregistrez-le en toute sécurité via l'invite native du système d'exploitation. Avertissement : Perdre cette clé signifie que vos données chiffrées ne peuvent pas être récupérées. - Chiffrer le fichier cible : Cliquez sur « Parcourir... » sur la ligne Fichier texte clair cible (strictement filtré pour
.txt), choisissez votre clé maîtresse de chiffrement et appuyez sur le bouton d'exécution vert. L'application génère une copie protégée avec le suffixe.encrypted. - Déchiffrer le fichier cible : Cliquez sur « Parcourir... » sur la ligne dédiée Fichier chiffré cible (strictement filtré pour les fichiers
.encrypted), choisissez votre clé de validation correspondante et exécutez le bouton charbon pour restaurer en toute sécurité votre actif texte clair sur votre disque.
🔒 Opérations de sécurité et audit
Cet utilitaire met en œuvre activement des diagnostics automatisés pour garder des traces de développement claires :
- Vérification de l'intégrité du système : Toutes les interactions avec les fichiers s'exécutent dans des gestionnaires de contexte sécurisés (
with open) pour garantir le vidage des blocs de données et des boucles sécurisées de nettoyage mémoire. - Journalisation d'audit : Chaque transaction de session, mappage de chemin de clé et résultat de chiffrement opérationnel est explicitement mappé dans un fichier persistant nommé
crypto_app.log.
👨💻 Auteur
- Rejith Regi
- Profil GitLab : rejithregi-group
- Dépôt du projet en direct : https://gitlab.com/rejithregi-group/SecurityProject
📜 Licence
Ce projet est sous licence MIT License.