-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Rolan edited this page Apr 6, 2025
·
7 revisions
- Introduction
- Technical Architecture
- Installation Guide
- Steganography Methodology
- Advanced Usage
- Troubleshooting
- Contributing
- Security Considerations
InvisioVault is a Flask-based application that implements LSB (Least Significant Bit) steganography with zlib compression. This combination allows for:
- Secure file embedding in image pixels
- Compression ratios up to 1:10
- Support for multiple file types
+-------------------+ +-------------------+ +-------------------+
| Web Interface | β | Flask Backend | β | Steganography |
| (HTML/CSS/JS) | | (Python/Flask) | | Engine (PIL/zlib) |
+-------------------+ +-------------------+ +-------------------+
| Package | Version | Purpose |
|---|---|---|
| Flask | 2.0.x | Web framework |
| Pillow | 9.0.x | Image processing |
| zlib | 1.2.x | Compression |
| Werkzeug | 2.0.x | WSGI utilities |
# For Ubuntu/Debian systems
sudo apt install python3-pip python3-venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Configure Gunicorn
pip install gunicorn
gunicorn --bind 0.0.0.0:5000 app:app-
File Preparation:
- Validate MIME type
- Compress using zlib (level 6)
- Convert to base64
-
Image Processing:
- Convert to RGBa mode
- Calculate LSB capacity
- Distribute data across color channels
-
Data Encoding:
- Header (magic bytes + metadata)
- Compressed payload
- CRC32 checksum
python cli.py embed -i image.png -f secret.zip -o output.png
python cli.py extract -i output.png -o secret.zip| Variable | Default | Description |
|---|---|---|
MAX_FILE_SIZE |
10MB | Maximum upload size |
TEMP_DIR |
./uploads | Temporary storage |
LOG_LEVEL |
INFO | Application logging level |
| Symptom | Solution |
|---|---|
| Corrupted output files | Verify image format support |
| Capacity warnings | Use larger images or compression |
| Extraction failures | Check CRC32 checksum matches |
# Install pre-commit hooks
pre-commit install
# Run tests
python -m pytest tests/
# Build documentation
mkdocs build- PEP8 compliance
- Type hinting for core functions
- 85%+ test coverage
- Always verify image sources
- Use HTTPS in production
- Regularly clear ./uploads
- Limit file sizes through config
# Optional AES encryption (requires pycryptodome)
from Crypto.Cipher import AES
# Example usage:
cipher = AES.new(key, AES.MODE_GCM)
ciphertext, tag = cipher.encrypt_and_digest(data)