A small tool to perform password-based LSB image steganography
This tool can be used to perform password-based LSB image steganography. In other words, you can use this tool to hide a file inside an image. The secret file can only be recovered by supplying the correct password again using the reveal utility of the tool. Internally this works by encoding the secret data inside the least significant bits of the pixels contained in the image. The positions of the utilized pixels are computing randomly via a Pseudorandom Number Generator (PRNG) that is seeded with the password. You can find a visual explanation of LSB image steganography here.
For the tool to work properly, you have to install the required Python packages:
pip3 install -r requirements.txt
To get the usage information, simply run ./lsb_image_stego.py -h
:
As an example, to hide a file called secret.txt
inside the cover image nature.png
and name the output file beautiful_nature.png
, call the tool like so:
./lsb_image_stego.py -H -c nature.png -s secret.txt -o beautiful_nature.png
You will then be prompted to enter a password before the hiding starts. Note that the output will always be a PNG image. To recover the secret file secret.txt
from the cover beautiful_nature.png
, simply call:
./lsb_image_stego.py -R -c beautiful_nature.png -o recovered_secret.txt
and enter your password again. Note that you can also supply your password via the -p
argument for batch processing. However, under normal circumstances this may be considered insecure.
This tool is licensed under the MIT license, see here.