Hide a Message in an Image

Tuck a message into the pixels of a picture, and read it back later.

Runs in your browser Free · no accountFile upload supported

Loading…

About the Hide a Message in an Image converter

A colour value of 137 and a colour value of 136 look identical. That gap is enough to carry information, and enough of it carries a whole message — hidden in a picture that looks exactly as it did before.

This is steganography — hiding something in plain sight rather than locking it away. It writes a message into an image and reads it back out again, entirely on your device, and with a passphrase the message is properly encrypted before it goes anywhere near the pixels.

How a message fits in a picture

Every pixel holds a red, green and blue value from 0 to 255. Changing the lowest bit of each shifts the colour by one step out of 256, which no screen shows and no eye catches. Three bits per pixel adds up quickly: a modest photograph holds hundreds of kilobytes of text.

The transparency channel is deliberately left untouched. It is often uniform across an image, so a change there is far more noticeable, and some tools discard it entirely.

This approach is called LSB steganography, after the least significant bit being used to carry the payload. It is the oldest and simplest technique of its kind, which is both why it is easy to do and why it is easy to detect.

Concealment is not the same as secrecy

Hiding a message this way does not protect it. The method is well known, so anyone who suspects something is there can read it out with the same technique — the message is concealed rather than secret.

A passphrase changes that properly. The message is encrypted with AES-256 first, using a key stretched from your passphrase, so finding the message and reading it become two different problems. A wrong passphrase is rejected outright rather than producing plausible-looking nonsense.

It is fragile, and that matters

The message lives in exact pixel values, so anything that recalculates them destroys it. Saving as JPEG will. So will resizing, cropping, applying a filter, or taking a screenshot.

Most chat apps and social platforms re-encode images on upload, which means a picture sent that way arrives with the message gone. Send the PNG itself as a file attachment, and it survives.

Frequently asked questions

Will the image look different?

No. Each colour value moves by at most one out of 256, which is below what a screen can show and far below what an eye can notice. The page reports how many values were changed so you can see how little was touched.

Why must it be saved as a PNG?

Because PNG is lossless — the pixels come back exactly as they went in. JPEG recalculates them to save space, which would wipe out the message on the way out. You can start from a JPEG; the result has to be a PNG.

My message did not come back. What happened?

Almost certainly the image was re-encoded somewhere between hiding and reading. Sending through a chat app, uploading to social media, screenshotting, resizing or converting all destroy it. Send the PNG file itself, unmodified.

Is this secure?

Only with a passphrase, and then it is the encryption doing the work rather than the hiding. Without one, treat it as a curiosity: anyone who thinks to check can read the message straight back out.

How much can I hide?

Roughly three bits per pixel, so about 375 kilobytes in a 1000 by 1000 image. The page shows the exact capacity once your image is loaded, and warns before you exceed it.

Is my image or message uploaded?

No. The image is read, modified and saved by your own browser, and the encryption happens there too. Nothing is sent anywhere, which is rather the point for something you are trying to keep quiet.