Skip to content

Latest commit

Β 

History

History
90 lines (63 loc) Β· 3.17 KB

README.md

File metadata and controls

90 lines (63 loc) Β· 3.17 KB

Hide secret files inside a PNG of your choice without anyone noticing

Logo

License

Steganography-Trithemius

Welcome to Trithemius.py, an Steganography tool to hide any type of file inside a PNG image of your choice! Its works by enconding the file bits inside the bit planes of the input image color channels. Encodes and Decodes blazingly fast by using code vectorization :D

Example of Usage

secret_message.txt input_image.png encoded_image.png
I am already far north of London, and as I walk in the streets of Petersburgh, I feel a cold northern breeze play upon my cheeks, which braces my nerves and fills me with delight. Do you understand this feeling?... img1 img2

Code Structure

Trithemius /
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ banner.txt
β”‚   β”œβ”€β”€ my_bits.py
β”‚   β”œβ”€β”€ my_cv.py
β”‚   β”œβ”€β”€ my_cli.py
β”‚   β”œβ”€β”€ my_files_io.py
β”‚   β”œβ”€β”€ encode.py
β”‚   β”œβ”€β”€ decode.py
β”‚   └── inspect.py
β”‚
β”œβ”€β”€ app.py
└── unit_tests.py

Features

  • Encoding: Hide files within PNG images using specified bit planes.

  • Decoding: Extract hidden files from encoded PNG images.

  • Inspecting: Visualize bit planes of color channels for image analysis.

  • Open Source: Free as in beer and free as in speech.

  • Cross-Platform: Works on Windows, Linux, and macOS (its just python)

  • Command-Line Interface: Offers a user friendly interface with commands checks.

But how does it work ?

It uses the LSB steganography technique!

The least significant bit (LSB) steganography in color images is a technique that hides information within an image by altering theleast important bits of its pixels. Each pixel in a color image typically consists of 24 bits, divided into 8 bit planes for each color channel (red, green, and blue).

For example, if a pixel has an RGB value of (245, 33, 74), its binary representation will be:

R: 11110101 G: 00100001 B: 01001010

The least significant bit belongs to bit plane 0, i.e., the first bit read from right to left, while the most significant bit belongs to bit plane 7. If we wish to hide the binary information represented by 101, we can alter the bit planes of our pixel so that its new value is as follows:

R: 11110101 G: 00100000 B: 01001011

This translates to an RGB value of (245, 32, 75), an imperceptible color change to the human eye. With this idea, we can practically store arbitrary information in a large enough image, simply by choosing which bit planes to alter.

Installation and Usage

  1. Clone the repository:
    git clone https://github.com/your-username/trithemius.py.git
    
  2. Install the dependencies:
    pip install opencv-python numpy
  3. Run the application:
    python3 app.py

License

This project is licensed under the MIT License