Drag & drop an image here, or click to browse
JPG, PNG, WEBP — any format works as input
Hide Text in an Image • LSB Encoding • 100% Local
Drag & drop an image here, or click to browse
JPG, PNG, WEBP — any format works as input
Steganography hides information inside something that looks completely ordinary — unlike encryption, which makes data unreadable but obviously scrambled, steganography aims to make the fact that a message exists at all go unnoticed. This tool uses a classic technique called LSB (Least Significant Bit) encoding: every pixel in an image has a Red, Green, and Blue value from 0–255, and this tool replaces just the very last bit of each of those values with a bit of your secret message. Since the last bit only ever changes a color value by at most 1 out of 255, the difference is completely invisible to the human eye, even though the message is fully recoverable by reading those same bits back out in order.
A message length is stored first (in the same way, across the first several pixels), so extraction knows exactly how many bits to read back — this is also why an image that never had a message hidden in it will correctly show "no message found" rather than returning garbage text.
The output must be saved as PNG. PNG stores every pixel's exact value losslessly, so the hidden bits survive perfectly. JPEG, on the other hand, is a lossy format — its compression algorithm doesn't preserve exact pixel values, which silently destroys the hidden message. This is also why any platform or app that re-compresses an image you upload (many chat apps and social platforms do this automatically) will likely destroy the hidden message too, even if the file still looks like a PNG.
All processing happens locally in your browser — the image and message are never uploaded anywhere.