Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Encryptor

A modular C++17 File Encryption/Decryption Utility that recursively processes files within a directory. Designed to gain understanding in modern C++ programming, object-oriented design, task management and file handling.


Features

  • Encrypts and decrypts files recursively inside a directory
  • Supports directory traversal using filesystem
  • Environment variable based secret key
  • Modular project architecture
  • Queue-based task management
  • Built using modern C++17
  • Makefile-based build system
  • Error handling for invalid directories and inaccessible files

Project Structure

FileEncryptor/
│
├── src/
│   ├── encryptor/
│   ├── fileHandling/
│   ├── processManagement/
│   ├── readEnv/
│   └── main.cpp
│
├── test/
│   └── sample files
│
├── .env.example
├── Makefile
└── README.md

Technologies Used

  • C++17
  • STL
  • filesystem
  • Smart Pointers
  • File Streams
  • GNU Make

Build

Clone the repository:

git clone https://github.com/Vaibhavkshyp/file-encryptor-cpp.git
cd file-encryptor-cpp

Build:

make

Run:

make run

Clean build files:

make clean

Configuration

Create a .env file in the project root.

Example:

SECRET_KEY=5

The secret key is loaded during runtime and used for encryption and decryption.


How It Works

  1. User provides a directory.
  2. User selects Encrypt or Decrypt.
  3. The application recursively scans the directory.
  4. Each file is added to a processing queue.
  5. The encryption engine reads the secret key from the environment.
  6. Every file is processed individually.

Learning Outcomes

This project helped me gain practical experience with:

  • Modern C++17
  • File handling
  • Object-Oriented Programming
  • Smart pointers
  • Makefiles
  • Exception handling
  • Project organization
  • Recursive directory traversal

License

This project is intended for educational and portfolio purposes.

About

A modern C++17 file encryption and decryption utility.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages