A simple file encryption/decryption tool using password-based encryption with AES-256.
IMPORTANT - READ BEFORE USE:
- This tool PERMANENTLY encrypts/decrypts files - original files are deleted after processing
- Lost passwords CANNOT be recovered - there is no backdoor or password reset
- Keep the
.encryption_saltfile safe - deleting it makes decryption impossible - Test with non-critical files first to understand how it works
- Always keep backups of important files before encrypting
- Use strong passwords - weak passwords compromise security
- The tool processes ALL files recursively in the directory and subdirectories
- 🔒 Strong encryption using PBKDF2 and Fernet (AES-256)
- 📁 Recursive directory encryption/decryption
- 🔑 Password-based encryption with salt management
- 🖥️ Cross-platform support (Windows, macOS, Linux)
- 📦 Standalone executables - no Python installation required
-
Download the executable for your platform:
- Windows:
FlashCrypt.exe - macOS/Linux:
FlashCrypt
- Windows:
-
Place the executable in the folder containing files you want to encrypt/decrypt
-
Run the executable:
- Windows: Double-click
FlashCrypt.exe - macOS/Linux: Open terminal and run
./FlashCrypt
- Windows: Double-click
-
Follow the prompts:
- Select option 1 to encrypt files
- Select option 2 to decrypt files
- Select option 3 to exit
- Enter your password when prompted
- Type
yesto confirm the operation
Note: The executable is completely standalone - no Python installation needed!
- Python 3.7 or higher
- pip package manager
-
Clone or download this repository
-
Install dependencies:
pip install -r requirements.txt
-
Navigate to the directory with files you want to encrypt/decrypt:
cd /path/to/your/files -
Copy
script.pyto that directory -
Run the script:
python script.py
-
Follow the interactive prompts as described above
If you want to build the executable yourself from source:
-
Install Python 3.7+ from python.org
-
Install required packages:
pip install -r requirements.txt
Automatic build (recommended):
python build.pyManual build (alternative):
pip install pyinstaller
pyinstaller --onefile --name=FlashCrypt --console script.pyThe executable will be created in the dist/ directory:
- Windows:
dist/FlashCrypt.exe - macOS/Linux:
dist/FlashCrypt
You can now distribute this standalone executable - recipients don't need Python installed!
- Tool scans the directory for all files (recursively through subdirectories)
- Skips itself, the salt file, and system files (.dll, .pyd, etc.)
- Creates a hidden
.encryption_saltfile if it doesn't exist - Derives encryption key from your password using PBKDF2 (100,000 iterations)
- Encrypts each file using Fernet (AES-256 in CBC mode)
- Adds
.encryptedextension to encrypted files - Deletes original unencrypted files
- Tool finds all
.encryptedfiles in the directory - Uses existing
.encryption_saltfile - Derives decryption key from your password
- Decrypts each
.encryptedfile - Restores original filenames (removes
.encryptedextension) - Deletes encrypted files
- The FlashCrypt executable itself
.encryption_saltfile- System libraries (.dll, .pyd, .so, .dylib)
- Already encrypted files (.encrypted extension)
- AES-256 Encryption: Industry-standard symmetric encryption
- PBKDF2 Key Derivation: 100,000 iterations with SHA-256
- Random Salt: 16-byte random salt per directory
- No Key Storage: Password is never stored, only used in memory
- Salt Protection: Salt file is hidden on Windows
- Choose a strong password (mix of letters, numbers, symbols)
- Remember your password - it cannot be recovered
- Use the same password for encrypting and decrypting
- Don't share passwords over insecure channels
- Automatically created on first encryption
- Hidden file (invisible on Windows by default)
- Must stay with encrypted files - don't delete it
- Losing this file means permanent data loss
- Back it up with your encrypted files if moving them
- Original files are permanently deleted after encryption
- Encrypted files are permanently deleted after decryption
- Always test with copies of important files first
- Keep backups elsewhere before encrypting
- ✅ Test with non-critical files first
- ✅ Keep backups of important data
- ✅ Use strong, unique passwords
- ✅ Store password in a password manager
- ✅ Keep
.encryption_saltfile with encrypted files - ❌ Don't encrypt files without backups
- ❌ Don't lose your password
- ❌ Don't delete the
.encryption_saltfile - ❌ Don't use weak passwords
- Files are already encrypted, or
- No files exist in the directory except the executable
- Incorrect password entered
.encryption_saltfile is missing or incorrect- File was corrupted after encryption
- File was encrypted with a different password/salt
- This shouldn't happen anymore - the tool waits for Enter key
- If it does, run from command prompt/terminal to see errors
- Check if they're already encrypted (
.encryptedextension) - Ensure they're not system files (.dll, .pyd, etc.)
- Make sure you're in the correct directory
macOS Gatekeeper blocks unsigned apps by default. To run FlashCrypt:
Option 1: Right-click method
- Right-click (or Control+click) on
FlashCrypt-macOS - Select "Open" from the menu
- Click "Open" in the dialog that appears
- You only need to do this once
Option 2: Terminal method
# Remove quarantine attribute
xattr -d com.apple.quarantine FlashCrypt-macOS
# Make executable
chmod +x FlashCrypt-macOS
# Run it
./FlashCrypt-macOSOption 3: System Settings
- Try to open the app (it will be blocked)
- Go to System Settings → Privacy & Security
- Scroll down and click "Open Anyway" next to the FlashCrypt message
- Confirm by clicking "Open"
Make the file executable:
chmod +x FlashCrypt-Linux
./FlashCrypt-LinuxThis tool is provided "as is" without warranty of any kind. Use at your own risk. Always maintain backups of important data.
