Volver a actualizaciones
ActualizadaSep 2, 2026

Python Security Project — Actualizado!

Proyecto de Seguridad en Python que implementa una herramienta de cifrado y descifrado de archivos

Compartir

🔐 Herramienta de Escritorio para Cifrado y Descifrado Criptográfico de Archivos

Una utilidad de seguridad de escritorio de nivel profesional en Python, diseñada para proteger los activos del sistema de archivos local mediante cifrado simétrico autenticado. Esta aplicación cuenta con una interfaz gráfica de usuario (GUI) receptiva construida con Tkinter, un motor criptográfico independiente y registro de diagnóstico estructurado.

Lógica Criptográfica

  • Cifrado: Texto plano + Clave secreta ──> Texto cifrado
  • Descifrado: Texto cifrado + La misma clave secreta ──> Texto plano

🚀 Características Clave

  • Interfaz de Escritorio Tkinter: Una interfaz gráfica de usuario (GUI) limpia y receptiva que incluye selectores de archivos nativos del sistema operativo, escalado adaptativo de cuadrícula, transiciones de color personalizadas en estado activo y alertas de estado interactivas.
  • Arquitectura Desacoplada: Separación completa de responsabilidades entre la capa de presentación visual (CryptoAppGUI) y los algoritmos centrales de procesamiento backend (MyCryptoProcessor).
  • Cifrado Autenticado (AES-128): Aprovecha la robusta especificación Fernet, construida sobre AES en modo CBC con una clave de 128 bits, garantizando confidencialidad absoluta de los datos e integridad criptográfica.
  • Marco de Registro de Doble Destino: Reemplaza las impresiones volátiles en terminal con una configuración de registro nativa que simultáneamente genera métricas de consola en tiempo real y registra rastros de auditoría permanentes en crypto_app.log.
  • Resiliencia ante Errores en Tiempo de Ejecución: Implementa rutinas estrictas de limpieza de rutas, saneamiento de cadenas y ámbitos de validación try-except granulares para prevenir fallos por traversal de rutas y manejar archivos faltantes de forma elegante.
  • Puertas de Seguridad de UX (Restricción de Entradas): Implementa navegadores de directorios separados con restricción de entradas. El selector de texto plano restringe las vistas a archivos .txt, mientras que el selector de texto cifrado filtra exclusivamente archivos .encrypted, eliminando por completo errores de selección accidentales.

🛠️ Stack Técnico

  • Lenguaje: Python 3.x
  • Framework GUI: Tkinter / TTK (Componentes Nativos)
  • Motor Criptográfico: cryptography (Especificación Fernet)
  • Motor de Registro: logging (Componente Nativo)

📦 Instalación y Configuración

  1. Clonar el Repositorio:

    git clone https://gitlab.com/rejithregi-group/SecurityProject.git
    cd SecurityProject
    
  2. Instalar Dependencias:

    pip install -r requirements.txt
    

🖥️ Uso y Flujo de Trabajo

Ejecute la ventana de la aplicación desde su terminal:

python FileEncryptionDecryptionTool.py

Flujo de Trabajo Operativo Típico

  1. Generar Nueva Clave: Haga clic en el botón azul para generar un archivo .key seguro. Guárdelo de forma segura mediante el aviso nativo del sistema operativo. Advertencia: Perder esta clave significa que sus datos cifrados no podrán recuperarse.
  2. Cifrar Archivo Objetivo: Haga clic en "Examinar..." en la fila de Archivo de Texto Plano Objetivo (estrictamente filtrado para .txt), elija su clave maestra de cifrado y presione el botón verde de ejecución. La aplicación genera una copia protegida con el sufijo .encrypted.
  3. Descifrar Archivo Objetivo: Haga clic en "Examinar..." en la fila dedicada de Archivo Cifrado Objetivo (estrictamente filtrado para archivos .encrypted), elija su clave de validación correspondiente y ejecute el botón carbón para restaurar de forma segura su activo de texto plano en su disco.

🔒 Operaciones de Seguridad y Auditoría

Esta utilidad implementa activamente diagnósticos automatizados para mantener claros los rastros del desarrollador:

  • Verificación de Integridad del Sistema: Todas las interacciones con archivos se ejecutan dentro de gestores de contexto seguros (with open) para garantizar el vaciado de bloques de datos y bucles seguros de limpieza de memoria.
  • Registro de Auditoría: Cada transacción de sesión, mapeo de rutas de claves y resultado operativo del cifrado se registra explícitamente dentro de un archivo persistente llamado crypto_app.log.

👨‍💻 Autor

📜 Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Categorías