- This option simply hides data, in the image's hex dump, so there's no pixel/palette processing.
- This is done by appending the binary data to the image file.
- This command essentially does the same thing:
$ echo "this is a secret message" >> image.jpg
- Pastes given data into the "image description" metadata field. You can read this modified property if you look at the image's properties.
- Hides data by modifying the least significant bit of each byte, therefore storing either a 0 or a 1 there.
- If a bit needs to be changed to reflect the data you want to hide, this program randomly chooses between incrementing and decrementing the binary value of the given byte by 1 - this has multiple advantages over simply overwriting the last bit with a "1" or a "0" (commonly referred to as LSB replacement). Most importantly it doesn't create obvious statistical anomalies, therefore isn't as detectable.
- This option firstly encrypts data with AES (a symmetric-key algorithm) and only then hides it with LSB. This serves as an extra layer of security in case LSB gets detected.
- An asymmetric (public-key) cryptography alternative. Data is still first encrypted with AES, except the AES credentials are prepended to the ciphertext. These credentials are then encrypted with RSA and only then is LSB used. It is done this way because RSA can only encrypt data up to the size of its key (2048 bits in this case), so only encrypting data with RSA would be very limiting. Adding AES and only encrypting its credentials is a workaround around this limitation.
- Helpful for understanding and navigating the code
- I assume that python is already installed on your device
-
Clone
git clone https://github.com/jtris/steganography-app.git cd steganography-app/src
-
Install required packages
python3 -m pip install -r requirements.txt
-
Run
python3 app.py