A CLI tool for encoding and decoding messages within images via LSB Steganography.
- Encode messages into image files.
- Decode hidden messages from image files.
- Encrypt / Decrypt messages with simple XOR algorithm.
- Simple command-line interface.
- Supports color images in
.png
and.bmp
formats.
-
Clone the repository:
git clone https://github.com/papengav/pixel-cipher.git cd pixelcipher
-
Build the project using CMake:
mkdir build cd build cmake .. cmake --build .
pxc -e <input-image> -m <message-file> -o <output-image>
Exporting as .jpg
will produce unexpected results since lossy compression skews message integrity
pxc -d <input.image>
Generic:
--help
: Display help menu.-e | --encode-image
<filepath>
: Specify the input image for encoding.-d | --decode-image
<filepath>
: Specify the input image for decoding.
Encoding:
-m | --msg
<filepath.txt>
: Specify the file containing data to encode.-o | --output-file
<filepath>
: Specify the output image after encoding. If none is provided, input image will be overriden.--upscale
: Allow image upscaing if message exceeds image capacity--encrypt
<secret-txt>
: Encrypt message contents before embedding.
Decoding:
--decrypt
<secret-txt>
: Decrypt message contents after decoding
pxc -e img.png -m msg.txt -o encoded.png --encrypt mySecret
pxc -d encoded.png --decrypt mySecret
- OpenCV: Used for image processing.
- Boost Program Options: Used for command-line parsing.