A steganography tool for images
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A steganography tool for images that has little to no visible effect.

What is steganography?

Steganography is the process of hiding data in plain sight.
An analog example would be invisible ink.
This tool subtly tweaks the pixels of an image in a way that is almost invisible to the human eye, but still encodes the messages.

How does this work?

First, the image is "sanitized." All rgb values are set to the highest even number less than or equal to themselves.
For example, a pixel with (r = 2, b = 5, g = 7) become (r = 2, b = 4, g = 6)


The write method takes a string and an image. A string is taken character by character. Each character is broken into a sixteen-character bit string.
Then the program writes the bit strings to the image by increasing one of the rgb values if the string has a 'true.' For example, mapping the bit string [010] onto (r = 2, b = 4, g = 6) makes it (r = 2, b = 5, g = 6) At the end, a null character ('\0') is added to act as a delimiter.


The read method takes an image.
A copy of the image is made and sanitized for analysis. Wherever the images don't match, an array of flags is marked.
Once the images have been analyzed, the array is checked at 16 character intervals.
It is converted from a bit string to an int, and then a character.
If the character is not a null character ('\0') then it is added to the end of a string.
If it is the null character, the reading is complete and the string is returned.