Steganography Decoder

Reveal hidden messages in images: decode LSB steganography, inspect bit planes and spot data hidden after the end-of-image marker.

Drag & drop an image here, or click to browse

No uploads. Your files stay on your device.

No uploads. Your files stay on your device.

Free forever, no sign-up, no cookies. Buy me a coffee

How it works

Drop an image and this decoder reads it with the Canvas API right inside your browser — the file is never uploaded anywhere. It walks the pixels in order and collects the least significant bit (LSB) of each colour channel, packs those bits back into bytes and stops at the first zero byte, which is the terminator almost every LSB encoder writes. Auto-detect tries the usual combinations (R+G+B together, each channel on its own, alpha, and both bit orders) and shows the one that produces readable text.

Not every hidden payload lives in the pixels. The tool also checks the raw file for bytes that sit after the end-of-image marker (PNG IEND, JPEG FFD9, or the RIFF length in a WebP) — a classic way to smuggle a note or a whole ZIP inside a picture. Anything it finds can be read as text or downloaded as a binary file.

Finally, the bit-plane view renders a single bit of each pixel as black-and-white. A clean photo's lowest bit plane looks like random static; an image carrying LSB data usually shows a sharp block of structure at the top where the message sits. Note that LSB data only survives lossless formats — re-saving a stego image as JPEG destroys the message, so JPEGs rarely yield anything from the pixel scan.

Frequently asked questions

How does this steganography decoder find hidden text?

It reads the least significant bit of each colour channel across the pixels, packs those bits back into bytes and stops at the first zero byte — the terminator nearly every LSB encoder writes. Auto-detect tries R+G+B together, each channel on its own, the alpha channel, and both bit orders, then shows whichever combination produces readable text.

Is my image uploaded anywhere?

No. The file is decoded with the Canvas API and read as raw bytes entirely inside your browser. Nothing is sent to a server, there is no queue and no account, so you can safely inspect private or sensitive images.

Why does it find nothing in my JPEG?

JPEG compression rewrites pixel values, which destroys least-significant-bit data, so LSB messages only survive lossless formats like PNG, BMP and WebP. For a JPEG, check the appended-data scan instead — it looks for bytes hidden after the FFD9 end-of-image marker, a trick that works on any format.

Report a bug