Skip to content
Rolan edited this page Apr 6, 2025 · 7 revisions

InvisioVault

πŸ“– Table of Contents

  1. Introduction
  2. Technical Architecture
  3. Installation Guide
  4. Steganography Methodology
  5. Advanced Usage
  6. Troubleshooting
  7. Contributing
  8. Security Considerations

🌟 Introduction

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

πŸ—οΈ Technical Architecture

Core Components

+-------------------+     +-------------------+     +-------------------+
|    Web Interface  | ⇄  |   Flask Backend    | ⇄  |  Steganography    |
| (HTML/CSS/JS)     |     | (Python/Flask)    |     | Engine (PIL/zlib) |
+-------------------+     +-------------------+     +-------------------+

Key Dependencies

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

πŸ’» Installation Guide

Production Deployment

# 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

πŸ” Steganography Methodology

Embedding Process

  1. File Preparation:

    • Validate MIME type
    • Compress using zlib (level 6)
    • Convert to base64
  2. Image Processing:

    • Convert to RGBa mode
    • Calculate LSB capacity
    • Distribute data across color channels
  3. Data Encoding:

    • Header (magic bytes + metadata)
    • Compressed payload
    • CRC32 checksum

βš™οΈ Advanced Usage

CLI Interface

python cli.py embed -i image.png -f secret.zip -o output.png
python cli.py extract -i output.png -o secret.zip

Environmental Variables

Variable Default Description
MAX_FILE_SIZE 10MB Maximum upload size
TEMP_DIR ./uploads Temporary storage
LOG_LEVEL INFO Application logging level

🚨 Troubleshooting

Common Issues

Symptom Solution
Corrupted output files Verify image format support
Capacity warnings Use larger images or compression
Extraction failures Check CRC32 checksum matches

πŸ‘₯ Contributing

Development Setup

# Install pre-commit hooks
pre-commit install

# Run tests
python -m pytest tests/

# Build documentation
mkdocs build

Code Standards

  • PEP8 compliance
  • Type hinting for core functions
  • 85%+ test coverage

πŸ”’ Security Considerations

Best Practices

  1. Always verify image sources
  2. Use HTTPS in production
  3. Regularly clear ./uploads
  4. Limit file sizes through config

Cryptographic Extensions

# 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)