Welcome to the homepage of OpenStego, the free Steganography solution. This is an open-source software distributed under the terms of the GNU General Public License v2.0.

Support is available through community forums.

What is Steganography?

Steganography is the science of hiding secret message inside another larger and harmless looking message. This is one notch above regular cryptography; which just obscures the original message. Steganography tries to conceal the fact that there is a message in the first place. Steganographic message often appears to be something else than the original (secret) message, like a picture, sound, larger text, etc.

Some terms related to Steganography:

  • plaintext: The original secret message that needs to be communicated.
  • ciphertext: Secret message is often first encrypted using traditional methods. Encrypted message is known as ciphertext.
  • covertext: A larger and harmless looking data which is used as container for the plaintext/ciphertext. This can be a picture, sound, text, etc.
  • stegotext: The data generated after embedding the plaintext/ciphertext into the covertext.

The normal procedure is to first encrypt the plaintext to generate the ciphertext, and then modify the covertext in some way to contain the ciphertext. The generated stegotext is sent over to the intended recepient. If a third party snoops the stegotext in between, then they will just see some harmless looking picture (or sound, etc). Once the recepient receives the stegotext, the ciphertext is extracted from it by reversing the logic that was used to embed it in the first place. The ciphertext is decrypted using the traditional cryptography to get back the original plaintext.

Using OpenStego

Download OpenStego, and extract the same using any unzip application. Start the application by executing openstego.bat (on Windows) or openstego.sh (on *NIX). (For using OpenStego from command-line, please refer here)

There are two things that one might what to do:

Embedding Data

Consider the scenario where Alice wants to send a picture (secret.jpg) to Bob. The picture is a sensitive data, and needs to be sent such that no one can make out that it is being sent over to Bob. In this case, Alice will first select a harmless looking bigger sized picture (wallpaper.png) and use it as the cover file. Both the pictures are shown below as an example:



Alice will start OpenStego, and under "Embed" tab, she will select secret.jpg as the "Source Data File (Message file)", wallpaper.png as the "Source Image File (Cover file)", and send.png as "Output Image File (Stego file)". For extra layer of security, she would also like to encrypt the secret data before embedding, and so she will check the "Encrypt Data" checkbox, and provide a password.

Note: As of now, OpenStego supports only image files to be used as covertext. Future versions might support other types like audio files.

On clicking "OK" button, OpenStego will embed the secret.jpg file into the wallpaper.png, and will generate send.png as the output, as shown below.


There is essentially no visible difference between the original wallpaper.png and generated send.png. Alice can safely send over the send.png file to Bob. If someone snoops the file in the middle, he/she will just find a harmless wallpaper image.

Extracting Data

On receiving the image file from Alice, Bob will extract the original message file using OpenStego. Under the "Extract" tab, he will select send.png as the "Image File Containing Embedded Data (Stego file)", and select a suitable folder for "Output Folder for Data File (Message file)".

On clicking "OK" button, OpenStego will prompt for the password that was used to embed the original file. Alice should have passed the password to Bob to enable him to extract the data.

Bob will type in the password and click "OK". OpenStego will extract the original secret.jpg file, and display the information message accordingly.

You can check that the extracted secret.jpg file is same as the original one.

Note: This example uses a JPG file as the message file, but you can embed any type of file like .exe,.zip, etc. using OpenStego

Amazing, huh!