100% Private ยท Runs in your browser

Hide Secret Messages Inside Images

Embed invisible text inside any photo using LSB pixel steganography. The image looks completely normal โ€” only someone with this tool can reveal what's inside.

Your image and message never leave your device. All processing runs in your browser.

Done! ๐ŸŽ‰

If this tool saved you time, consider leaving a tip to help keep this service free and private!

How it works

Upload any photo

Drop a JPG, PNG, or WebP image. The bigger the image, the more text you can hide โ€” a 1080p photo holds over 700,000 characters.

Type your secret message

Write anything โ€” a note, coordinates, a code word. Add an optional password so only the intended recipient can read it.

Download & share

Download the output PNG. It looks pixel-perfect identical to the original. The receiver uploads it here to reveal the hidden text.

What is steganography?

Steganography is the art of hiding data within other data so the very existence of the hidden message is concealed. Unlike encryption (which makes data unreadable but visible), steganography makes the hidden data invisible. This tool uses LSB (Least Significant Bit) encoding โ€” the last bit of each pixel's red, green, and blue channel is replaced with a bit from your message. Changing a pixel value by ยฑ1 out of 255 is completely invisible to the human eye.

Frequently asked questions

Will anyone be able to tell a message is hidden?

No. LSB steganography changes the least significant bit of each RGB channel โ€” a change of ยฑ1 in a 0โ€“255 value. The difference is completely imperceptible to the human eye and invisible to casual inspection.

Why must I use PNG output instead of JPEG?

JPEG is a lossy format โ€” it slightly alters pixel values when saving to keep the file small. Those small alterations destroy the hidden LSB bits. PNG is lossless and preserves every pixel exactly.

What does the password do?

It XOR-obfuscates the message bytes before embedding them. Without the correct password, the extracted bytes are scrambled and unreadable. Note: this is obfuscation, not military-grade encryption โ€” treat it as a deterrent, not a vault.

How much text can I hide?

About 3 bytes per 8 pixels (one bit per R, G, B channel). A 1920ร—1080 image holds roughly 777,600 bytes โ€” enough for a short novel. A small 400ร—300 thumbnail holds about 45,000 characters.

Can I hide a message in a photo that already has one?

No โ€” encoding overwrites the existing hidden payload starting from the first pixel. Reveal the existing message first, then re-encode both together if you need to chain messages.

Is my image or message stored anywhere?

Never. All processing โ€” encoding and decoding โ€” runs inside your browser using the Canvas API. Your files never touch a server.