A professional-grade desktop encryption suite built with Python and Tkinter, implementing 8 classical and modern cryptographic algorithms in a single unified interface.
| Tab | What it does |
|---|---|
| 👤 Account | Register / Login with SHA-256 hashed passwords |
| 🔠 Text Ciphers | Encrypt / Decrypt typed text using 8 algorithms |
| 📄 Documents | Load and encrypt .txt and .docx files |
| 🖼️ Images | OCR text extraction + XOR image encryption |
| 📊 Activity | Full searchable log of all cryptographic operations |
SecureCrypt Pro is a university semester project for the course Introduction to Information Security (CS-312). It consolidates multiple cryptographic tools — text encryption, OCR-powered data ingestion, document processing, and secure activity logging — into a single cohesive desktop application.
Why we built it: Most cryptographic tools are CLI-based and inaccessible to non-technical users. SecureCrypt Pro bridges that gap with a modern card-based GUI that makes classical and modern algorithms easy to understand and use.
| Algorithm | Type | Key Required | Notes |
|---|---|---|---|
| Caesar Cipher | Classical Substitution | Integer shift | Shifts each letter by N positions |
| Vigenère Cipher | Polyalphabetic Substitution | Keyword string | Repeating keyword shifts |
| Playfair Cipher | Digraph Substitution | Keyword string | 5×5 matrix, digraph pairs |
| Rail Fence Cipher | Transposition | Integer (rails) | Zig-zag pattern transposition |
| Affine Cipher | Monoalphabetic Substitution | Two integers (a, b) | (ax + b) mod 26 |
| Simple Substitution | Custom Substitution | Key string | Shuffled alphabet mapping |
| Base64 | Encoding | None | Standard Base64 encode/decode |
| XOR Cipher | Bitwise | Key string | Bit-flipping with key cycling |
securecrypt-pro/
│
├── main.py ← Single-file application (all logic here)
│ │
│ ├── Config ← Colors, fonts, global constants
│ ├── Cipher Functions ← 8 standalone cipher implementations
│ ├── UserAuth ← SQLite-backed login with SHA-256 hashing
│ ├── FileProcessor ← .txt / .docx / image / binary file reader
│ ├── HistoryManager ← SQLite activity log with export support
│ └── EncryptionApp ← Main Tkinter window & all UI tabs
│
├── requirements.txt ← Python dependencies
├── .gitignore
└── README.md
Note:
users.dbandhistory.dbare created automatically on first run. They are excluded from this repository via.gitignoreto protect user data.
- Python 3.10 or later — Download here
- Tesseract OCR (for image text extraction) — Download here
git clone https://github.com/YOUR-USERNAME/securecrypt-pro.git
cd securecrypt-propip install -r requirements.txtDownload and install from: https://github.com/UB-Mannheim/tesseract/wiki
The app auto-detects Tesseract from these common paths:
C:\Program Files\Tesseract-OCR\tesseract.exeC:\Program Files (x86)\Tesseract-OCR\tesseract.exe
python main.py- Launch the app — you'll land on the Account tab
- Click "Create Account"
- Enter a username and password → click "Create Account"
- Switch to "Sign In" tab and login
- All other tabs unlock after login
- Go to the 🔠 Text Ciphers tab
- Select your algorithm from the left panel
- Enter your key (shift number for Caesar, keyword for Vigenère, etc.)
- Type or paste your text in the Input Text box
- Click 🔒 Encrypt — result appears in Output Text
- Click 📋 Copy to copy to clipboard
| Algorithm | Key Format | Example |
|---|---|---|
| Caesar | Integer | 13 |
| Vigenère | Word | SECRET |
| Playfair | Word | KEYWORD |
| Rail Fence | Integer (rails) | 3 |
| Affine | Two integers separated by space | 5 8 |
| Substitution | Any string | myKey123 |
| Base64 | No key needed | (leave blank) |
| XOR | Any string | myKey |
- Go to 📄 Documents tab
- Click 📂 Browse → select your
.txtor.docxfile - Click 👁️ Read File to preview it
- Choose your cipher in the 🔠 Text Ciphers tab (key applies here)
- Click 🔒 Encrypt File — saves as
filename_ENCRYPTED.txt
- Go to 🖼️ Images tab
- Click 📂 Browse → select an image containing text
- Click 🔤 Extract Text — Tesseract extracts visible text
- Text appears in the box below and can be copied to the cipher tab
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL, -- SHA-256 hash, never plaintext
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);CREATE TABLE history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
operation TEXT NOT NULL, -- encrypt_text / decrypt_text / read_file / etc.
cipher TEXT, -- caesar / vigenere / playfair / etc.
key_used TEXT,
filename TEXT,
details TEXT
);| Name | Role |
|---|---|
| Lead System Architect & UI/UX Designer | Presentation Layer — Theme-aware GUI |
| Cryptographic Logic & Data Processing Engineer | Logic Layer — All cipher implementations |
| Security Architect & Database Administrator | Data Layer — SHA-256 Auth & SQLite |
Course: Introduction to Information Security (CS-312) Instructor: Ms. Wasifa Kanwal
This project is built for educational purposes as part of a university course on information security. The classical ciphers implemented (Caesar, Vigenère, Playfair, etc.) are not suitable for real-world security applications. For production-grade encryption, use AES-256 or RSA via established libraries.
This project is licensed under the MIT License.
- Stallings, W. Cryptography and Network Security: Principles and Practice
- Python Tkinter Documentation
- Tesseract OCR
- PyCryptodome Documentation