This project is a secure file storage system built with Python. It keeps your files private and safe from unauthorized access using encryption and hashing.
- File Encryption: Uses AES (Fernet) to lock your files.
- Secure Keys: Uses PBKDF2 to turn your password into a strong security key.
- Integrity Check: Uses SHA-256 hashing to make sure your files have not been changed.
- Tamper Detection: Tells you if someone tried to mess with your data.
- Wrong Password Protection: Prevents access if the password is incorrect.
- Python
- Cryptography Library
- Hashlib (SHA-256)
It is best to run this project in a virtual environment to keep your global Python setup clean.
Windows (PowerShell or CMD):
python -m venv .venvLinux / macOS:
python3 -m venv .venvYou must activate the environment every time you open a new terminal.
Windows:
.venv\Scripts\activateLinux / macOS:
source .venv/bin/activateOnce the environment is active, install the dependencies from the requirements.txt:
pip install -r requirements.txt When you are finished working, you can turn off the environment by typing:
deactivate- Open the terminal (usually CTRL+ALT+T) in the project folder
- Run the following command:
pyinstaller --noconfirm --onefile --windowed --name "Secure File Storage System" --add-data "storage:storage" main.py
Output: The executable will be in the dist/ folder.
- Open the terminal (Powershell/Command Line) in the project folder
- Run the following command:
pyinstaller --noconfirm --onefile --windowed --name "Secure File Storage System" --add-data "storage;storage" main.py
Output: The executable will be in the dist/ folder.
- Make sure your virtual environment is active.
- Run the main program:
python main.py
- You choose a file and a password.
- The system makes a secure key from your password.
- The file is encrypted and saved in the
storage/folder. - The system saves a "fingerprint" (hash) of the original file.
- To get your file back, the system checks your password and makes sure the file hasn't been tampered with.
encrypt.py: Handles locking the files.decrypt.py: Handles unlocking the files.hash_utils.py: Checks if files have been changed.storage/: A folder that holds your encrypted data.
- Asmatullah Baryali
- Abdulaziz Alhuzami