Steganography
Hide a text inside an image, invisible to the naked eye, and reveal it back.
What is this?
Steganography hides a message INSIDE an ordinary-looking image, in a way that's invisible to the naked eye — unlike encryption, which makes it obvious that a secret exists (a block of scrambled text), here the image still looks like any other image. The image never leaves your browser: everything happens locally, in JavaScript, using the native <canvas> element.
How it works (LSB)
Every pixel in an image is made of three numbers (red, green, blue), from 0 to 255. This tool swaps only the last bit (the "least significant bit", LSB) of each of these three numbers for the bits of your message. Changing the last bit shifts a channel's value by at most 1 — from 200 to 201, for example — a difference invisible to the naked eye, but perfectly recoverable by reading the same bits in the same order.
Why the output is always PNG
PNG is a LOSSLESS format — every saved pixel is exactly the pixel that was written, bit for bit. JPEG (and the recompression WhatsApp/Instagram apply when sending a photo) discards information to shrink the file — exactly the least significant bits that carry the hidden message. That's why the tool always outputs PNG, and the warning to send it as a file/document (never as a photo) is the single most important thing on this page.
How much fits in a photo
Capacity grows with the number of pixels: a typical phone photo (e.g. 4000×3000) has plenty of room for several pages of text. A small image (e.g. a 64×64 icon) fits only a few dozen characters. The capacity meter above the message field always shows the real limit of the chosen image before you try to hide anything.
Can this be detected?
Yes. Steganalysis (the science of detecting steganography) exists and can, through statistical analysis, flag that an image likely contains hidden data — though it usually can't read the content without the passphrase, if you used one. This tool is meant for everyday privacy and technical curiosity, not for hiding something from a sophisticated adversary with digital-forensics resources.
Frequently asked questions
The passphrase is optional in both cases. If you don't check "Protect with a passphrase" while hiding, anyone who opens this tool with the image can reveal the text with no password at all — the protection in that case is only that the image looks ordinary. Checking the option encrypts the text (AES-256-GCM, the same engine as Encrypt/Decrypt) before hiding it: without the passphrase, whoever extracts it only sees encrypted bytes, not the text.
The image acts as a context "key" — without knowing it contains a message, no one thinks to look for one. An everyday photo (a landscape, a portrait) raises far less suspicion than a file named "secret.png".
Not in this V1 — hiding always overwrites any previous message in the same image (the same bits get rewritten). If you want to keep both, hide the second message in a different copy of the image.
Visually, yes — impossible to tell apart with the naked eye. Byte for byte, no: the least significant bits of some pixels changed to carry the message, and the file is now always PNG (even if the source was JPEG or another format).