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