File Encryption & Decryption

securely encrypting and decrypting files on Linux, Windows, and MacOS

Architecture

The project follows the "Composition over Inheritance" principle and strictly separates UI logic from encryption / decryption logic.

Developed for Linux, macOS, and Windows.

Structure Diagram


Structure Diagram

Data Flow (Streaming)


To keep memory usage minimal, files are never loaded completely into RAM. Instead, a QFile stream is used:

  1. Open: Source and destination files are opened.
  2. Loop:
    • Read 4 MB chunk from source stream.
    • Process block (AES Encode/Decode) via QAESEncryption.
    • Write processed block to destination stream.
  3. Close: Streams are closed, temporary files are renamed or moved.