Want to just try it? Hide text in your own photos, in the browser — the secret is encrypted and split across several images, nothing is uploaded, and you can watch the whole thing happen before reading a word of this. Then come back for what it does and does not survive, which is the part that decides whether it is the right tool for you.

(New to the vocabulary? Start with Steganography vs Cryptography.)

There are two fundamentally different ways to make a photo carry a message, and almost every disappointment people have with “hide text in image” apps comes from using one where they needed the other.

Way one: put the secret in the pixels

A digital photo is a grid of numbers. Change the last bit of a colour value — 182 becomes 183 — and no eye can tell. LSB steganography uses those last bits as storage: a 12-megapixel photo has room for a few megabytes of data that is invisible by construction.

Done properly, the text is encrypted first. Ciphertext looks like random noise, and random noise in the lowest bits looks like a camera sensor. Someone who suspects the photo finds nothing readable; someone who does not suspect it sees a harbour at dusk. That is what StegoSafe does, entirely on your device, with no server anywhere: AES-256-GCM, a key stretched from your passphrase, optionally split across several photos so that any three of five recover the secret. The long version is in What Happens When You Hide a Secret in a Photo.

What it is good for: keeping something for yourself, or handing it to someone in a way you control. A seed phrase in your camera roll. A recovery code in a family album. A file you AirDrop or put on a USB stick. Nothing to subpoena, nothing to breach, works offline forever.

Where it breaks: the moment anything rewrites the pixels.

What you do with the photoHidden data
Keep it, copy it, AirDrop it, back it upsurvives
Send it as a file / document / originalsurvives
Send it as a normal photo in WhatsApp, WeChat, Instagram, Messengerdestroyed — recompressed to JPEG
Screenshot it, crop it, apply a filter, convert PNG → JPEGdestroyed

Chat apps shrink and re-encode images to save bandwidth, and lossy compression throws away exactly the fine detail where the data lives. This is not a bug in any one app; it is what JPEG is for. Two rules cover nearly everything: keep it PNG, send it as a file.

Way two: put a reference in the photo, and the secret somewhere else

A robust watermark works the other way round. Instead of touching single bits, it spreads a faint pattern across the whole image, designed to be recoverable after resizing, recompression and a trip through a social network. The price is capacity: a robust watermark carries a handful of bytes, not a message.

A handful of bytes is enough for an identifier. That is how WaxSeal sends a secret through a photo that will be recompressed:

  1. The sender types the secret. It is encrypted on their device for the devices of the chosen recipients, whose keys live in the Secure Enclave.
  2. The ciphertext goes to the organisation’s vault, which cannot read it.
  3. The photo receives an eight-byte watermark that names the seal. Eight bytes — the secret is not in the photo.
  4. The photo is sent as an ordinary photo, in whatever chat the recipient uses. It survives the compression because the watermark was built to.
  5. The recipient’s app reads the watermark, fetches the ciphertext, checks that this device is allowed, and decrypts after one biometric confirmation.

Because the content lives in a vault and not in the pixels, the sender keeps control after sending: burn after reading, read limits, expiry, a PIN, and revocation — the photo is still in the chat, and it simply stops opening. All of those stop further authorised opening; none can un-show what the recipient already read. More on that trade in A Photo You Can Take Back.

What it is good for: organisations sending a credential or a confidential note to a specific person through public channels, and needing to take it back.

What it costs: there is a server in the picture (one that holds only ciphertext), and both sides need the app. It is not the tool for a secret you want nobody and nothing else to ever be involved in.

A secure linksenderhttps://…recipientanyone who obtainsthe linka preview bot or mailscanner — firstspendsyour viewA photo carrying a referencesendera photonamed devicesopen itforwarded: opens for nobodyno link for a bot to fetchPossession of the image is notpossession of the secret.
Why the watermark route carries a reference rather than the secret: the reference can be governed, a link cannot.

The third way that is not a way: metadata

You can type text into a photo’s EXIF description. Every photo viewer shows it, and most platforms strip it on upload. It is a label. Do not use it for anything you would mind seeing on a screen.

How to choose

You want to…Use
keep a secret for yourself, offline, with no account and no serverpixels — StegoSafe
survive losing a device, or split trust between peoplepixels + Shamir splitting — StegoSafe, five photos, any three
send through WhatsApp / WeChat / Telegram as a normal photoa reference in the photo — WaxSeal
let it be opened once, expire it, or revoke it after sendinga reference in the photo — WaxSeal
hand over a file in person or by AirDropeither; pixels are simpler

The two are not rivals. One keeps the whole secret in the image and trusts nobody; the other keeps only a name in the image so that the secret can be governed. The mistake is expecting pixel steganography to survive a messenger, or expecting a watermark to hold a paragraph.

If you want to try the second approach, WaxSeal’s personal demo runs on one iPhone, iPad or Mac with no account: hide a test message in a photo, send the photo to yourself through any chat, save it back, and open it.

Frequently asked questions

Can you really hide a message inside a photo?
Yes. Every pixel has a little room that the eye cannot see. Steganography tools write encrypted data into the least significant bits of the pixel values; the photo looks identical and opens in any viewer. With a good tool the hidden data is encrypted first, so even someone who suspects it cannot read it.
Why did my hidden message disappear after I sent the photo in a chat?
The app recompressed the image. WhatsApp, WeChat, Instagram and most messengers resize and re-encode photos as JPEG, which rewrites exactly the fine detail where the data was stored. Send the image as a file or document (original quality), AirDrop it, or keep it as a PNG in storage you control.
Does metadata (EXIF) count as hiding text in an image?
It is the easiest place to put text and the first place anyone looks. Most platforms strip metadata on upload, and any photo viewer shows it. It is a label, not a hiding place.
What is the difference between steganography and a watermark?
Capacity versus robustness. Pixel-level steganography can carry kilobytes but is fragile: one recompression and it is gone. A robust watermark is spread across the whole image so it survives resizing and compression, but it carries only a handful of bytes — enough for an identifier, not for a message.

Keep reading

  • Steganography vs Cryptography: What Is the Difference?Cryptography makes a message unreadable. Steganography makes it unnoticed. They solve different problems, fail in different ways, and work best together — here is the difference in plain English, with the cases where each one is the wrong tool.
  • Does WhatsApp or WeChat Destroy Hidden Data in Photos? We Tested Every Major Chat AppWeChat is the internet's byword for brutal photo recompression — and WaxSeal's mark still opens after it, along with WhatsApp, Telegram, Signal, iMessage, Instagram, Weibo and more. Only the recipient's approved device, behind their own Face ID or Touch ID, can open it; keys never leave the Secure Enclave.
  • A Photo You Can Take BackStegoSafe hides a whole secret inside a photo and never lets it near a server. WaxSeal does something that sounds contradictory: it sends a secret in a photo and lets the sender revoke it later. Here is how both can be true, what the vault actually holds, and why a four-digit PIN is not the joke it looks like.

StegoSafe is a private recovery vault for seed phrases, recovery codes and private keys, encrypted inside ordinary photos. Protect them with Face ID or Touch ID, or split one secret across several photos so no single copy is enough. iPhone, iPad and Mac — one purchase, no account, no cloud.

Buy StegoSafe — $49.99

WaxSeal sends a secret through any chat and keeps you in control after it leaves. Only approved recipient devices can open it; revoke future access, set an expiry, limit reads or require a PIN — even after the photo has been sent. Free app; recipients are always free.

Try WaxSeal on this device — free