Skip to content

About

A desktop file encryption-decryption app for Windows with DnD capable GUI. Built with Python and Tkinter.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🔒 File Encryptor

A lightweight, secure desktop file encryption utility for Windows. Built with Python, Tkinter, and the cryptography library.

=== ☢️ This Project Was Vibe-Coded ! ===

Platform Python Cipher KDF


✨ Features

  • Authenticated Encryption: Uses AES-256-GCM in 64 KB streaming chunks with memory-hard scrypt key derivation ($N=16384, r=8, p=1$).
  • STREAM Truncation Defense: Incorporates chunk-indexed associated data with finality markers to detect and prevent adversary chunk-stripping or truncation.
  • Large File Streaming: Constant, minimal RAM overhead regardless of whether you encrypt megabytes or hundreds of gigabytes.
  • Accidental Re-encryption Guard: Automatically warns and asks for confirmation if queued files already carry the .enc extension.
  • Drag & Drop Ready: Drag single or multiple files directly from Windows Explorer into the queue window.
  • Passphrase Helpers:
    • Show/Hide (👁 Show / 🙈 Hide) toggle.
    • One-click random passphrase generator (🎲 Generate).
    • Real-time entropy strength and character count evaluator.
  • Dark & Light Mode: Native Windows 10/11 DWM title bar styling (dwmapi.dll) with full theme persistence across restarts.
  • Secure File Shredding: Optional zero-fill wiping before unlinking original files.
  • Clean Worker Cancellation: Responsive ⛔ Cancel Operation button that halts background workers and rolls back partial output files.

🚀 Getting Started

Prerequisites

  • Windows 10 or 11
  • Python 3.10+ (optional if using the pre-compiled .exe)

Installation

  1. Clone or download this repository:

    git clone https://github.com/your-username/EncryptorProject.git
    cd EncryptorProject
  2. Install dependencies:

    pip install -r requirements.txt
  3. Launch the application:

    python main.py

    Or launch silently without a command prompt:

    pythonw run.pyw

📦 Building Standalone Executable

To compile into a single .exe with the custom chest icon and bundled Tcl/Tk drag-and-drop binaries:

python -m PyInstaller --noconsole --onefile --icon="Chrisl21-Minecraft-Chest.ico" --add-data="Chrisl21-Minecraft-Chest.ico;." --collect-all tkinterdnd2 --name="FileEncryptor" main.py

The resulting standalone binary will be placed in the dist/ directory:

dist/FileEncryptor.exe

📁 Project Structure

EncryptorProject/
├── encryptor/
│   ├── __init__.py
│   ├── config.py         # Persistent JSON settings manager (theme, geometry, flags)
│   ├── core.py           # AES-256-GCM streaming engine & STREAM truncation defense
│   ├── gui.py            # Tkinter interface, DWM theming, DnD, and background worker
│   └── vault.py          # Windows DPAPI storage backend
├── Chrisl21-Minecraft-Chest.ico # Custom application and taskbar icon
├── main.py               # Main application entry point & Win32 icon binding
├── run.pyw               # Detached Windows silent launcher
├── requirements.txt      # Python dependencies
├── .gitignore            # Git exclusion rules
└── README.md             # Project documentation

🛡️ Security Details

Component Specification
Cipher AES-256-GCM (Galois/Counter Mode)
Chunk Size 64 KB streaming blocks
Nonce Generation 8-byte random prefix + 4-byte chunk counter
STREAM Defense Chunk index + final chunk flag passed as associated_data
Key Derivation scrypt ($N=16384, r=8, p=1$, 16-byte random salt)
Sanitization Full zero-byte overwrite before file deletion

📄 License

This project is open-source and available under the MIT License.

About

A desktop file encryption-decryption app for Windows with DnD capable GUI. Built with Python and Tkinter.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages