A steganography tool for embedding secret text or files into images
with optional AES-256 encryption and compression.
- Dual Embedding Modes - Hide text messages or entire files within PNG images
- AES-256 Encryption - Optional password protection with PBKDF2 key derivation (480k iterations)
- Smart Compression - Zlib compression to maximize storage capacity
- Auto-Detection - Extraction automatically detects bit depth, compression, and encryption settings
- Adjustable Bit Depth - Trade-off between capacity (1-8 bits per channel) and detection resistance
- Real-time Capacity Display - See available space as you compose your message
- Resolution Adaptive - UI scales automatically to different screen sizes
pip install customtkinter pillow
# Optional: Enable encryption support
pip install cryptographypython StealthMessenger.pyEncoding: Select a cover image → Enter message or choose file → Configure options → Embed → Save
Decoding: Select encoded image → Enter password (if encrypted) → Extract → Save
| Bit Depth | Relative Capacity | Detection Risk |
|---|---|---|
| 1-2 bits | Low-Medium | Minimal |
| 3-4 bits | High | Low |
| 5-8 bits | Maximum | Moderate-High |
[Signature: 7B] [Header: 4B] [Payload: Variable] [Terminator: 4B]
Header: Version | Bit Depth | Flags | Type
Flags: Bit 0 = Compressed, Bit 1 = Encrypted
Type: 0x00 = Text, 0x01 = File
A 1920×1080 image at 2-bit depth provides approximately 1.5 MB of usable storage.
| Package | Purpose | Required |
|---|---|---|
| customtkinter | UI framework | Yes |
| pillow | Image processing | Yes |
| cryptography | AES encryption | Optional |
- Always save as PNG - JPEG compression destroys embedded data
- Encrypted data cannot be recovered without the correct password
- Temporary files are automatically cleaned up on application exit
Semester Project - Advanced Steganography Implementation
Spring 2025
