Skip to content

papengav/pixel-cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pixel Cipher

A CLI tool for encoding and decoding messages within images via LSB Steganography.

Table of Contents

  1. Features
  2. Installation
  3. Usage
  4. Options
  5. Example Usage
  6. Dependencies

Features

  • 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.

Installation

  1. Clone the repository:

    git clone https://github.com/papengav/pixel-cipher.git
    cd pixelcipher
  2. Build the project using CMake:

    mkdir build
    cd build
    cmake ..
    cmake --build .

Usage

Encoding

pxc -e <input-image> -m <message-file> -o <output-image>

Exporting as .jpg will produce unexpected results since lossy compression skews message integrity

Decoding

pxc -d <input.image>

Options

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

Example

pxc -e img.png -m msg.txt -o encoded.png --encrypt mySecret
pxc -d encoded.png --decrypt mySecret

Dependencies

  • OpenCV: Used for image processing.
  • Boost Program Options: Used for command-line parsing.

About

LSB steganography CLI tool in C++

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published