Settings

Hide a message inside an image PALIMPSEST

Hides a text message in the pixels of an image, or reads one.

PALIMPSEST is obfuscation, not encryption. Save the result as a PNG, never a JPEG.

Read a hidden message

Hide a message

How it works

How the message is hidden, and why PNG

The text goes into the least significant bit of the colour channels. The lowest bit of a pixel's red value changes that red by one two-hundred and fifty-sixth, which no eye and no monitor can show, so an image can carry thousands of characters while looking identical.

Save the result as a PNG, never a JPEG, and the reason is not a preference. JPEG is lossy: it throws away detail it judges invisible, and the least significant bits are precisely what it discards first. Re-encoding a carrier image as JPEG destroys the message completely. Not garbles it, destroys it. PNG stores the pixels exactly.

That also rules out most places you would want to put an image. Practically every social platform, messaging app and forum re-encodes uploads. An image posted to one of them arrives with the message gone, and it will look like the tool failed rather than like the platform worked normally.

Obfuscation, not encryption

The page says so above the controls. Least-significant-bit hiding is the first thing any analyst checks for and it is trivially detectable: the statistics of the low bits in a natural photograph are not the statistics of text, and a heat map of modified pixels shows the payload as a rectangle. STEGOSCAN, on this site, walks an image block by block looking for exactly this sort of thing.

So this hides a message from somebody who is not looking. It hides nothing from somebody who is. If it must stay secret once found, encrypt the text first and hide the ciphertext; PHANTOM does that in one step, encrypting with AES-256-GCM before it writes anything into the image.

Capacity, and what gives it away

Roughly one bit per colour channel per pixel, so a modest photograph holds a surprising amount of text. Using more of that capacity makes the result easier to detect, and a large payload in a small image changes the low-bit statistics enough that an automated check finds it without trying.

A flat or synthetic image (a screenshot, a logo, a gradient) is a poor carrier for the same reason: smooth regions have predictable low bits, so noise in them stands out. A detailed photograph with texture is the better choice.

Doing this often? The OBSCURA Sovereign Suite splits a secret and hides the pieces in pictures, so no single picture gives it away. On its own, US$4 a month; with everything else, US$9 a month or US$79 a year. 7 days free.