Current Version: 1.0.0
A powerful file, text, and folder encryption tool with a Flask-powered web UI, a Python GUI, and a command-line interface (CLI). Supports key management, password-based encryption, and multiple encryption methods.
Click to expand
.
├── app
│ ├── web_ui
│ │ ├── templates
│ │ │ ├── base.html
│ │ │ ├── file_encryption.html
│ │ │ ├── index.html
│ │ │ └── text_encryption.html
│ │ ├── __init__.py
│ │ ├── forms.py
│ │ └── routes.py
│ ├── __init__.py
│ ├── cli.py
│ └── crypto_utils.py
├── assets
│ └── favicon.ico
├── instance
├── tests
│ └── tests.py
├── .env
├── .env.example
├── .gitignore
├── config.py
├── devserver.sh
├── Dockerfile
├── gui.py
├── main.py
├── PyCryption.spec
├── README.md
├── requirements.txt
├── run.py
└── wsgi.py
- 🔑 Key Management: persistent keys, load/save keys, password-based keys
- 📝 Text Encryption/Decryption: available in GUI, CLI, Web UI
- 📂 File & Folder Encryption/Decryption: using Fernet keys or passwords
- 🌐 Flask Web UI: browser-based, user-friendly interface
- 🖥 Tkinter-based GUI App for non-technical users
- 🛠 CLI Tools for developers and scripting
- 🔒 Demo Ciphers (Caesar Cipher and more)
Create and activate a Python virtual environment:
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
Install dependencies:
pip install -r requirements.txt
Development server:
./devserver.sh
Production (Gunicorn):
gunicorn --bind 0.0.0.0:8080 wsgi:app
python gui.py
Main Features:
- Generate & manage encryption keys
- Encrypt/Decrypt text
- Encrypt/Decrypt files
- Persistent key storage
Activate your venv, then use:
flask encryptor --help
# Generate random key → secret.key
flask encryptor generate-key
# Derive key from password
flask encryptor generate-key --from-password "my_strong_password"
flask encryptor encrypt-text "My secret message"
flask encryptor decrypt-text "gAAAAABl..."
# Supports --key or --password overrides
flask encryptor encrypt-file path/to/file.txt
flask encryptor decrypt-file path/to/file.txt.enc
flask encryptor encrypt-folder path/to/folder --password "mypassword"
flask encryptor decrypt-folder path/to/encrypted_folder --password "mypassword"
flask encryptor caesar "Hello World" 3
pytest
Create a standalone executable:
pyinstaller --onefile --windowed --add-data "assets;assets" gui.py
Executable will be in the dist/ folder.
config.py: application defaultsinstance/config.py: environment-specific (ignored in git)
Switch environment:
export FLASK_CONFIG=production
- AES/GCM encryption support
- Cloud key vault integration
- Docker deployment examples
- WebSocket-based live encryption demo
- Fork the project
- Create your feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Distributed under the MIT License. See LICENSE for details.
- Flask
- PyInstaller
- cryptography