Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3133ef6
chroe: add __pycache__ to gitignore
Ahmed-Mohiuddin-Shah Apr 28, 2025
9e753fb
feat: divided code into multiple file, add new logo for program and a…
Ahmed-Mohiuddin-Shah Apr 28, 2025
dc73721
chore: create run script for running in linux
Ahmed-Mohiuddin-Shah Apr 28, 2025
b48ad39
chore: add seed phrase generator in utilities
Ahmed-Mohiuddin-Shah Apr 28, 2025
8330a00
feat: ccreate a PasswordRecovery class
Ahmed-Mohiuddin-Shah Apr 28, 2025
2ab3f40
feat: update GUI and add Seed Generator Utility
Ahmed-Mohiuddin-Shah Apr 29, 2025
5800649
chore: implement gui for recovery options and got hard drive/folder e…
Ahmed-Mohiuddin-Shah Apr 30, 2025
cc771f9
chore: add icon: folder to gitignore
Ahmed-Mohiuddin-Shah Apr 30, 2025
5f46479
chore: cleaned up main.py
Ahmed-Mohiuddin-Shah Apr 30, 2025
ab73878
chore: added some type checking
Ahmed-Mohiuddin-Shah Apr 30, 2025
1bbc514
feat: update readme
Ahmed-Mohiuddin-Shah May 1, 2025
9e5bd65
feat: password recovery using se3ed phrase working
Ahmed-Mohiuddin-Shah May 1, 2025
66a8a4c
chore: imlemented key recovery from security questions
Ahmed-Mohiuddin-Shah May 1, 2025
3ce8d0e
chore: set question fields in recovery mode to read only
Ahmed-Mohiuddin-Shah May 1, 2025
44b1565
feat: implemented a hardware token class
Ahmed-Mohiuddin-Shah May 1, 2025
347afa7
feat: hardware token working
Ahmed-Mohiuddin-Shah May 2, 2025
e2eaffa
refactor: add some comments and changed file name
Ahmed-Mohiuddin-Shah May 14, 2025
e011872
chore: update screenshot
Ahmed-Mohiuddin-Shah May 14, 2025
44f42eb
chore: update python version in readme
Ahmed-Mohiuddin-Shah May 14, 2025
55b6021
chore: some changes
Ahmed-Mohiuddin-Shah May 14, 2025
0a95ca0
feat: implemented independent thread for Drive encryption
Ahmed-Mohiuddin-Shah May 14, 2025
37a73e3
feat: logging activity is now working
Ahmed-Mohiuddin-Shah May 14, 2025
239620b
chore: update README
Ahmed-Mohiuddin-Shah May 15, 2025
3bbfd32
chore: corrected type
Ahmed-Mohiuddin-Shah May 15, 2025
4018649
feat: add a tab to view activity logs
Ahmed-Mohiuddin-Shah May 15, 2025
8659fc8
chore: update activity log tab to save log as a csv and display its c…
Ahmed-Mohiuddin-Shah May 16, 2025
a5c5e4b
chore: update activity log logic and UI
Ahmed-Mohiuddin-Shah May 16, 2025
e667d1b
fix: bug where a directory being made would conflict with save operation
Ahmed-Mohiuddin-Shah May 16, 2025
347cee9
fix: activity log directory bug mistaking file as directory
Ahmed-Mohiuddin-Shah May 16, 2025
574558e
Merge pull request #1 from Ahmed-Mohiuddin-Shah/dev
Ahmed-Mohiuddin-Shah May 16, 2025
ad6d0f8
docs: add docstrings
Ahmed-Mohiuddin-Shah May 16, 2025
8e07441
Merge pull request #2 from Ahmed-Mohiuddin-Shah/dev
Ahmed-Mohiuddin-Shah May 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
__pycache__
icon:
Binary file removed App logo.png
Binary file not shown.
147 changes: 118 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,120 @@
# 🔒 Secure File Encryptor/Decryptor 🛡️

| Section | Content |
|---------|---------|
| **🌟 Description** | A secure GUI tool for file encryption/decryption using military-grade AES-GCM encryption |
| **✨ Features** | |
| 🔐 Encryption | AES-GCM 256-bit encryption (NSA-approved) |
| 🔓 Decryption | Authenticated decryption with tamper detection |
| 📁 Large Files | Supports huge files up to 10GB (chunked processing) |
| 🖥️ GUI | Beautiful PyQt5 interface with dark theme |
| 🔑 Security | PBKDF2-HMAC-SHA256 with 600,000 iterations |
| **📦 Requirements** | |
| 🐍 Python Version | 3.6+ (Recommended: 3.8+) |
| 💻 System | Windows/macOS/Linux |
| 📚 Dependencies | `PyQt5`, `cryptography`, `qt_material` |
| ⚙️ Install Command | `pip install PyQt5 cryptography qt_material` |
| **📋 Usage Guide** | |
| 🔒 Encryption | 1. Click "Select File"<br>2. Set output path (.encrypted)<br>3. Enter password + confirmation<br>4. Click "Start Encryption"<br>5. Wait for completion ✅ |
| 🔓 Decryption | 1. Click "Select Encrypted File"<br>2. Set output path<br>3. Enter original password<br>4. Click "Start Decryption"<br>5. Get your original file back ✅ |
| ⚠️ Important | - Never lose your password!<br>- Keep backups of important files<br>- Cancel operations using window close |
| **⚙️ Technical Specs** | |
| 🛠️ Algorithm | AES-GCM (Authenticated Encryption) |
| 🔑 Key Size | 256-bit (Military Grade) |
| 🔄 Iterations | 600,000 (NIST Recommended) |
| 🧩 Chunk Size | 1MB (Optimal Performance) |
| 🧂 Salt Size | 16 bytes |
| 🔢 Nonce Size | 12 bytes |
| **🔐 Security Notes** | - 🔄 Cryptographically secure RNG<br>- ✅ Automatic integrity verification<br>- 🧹 Cleanup on failure<br>- 🛡️ Protection against common attacks |
| **📜 License** | MIT License - Free for everyone |
| **📸 Preview** | ![App Screenshot](https://github.com/logand166/Encryptor/blob/main/Screenshot.jpg?raw=true) |
| **☕ Support** | [Buy Me a Coffee](https://www.buymeacoffee.com/logand) <a href="https://www.buymeacoffee.com/logand"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=logand&button_colour=40DCA5&font_colour=ffffff&font_family=Cookie&outline_colour=000000&coffee_colour=FFDD00" height="25"/></a> |
A secure and user-friendly GUI tool for file encryption and decryption using military-grade AES-GCM encryption.

---

## 🌟 Description

Secure File Encryptor/Decryptor is designed to protect your sensitive files with state-of-the-art encryption. It ensures data integrity and security while offering a simple and intuitive interface. This project also introduces hard disk encryption and a robust key recovery mechanism for enhanced usability and security.

---

## ✨ Features

- **🔐 Encryption**: AES-GCM 256-bit encryption (NSA-approved).
- **🔓 Decryption**: Authenticated decryption with tamper detection.
- **📁 Large File Support**: Handles files up to 10GB with chunked processing.
- **🖥️ GUI**: Beautiful PyQt5 interface with a dark theme.
- **🔑 Security**: PBKDF2-HMAC-SHA256 with 600,000 iterations for password hashing.
- **💾 Hard Disk Encryption**: Encrypt entire drives with ease.
- **🔑 Key Recovery**: Recover encryption keys using security questions, seed phrases, or a hardware token (PicoKey).

---

## 📦 Requirements

- **🐍 Python Version**: 3.10+ (Recommended: 3.10.16).
- **💻 Supported Systems**: Windows, macOS, Linux.
- **📚 Dependencies**:
- `PyQt5`
- `cryptography`
- `qt_material`
- `mnemonic==0.20`
- `Unidecode==1.3.6`
- `pyserial`
- `pyqtspinner`

### Installation

Run the following command to install the required dependencies:

```bash
pip install PyQt5 cryptography qt_material mnemonic==0.20 Unidecode==1.3.6 pyserial pyqtspinner
```

---

## 📋 Usage Guide

### 🔒 Encryption

1. Click **"Select File or Folder"**.
2. Set the output path (e.g., `.encrypted`).
3. Enter a password and confirm it.
4. Optionally enable the key recovery mechanism.
5. Click **"Start Encryption"**.
6. Wait for the process to complete ✅.

### 🔓 Decryption

1. Click **"Select Encrypted File/Folder"**.
2. Set the output path for the decrypted file.
3. Enter the original password.
4. Click **"Start Decryption"**.
5. Retrieve your original file ✅.

### 🔑 Key Recovery

1. Navigate to the **"Recovery"** tab.
2. Choose a recovery method (security questions, seed phrase, or hardware token).
3. Follow the on-screen instructions to recover your encryption key.

### ⚠️ Important Notes

- Never lose your password or recovery credentials!
- Keep backups of important files.
- Cancel operations by closing the application window.

---

## ⚙️ Technical Specifications

- **🛠️ Algorithm**: AES-GCM (Authenticated Encryption).
- **🔑 Key Size**: 256-bit (Military Grade).
- **🔄 Iterations**: 600,000 (NIST Recommended).
- **🧩 Chunk Size**: 1MB (Optimal Performance).
- **🧂 Salt Size**: 16 bytes.
- **🔢 Nonce Size**: 12 bytes.
- **🔑 Key Recovery**: Securely stores recovery keys using encryption.

---

## 🔐 Security Notes

- 🔄 Cryptographically secure random number generation.
- ✅ Automatic integrity verification.
- 🧹 Cleanup on failure.
- 🛡️ Protection against common attacks.
- 🔑 Recovery options include hashed security answers, encrypted seed phrases, and hardware tokens.

---

## 📜 License

This project is licensed under the **MIT License**. Free for everyone to use and modify.

---

## 📸 Preview

![App Screenshot](./screenshot.png)

---

## ☕ Support

If you find this project helpful, consider supporting me:

[Buy Me a Coffee](https://www.buymeacoffee.com/logand)
<a href="https://www.buymeacoffee.com/logand166"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=logand&button_colour=40DCA5&font_colour=ffffff&font_family=Cookie&outline_colour=000000&coffee_colour=FFDD00" height="25"/></a>
Binary file removed Screenshot.jpg
Binary file not shown.
Binary file removed Screenshot2.jpg
Binary file not shown.
Binary file added app-logo.ico
Binary file not shown.
Binary file added app-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading