๐Ÿ•ต๏ธ Steganography Tool

Hide Secrets in Plain Sight

Embed invisible messages inside ordinary images using Least Significant Bit encoding. No one can tell the image has a secret โ€” until they decode it.

LSB Encoding Method
0.01% Visual Change
100% Core Java

The Tool

Encode secret messages into images or decode hidden messages from them

1. Choose an Image

Drop image here or browse

PNG, JPG, BMP supported

2. Enter Secret Message

0 / 0 characters

1. Upload Encoded Image

Drop encoded image here or browse

Must be a StegaCrypt encoded PNG

2. Reveal the Secret

Upload an encoded image to reveal its hidden message

How It Works

The magic behind LSB Steganography explained

01

Message to Binary

Your secret message is converted into binary (0s and 1s). Each character becomes 8 bits using ASCII encoding.

"Hi" โ†’ 01001000 01101001
02

Read Image Pixels

Each pixel has RGB values (0-255). In binary, each value is 8 bits. The last bit (LSB) is nearly invisible to the eye.

R: 11010110 โ†’ 214
G: 10110001 โ†’ 177
B: 01001110 โ†’ 78
03

Replace LSBs

We replace the last bit of each color channel with one bit of our message. The color changes by at most ยฑ1 โ€” completely invisible!

R: 11010010 โ†’ 213
G: 10110101 โ†’ 178
B: 01001010 โ†’ 77
04

Save & Decode

The encoded image looks identical to the original. To decode, we simply read the LSBs back and reconstruct the message.

LSBs: 0,1,0... โ†’ "Hi" ๐ŸŽ‰

Core Java Concepts Used

Every line demonstrates fundamental Java principles

๐Ÿ—๏ธ

OOP Principles

Classes, Objects, Encapsulation, Inheritance, Polymorphism, Abstraction โ€” all demonstrated through the engine architecture.

๐Ÿ“

File I/O

Reading and writing images using javax.imageio.ImageIO, BufferedImage, and Java's I/O streams.

๐Ÿ”ข

Bit Manipulation

AND, OR, XOR, shift operators to extract and modify individual bits within pixel RGB values.

โš ๏ธ

Exception Handling

Custom StegoException class extending Exception, with try-catch-finally blocks throughout.

๐Ÿ“ฆ

Collections

ArrayList for storing pixel data, HashMap for encoding statistics and metadata tracking.

๐Ÿ–ฅ๏ธ

Swing GUI

JFrame, JPanel, JButton, JFileChooser, JTextArea โ€” full desktop GUI with event listeners.

๐Ÿงต

Multithreading

SwingWorker for background encoding/decoding without freezing the GUI thread.

๐Ÿ”Œ

Interfaces

SteganographyEngine interface with encode() and decode() โ€” enabling polymorphism and future extensibility.