A pure Python steganography module.
Find a file
2020-08-20 09:56:34 +02:00
.builds nose2 replaces nose for the unit tests 2019-12-19 23:03:49 +01:00
bin Added mising command line tools. 2019-12-22 10:46:33 +01:00
docs updated documentation 2019-12-14 15:32:52 +01:00
stegano nose2 replaces nose for the unit tests 2019-12-19 23:03:49 +01:00
tests Improved code style. 2019-12-17 09:18:37 +01:00
tools Improved code style. 2019-12-17 09:18:37 +01:00
.gitignore Updated .gitignore. 2020-08-20 09:56:34 +02:00
CHANGELOG.md Update CHANGELOG. 2019-12-20 09:48:28 +01:00
CONTRIBUTORS.md Everything in Markdown. 2019-10-27 22:03:36 +01:00
COPYING Initial commit 2010-10-02 02:35:17 +02:00
poetry.lock updated dependencies. 2020-08-20 09:56:17 +02:00
pyproject.toml fixed includes in pyproject.toml 2019-12-20 13:20:26 +01:00
README.md fixed case of the module name 2019-12-21 17:23:28 +01:00

Stegano

builds.sr.ht status

Stegano, a pure Python Steganography module.

Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security through obscurity. Consequently, functions provided by Stegano only hide messages, without encryption. Steganography is often used with cryptography.

For reporting issues, visit the tracker here: https://todo.sr.ht/~cedric/stegano

Installation

$ poetry install stegano

You will be able to use Stegano in your Python programs.

If you only want to install Stegano as a command line tool:

$ pipx install stegano

pipx installs scripts (system wide available) provided by Python packages into separate virtualenvs to shield them from your system and each other.

Usage

A tutorial is available.

Use Stegano as a library in your Python program

If you want to use Stegano in your Python program you just have to import the appropriate steganography technique. For example:

>>> from stegano import lsb
>>> secret = lsb.hide("./tests/sample-files/Lenna.png", "Hello World")
>>> secret.save("./Lenna-secret.png")
>>>
>>> clear_message = lsb.reveal("./Lenna-secret.png")

Use Stegano as a command line tool

Hide and reveal a message

$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m "Secret Message" -o Lena1.png
$ stegano-lsb reveal -i Lena1.png
Secret Message

Hide the message with the Sieve of Eratosthenes

$ stegano-lsb-set hide -i ./tests/sample-files/Lenna.png -m 'Secret Message' --generator eratosthenes -o Lena2.png

The message will be scattered in the picture, following a set described by the Sieve of Eratosthenes. Other sets are available. You can also use your own generators.

This will make a steganalysis more complicated.

Running the tests

$ python -m unittest discover -v

Running the static type checker:

$ python tools/run_mypy.py

Contributions

Contributions are welcome. If you want to contribute to Stegano I highly recommend you to install it in a Python virtual environment with poetry.

License

This software is licensed under GNU General Public License version 3

Copyright (C) 2010-2019 Cédric Bonhomme

For more information, the list of authors and contributors is available.