
Python Security Project — Updated!
Projeto de Segurança em Python que implementa uma ferramenta de criptografia e descriptografia de arquivos.
🔐 Ferramenta de Criptografia e Descriptografia de Arquivos de Desktop
Um utilitário de segurança de desktop em Python de nível de produção, projetado para proteger ativos do sistema de arquivos local por meio de criptografia simétrica autenticada. Este aplicativo apresenta uma interface gráfica de usuário (GUI) responsiva construída com Tkinter, um motor criptográfico independente e registro de diagnóstico estruturado.
Lógica Criptográfica
- Criptografia: Texto simples + Chave Secreta ──> Texto cifrado
- Descriptografia: Texto cifrado + A Mesma Chave Secreta ──> Texto simples
🚀 Principais Recursos
- Interface Desktop Tkinter: Uma interface gráfica de usuário (GUI) limpa e responsiva, com seletores de arquivos nativos do sistema operacional, dimensionamento adaptativo de grade, transições personalizadas de cores de estado ativo e alertas interativos de status.
- Arquitetura Desacoplada: Separação completa de responsabilidades entre a camada de apresentação visual (
CryptoAppGUI) e os algoritmos centrais de processamento backend (MyCryptoProcessor). - Criptografia Autenticada (AES-128): Utiliza a robusta especificação Fernet—construída sobre AES em modo CBC com chave de 128 bits—garantindo confidencialidade absoluta dos dados e integridade criptográfica.
- Estrutura de Registro de Duplo Alvo: Substituiu impressões voláteis no terminal por uma configuração de registro nativa que simultaneamente gera métricas de console em tempo real e grava rastros de auditoria permanentes em
crypto_app.log. - Resiliência a Erros em Tempo de Execução: Implementou limpeza rigorosa de caminhos, rotinas de sanitização de strings e escopos granulares de validação try-except para prevenir falhas de travessia de caminho e lidar com arquivos ausentes de forma graciosa.
- Portões de Segurança de UX (Restrição de Entrada): Implementou navegadores de diretório separados com entrada restrita. O seletor de texto simples restringe visualizações a arquivos
.txt, enquanto o seletor de texto cifrado filtra exclusivamente arquivos.encrypted, eliminando completamente erros acidentais de seleção.
🛠️ Stack Técnico
- Linguagem: Python 3.x
- Framework GUI: Tkinter / TTK (Componentes Nativos)
- Motor Criptográfico: cryptography (Especificação Fernet)
- Motor de Registro: logging (Componente Nativo)
📦 Instalação e Configuração
-
Clone o Repositório:
git clone https://gitlab.com/rejithregi-group/SecurityProject.git cd SecurityProject -
Instale as Dependências:
pip install -r requirements.txt
🖥️ Uso e Fluxo de Trabalho
Execute a janela do aplicativo a partir do seu terminal:
python FileEncryptionDecryptionTool.py
Fluxo de Trabalho Operacional Típico
- Gerar Nova Chave: Clique no botão azul para gerar um arquivo
.keyseguro. Salve-o com segurança por meio do prompt nativo do sistema operacional. Aviso: Perder esta chave significa que seus dados criptografados não podem ser recuperados. - Criptografar Arquivo Alvo: Clique em "Browse..." na linha de Arquivo de Texto Simples Alvo (estritamente filtrado para
.txt), escolha sua chave mestra de criptografia e pressione o botão verde de execução. O aplicativo gera uma cópia protegida com o sufixo.encrypted. - Descriptografar Arquivo Alvo: Clique em "Browse..." na linha dedicada de Arquivo Criptografado Alvo (estritamente filtrado para arquivos
.encrypted), escolha sua chave de validação correspondente e execute o botão carvão para restaurar com segurança seu ativo de texto simples de volta ao seu disco.
🔒 Operações de Segurança e Auditoria
Este utilitário implementa ativamente diagnósticos automatizados para manter trilhas de desenvolvedor claras:
- Verificação de Integridade do Sistema: Todas as interações com arquivos são executadas dentro de gerenciadores de contexto seguros (
with open) para garantir o descarregamento de blocos de dados e loops seguros de limpeza de memória. - Registro de Auditoria: Cada transação de sessão, mapeamento de caminho de chave e resultado operacional de cifra são mapeados explicitamente dentro de um arquivo persistente chamado
crypto_app.log.
👨💻 Autor
- Rejith Regi
- Perfil GitLab: rejithregi-group
- Repositório do Projeto ao Vivo: https://gitlab.com/rejithregi-group/SecurityProject
📜 Licença
Este projeto está licenciado sob a Licença MIT.