Multimedia Obfuscation & Steganography Toolkit
Project description
ImageStego
Multimedia Obfuscation & Steganography Toolkit — a Python library for image/video obfuscation and message hiding.
Features
Obfuscation (Image / GIF / MP4)
| Algorithm | Description |
|---|---|
| Pixel Scramble | Pseudo-random pixel permutation |
| Block Scramble | Block-level shuffling |
| Arnold Cat Map | Classic chaotic map transform |
| Baker's Map | Baker's map + optional XOR encryption |
| Henon Map | Henon chaotic system |
| Logistic Map | Logistic chaotic sequence |
| DNA Encoding | DNA-based pixel encoding |
| Spiral Scan | Spiral-order pixel rearrangement |
Steganography
| Method | Description |
|---|---|
| LSB | Least Significant Bit embedding |
| LSB Edge | Randomized LSB with edge detection |
| DCT | Frequency-domain (DCT coefficient) embedding |
| DWT | Wavelet-domain (Haar DWT) embedding |
| PVD | Pixel Value Differencing |
| Spread Spectrum | QIM-based spread spectrum |
All steganography methods support Fernet encryption (password-protected) and timestamp embedding.
Installation
pip install imagestego
Optional dependencies:
pip install imagestego[gui] # Web GUI (PyWebIO)
pip install imagestego[progress] # Progress bars (tqdm)
Quick Start
Obfuscation
from imagestego import pixel_obfuscate, pixel_deobfuscate
# Encrypt
pixel_obfuscate("input.png", "encrypted.png", seed=42)
# Decrypt
pixel_deobfuscate("encrypted.png", "restored.png", seed=42)
Multi-layer Pipeline
from imagestego import ObfuscationPipeline
pipeline = ObfuscationPipeline()
pipeline.add_layer("arnold", iterations=30)
pipeline.add_layer("bakers", iterations=10, password="secret")
pipeline.add_layer("dna")
sidecar = pipeline.encrypt("input.png", "output.png")
# Generates output.png + output.layers.json
pipeline.decrypt("output.png", "restored.png")
Steganography
from imagestego import lsb_embed_message, lsb_extract_message
# Hide a message
lsb_embed_message("cover.png", "Hello World", "stego.png", password="key123")
# Extract
result = lsb_extract_message("stego.png", password="key123")
print(result["message"])
Batch Processing
from imagestego.batch_processor import batch_obfuscate
result = batch_obfuscate(
input_dir="./images",
output_dir="./output",
method="arnold",
params={"iterations": 20},
max_workers=4,
)
print(result) # Total=10, Success=10, Failed=0
CLI
imagestego # Interactive CLI
imagestego-gui # Web GUI (requires pywebio)
Requirements
- Python >= 3.9
- numpy, Pillow, cryptography, scipy, moviepy
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
imagestego-2.0.0.tar.gz
(39.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imagestego-2.0.0.tar.gz.
File metadata
- Download URL: imagestego-2.0.0.tar.gz
- Upload date:
- Size: 39.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
504a8c36fd27f97145690dc7316e0d4bcc1459f46f2d45fd4178a0bc630420e3
|
|
| MD5 |
453a00d2ccb60114bcdbc502d47f8ba5
|
|
| BLAKE2b-256 |
9792ca302e622ba989e2416ab36dd1570aa4d08210c88a2178fd95412ccdf6d7
|
File details
Details for the file imagestego-2.0.0-py3-none-any.whl.
File metadata
- Download URL: imagestego-2.0.0-py3-none-any.whl
- Upload date:
- Size: 55.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c10a840ab5002281680f7fcd6b322e371846b07de6c7ae26ab7663301aca4166
|
|
| MD5 |
3b877e62dad4d08bdf69d1474dad4b79
|
|
| BLAKE2b-256 |
a73bfaf97b0b112bbd8a3a8d251859bbf96f9232bce309a4c800c903b01fac77
|