Image LSB Steganography — Encode

Hide a UTF-8 message in the low bits of a PNG cover image.

Open tool

Overview

The Image LSB Steganography Encode tool hides a UTF-8 message inside the least-significant bits of a PNG cover image's pixels. Upload a cover, paste your text, and the tool returns a visually-identical PNG with the message woven into the low bits — invisible to the naked eye, recoverable only by the matching decoder.

It is used for capture-the-flag puzzles, watermark-as-claim-of-ownership experiments, classroom demonstrations of steganography, and any workflow that needs to embed a message in a PNG image with low visual impact. Always pair it with proper encryption if the payload itself is sensitive.

How it works

Every pixel has three or four 8-bit channels (RGB or RGBA). Replacing the lowest bit of a channel changes its value by at most 1/255 — well below the threshold of human vision. The encoder serialises the UTF-8 payload, prepends a length header so the decoder knows when to stop, and writes one bit per channel in scan order.

The image is saved as PNG because PNG uses lossless deflate compression and preserves every bit of every pixel. JPEG and other lossy formats would re-quantise the colours during compression and destroy the payload, so they aren't valid output targets for LSB encoding.

Examples

Cover: cat.png (1024x768, ~24 MB capacity at 1 bit/channel)
Payload: "the password is hunter2"
Output: cat-stego.png (visually identical, ~24 byte payload + header)

Cover: landscape.png (4000x3000, 36 MB capacity)
Payload: a 4000-character note about the photo's origin
Output: landscape-stego.png

Cover: tiny-icon.png (32x32)
Payload: "hi" — fits easily; capacity is 384 bytes.

FAQ

Can I encode into JPEG instead?

No — JPEG's lossy DCT compression destroys LSBs. The encoder always writes a PNG to preserve the payload.

How much text will fit?

Roughly (width * height * channels) / 8 bytes minus a small header. A 1 MP RGB image holds about 375 KB, far more than any short message needs.

Will the cover image look any different?

Not to human eyes. Side-by-side pixel diffs reveal the changes, but the colour shift per pixel is at most 1/255 per channel — invisible in any natural image.

Is this the same as watermarking?

Similar idea, different goal. Watermarking aims to survive editing and re-encoding (often visibly). LSB steganography aims to be invisible but fragile — re-saving as JPEG erases it.

Should I encrypt the payload first?

For anything sensitive, yes. LSB hides the message's presence, not its contents. Encrypt with a tool like the AES tool before encoding and the LSB layer adds plausible deniability on top of strong crypto.

Try Image LSB Steganography — Encode

An unhandled error has occurred. Reload ×