{% extends "base.html" %} {% block title %}About - Stegasoo{% endblock %} {% block content %}
Stegasoo is a secure steganography tool that hides encrypted messages and files inside ordinary images using multi-factor authentication.
Stegasoo uses hybrid multi-factor authentication to derive encryption keys:
{% if has_argon2 %}
Argon2id Available
Using Argon2id with 256MB memory cost — the winner of the Password Hashing Competition
and current best practice for key derivation.
{% else %}
Argon2 Not Available
Falling back to PBKDF2-SHA512 with 600,000 iterations.
Install argon2-cffi for stronger security.
{% endif %}
Uses LSB (Least Significant Bit) embedding with pseudo-random pixel selection. The pixel locations are determined by a key derived from your credentials, making the hidden data's location unpredictable without the correct inputs.
New in v2.1 Stegasoo now supports embedding any file type, not just text messages.
abc123_20251228.png).
Use this to determine which day's phrase to use!
| Max text message | 250,000 characters (~250 KB) |
| Max file payload | {{ max_payload_kb }} KB |
| Max carrier image | 16 megapixels (~4000×4000) |
| Max upload size | 10 MB |
| Temp file expiry | 5 minutes |
| PIN length | 6-9 digits |
| RSA key sizes | 2048, 3072, 4096 bits |
| Phrase length | 3-12 words (BIP-39 wordlist) |
Stegasoo is also available as a command-line tool and REST API:
# Generate credentials
stegasoo generate --pin --rsa
# Encode a text message
stegasoo encode -r photo.jpg -c meme.png -p "apple forest thunder" --pin 123456 -m "secret"
# Encode a file
stegasoo encode -r photo.jpg -c meme.png -p "apple forest thunder" --pin 123456 -e document.pdf
# Decode (auto-detects text vs file)
stegasoo decode -r photo.jpg -s stego.png -p "apple forest thunder" --pin 123456
# Encode with multipart upload
curl -X POST http://localhost:8000/encode/multipart \
-F "reference_photo=@photo.jpg" \
-F "carrier=@meme.png" \
-F "message=secret" \
-F "day_phrase=apple forest thunder" \
-F "pin=123456" \
--output stego.png
# Encode a file
curl -X POST http://localhost:8000/encode/multipart \
-F "reference_photo=@photo.jpg" \
-F "carrier=@meme.png" \
-F "payload_file=@document.pdf" \
-F "day_phrase=apple forest thunder" \
-F "pin=123456" \
--output stego.png
API documentation available at /docs (Swagger) or /redoc when running the API server.
Stegasoo v2.1.0 • Open Source • Built with Python, Flask, and cryptography