Short answer: send a photo the normal way on WhatsApp, Telegram, WeChat, WeChat Moments, iMessage or Instagram and the app recompresses it — a re-encoded, resized JPEG. That recompression destroys ordinary hidden data, because classic steganography lives in the pixel bits the re-encode overwrites. The usual fix is to send the image as a file/document so the original bytes survive.

WaxSeal is built for the other case — where you want to just send the photo normally and have it still work. So we tested exactly that: the normal, compressed “send as photo” path on every major chat app. Here is what survived.

The same send path, taken twicethe normal “send photo” button — resize + a fresh JPEGTHE PLATFORMresize to ~1080–2560 pxre-encode as JPEG ~70–85%server-side — not your phone,and not something you can switch offOrdinary hidden data (LSB)the secret itself is written intothe lowest bit of each pixelexactly the bits a re-encode rewritesnothing arrivesthe payload is overwritten —what is left reads as noiseA WaxSeal photocarries a short sealed reference,as a robust watermarkthe secret is encrypted elsewhere —it never travels in the imageit still opensthe mark comes through intactand only on an approved device,released by that owner’s Face ID14 platforms tested this way — all survivedWhatsApp · WeChat · WeChat Moments · Telegram · Signal · iMessage · Instagram · WeiboFacebook Messenger, feed and cover photo · Pinterest · SlackScoped to compression and resizing. A crop, a screenshot or paint over it defeats any photo-borne mark.
Two photos, one route. The re-encode that destroys an ordinary hidden payload leaves a robust mark readable — which is why one of them still opens at the other end.

Why the normal photo path kills hidden data

Ordinary image steganography (LSB — least-significant-bit) hides your secret in the lowest bits of the pixel values. It is invisible, and it is fragile: any re-encode rewrites those bits. When a chat app takes your PNG, resizes it to ~1600–2560 px on the long edge and saves it as a fresh ~70–85% JPEG, the hidden bits are gone. This is why “hide data in a photo” tutorials quietly tell you to send the result as a document, never as a photo.

That works, but it depends on the sender remembering to bypass the normal path every time — and on a recipient who won’t just forward it as a photo. It is a workaround, not a property.

What WaxSeal does differently — and why it’s a different class

Surviving compression is the visible part. The reason it matters is what sits behind the mark. WaxSeal does not put the secret in the pixels at all. The photo carries only a small sealed reference, embedded as a robust watermark built to survive the compression and resizing chat platforms apply. The secret itself is encrypted and never travels in the image. That separation is what makes the rest possible:

  • The keys live in the chip, and never leave it. Every device’s private keys are generated and used inside Apple’s Secure Enclave — the hardware security chip. Private-key operations happen inside the hardware boundary; the key is never exported, never synced, never seen by us or by the vault. There is no key sitting in a file to steal.
  • Asymmetric, wrapped per recipient. Each approved recipient device gets the content key wrapped to its own public key (HPKE / RFC 9180, over the Secure Enclave’s own ECDH). The vault stores only ciphertext and opaque wrapped keys; it cannot decrypt anything, and it cannot add a recipient without a detectable break of a sender signature.
  • Only the intended recipient’s device can open it — and only they can trigger it. Access is bound to the recipient’s registered device, and opening requires Face ID or Touch ID to release that device’s Secure Enclave key locally, on that device. Their biometric never leaves the phone and never reaches us — we don’t hold, transmit or match a face; the biometric is simply the local switch that unlocks the hardware key. Wrong device, or the right device without the owner’s Face ID, opens nothing.
  • Content encryption is AES-256-GCM, with each recipient’s key wrapped over the Secure Enclave’s own P-256 key agreement (HPKE). AES-256 is the part that stays hard even against a future quantum attacker; the key exchange is P-256 today because that is what runs inside Apple’s hardware and keeps the private key on the chip. A post-quantum key-exchange layer is something we intend to add, without putting a version number on it here — we would rather ship the hardware-bound guarantee now, and add post-quantum deliberately when it can be done without giving up the Secure Enclave, than claim a resistance the current suite doesn’t have.
  • You keep control after it leaves your hands. Revoke, set an expiry, cap the number of reads, or require a PIN — even after the photo has been sent. These stop future authorized opens; they cannot un-show what a recipient has already opened and screenshotted, and we don’t pretend otherwise.

The practical consequence: you send the photo the normal way, on whatever app you already use, and only the person you chose — on the device you approved, behind their own Face ID — can ever open it. No “send as file” ritual, no link for a scanner to fetch, no plaintext anywhere but on the two ends.

The test matrix

Method: seal a photo in WaxSeal, send it through each app on its default “send photo” path (the one that recompresses), then open the received image on an approved recipient device.

✓ survives = the received, recompressed photo still opened on the recipient device.

PlatformSend path testedResult
WhatsAppnormal “send photo” (recompressed)✓ survives
Telegramnormal “send photo” (recompressed)✓ survives
WeChat — 1:1 chatnormal “send photo”✓ survives
WeChat — group chatnormal “send photo”✓ survives
WeChat Moments (朋友圈)posted, then saved back✓ survives
iMessage (inline photo)normal inline photo✓ survives
Instagram — feed postposted, then saved back✓ survives
Weibo (微博)posted, then saved back✓ survives
Signalnormal “send photo”✓ survives
Facebook Messengernormal “send photo”✓ survives
Facebook — feed postposted, then saved back✓ survives
Facebook — cover photoset as cover, then saved back✓ survives
Pinterestpinned, then saved back✓ survives
Slacknormal “send photo”✓ survives

Every “✓ survives” row above is a photo sent the normal, compressed way — not sent as a file. That is the whole point: with ordinary hidden data those same sends would have destroyed the payload.

The row that matters most is WeChat. WeChat, and WeChat Moments (朋友圈) above all, is the internet’s byword for brutal image recompression — it shifts colours, turns gradients into visible banding, evaporates fine detail, and compresses harder the larger your image is. Developers have written whole open-source libraries and “survives WeChat’s re-compression” tools for the sole purpose of getting an image through it intact. Weibo, Instagram feed and Facebook feed posts are in the same brutal class — public-feed uploads are where recompression is worst. Those are exactly the platforms that shred ordinary hidden data — and they are exactly the ones WaxSeal’s mark came through. If it survives WeChat Moments, the gentler one-to-one chats are the easy case.

The honest boundary

This is about compression and resizing — what a chat platform does to a normally-sent photo. It is not a claim that the mark survives anything: crop the image down, screenshot it and re-share the screenshot, or deliberately paint over it, and you are past what any photo-borne mark can carry. WaxSeal’s guarantee is scoped to what actually happens to a photo in normal use on these platforms, which is exactly compression and resizing.

Two more things worth stating plainly, because the short version would be false:

  • An interceptor on the wire sees an ordinary photo and some metadata — no plaintext — but they do see that a photo was sent.
  • Revoking, expiring or read-limiting stops future authorized opens. It cannot un-show what a recipient already opened and screenshotted.

When to use which

  • Sending a secret to specific people, through the chat you already use, and keeping control after it leaves → that’s WaxSeal. Send the photo normally; only approved devices open it; revoke or expire it later.
  • Keeping your own long-term secrets (seed phrases, recovery codes) hidden in photos on your own devices → that’s StegoSafe, a personal vault. There the advice is the opposite of this article: keep the images lossless (original/file transfer) and split one secret across several photos, because a personal vault is for keeping, not for sending through chat.

WaxSeal turns an ordinary photo into a device-bound delivery channel — send it through any chat, and only approved recipient devices can open it. See how it works.

Frequently asked questions

Does WhatsApp destroy hidden data in a photo?
For ordinary LSB steganography, yes. WhatsApp recompresses a normally-sent photo (re-encoded JPEG, resized), and that re-encode rewrites the very pixels the hidden bits live in, so a naive hidden payload is destroyed. The classic workaround is to send the image as a Document instead of a photo, which delivers the original bytes untouched. WaxSeal takes a different route: it marks the photo with a robust watermark built to survive the normal compressed send, so you don’t have to remember to send as a file.
Which chat apps recompress photos and which keep the original?
As a rule, the default ‘send photo’ path recompresses on every major platform — WhatsApp, Telegram, WeChat, WeChat Moments, iMessage, Instagram and Weibo all re-encode and resize a normally-sent image. Most of them also offer a ‘send as file / document / original’ path that preserves the original bytes. The recompression is a server-side property of the platform, not of your phone, so it happens regardless of whether you send from iPhone or anything else.
How does WaxSeal survive compression when normal hidden data doesn't?
Ordinary steganography hides the secret in the least-significant bits of the pixels, which any re-encode overwrites. WaxSeal does not put the secret in the photo at all — the photo carries only a small sealed reference, embedded as a robust watermark designed to survive the compression and resizing common chat platforms apply. The encrypted content lives in a vault and is released only to approved recipient devices. So the normal, compressed ‘just send the photo’ path still works.
Can I just send the photo normally, or do I have to send it as a file?
With WaxSeal, send it normally. The whole point of the robust watermark is that you don’t have to use the ‘send as file’ escape hatch — the mark comes through the standard compressed photo path on the apps we tested. With plain steganography you must send as a file/document, because the normal photo path will destroy the payload.
How does WaxSeal make sure only the right person can open it?
Access is bound to the recipient’s registered device, not to a password that can be shared or a link anyone can open. Each approved device gets the content key wrapped to its own public key, and opening requires Face ID or Touch ID to release that device’s key inside Apple’s Secure Enclave — locally, on that device. The private keys never leave the chip, the biometric never leaves the phone, and the vault only ever holds ciphertext it cannot decrypt. You can also revoke, expire or read-limit a seal after sending, which stops future opens (it cannot recall what was already read).

Keep reading

  • How to Hide Text in an Image: Two Ways, and When Each One BreaksClassic steganography writes your encrypted text into the pixels — perfect offline, destroyed the moment a chat app recompresses the photo. A robust watermark survives WhatsApp but only carries a few bytes. Here is how both work, what each is good for, and how to choose.
  • Is It Safe to Send a Password over WhatsApp?In transit, yes — WhatsApp messages are end-to-end encrypted. The risk is everything after delivery: the chat history, the backups, linked devices, lock-screen previews and whoever holds the other phone next year. Here is what is actually exposed, how to reduce it, and what to use when the password matters.
  • How to Send Bank Details Securely (The Risk Isn't What You Think)Your account number isn't really a secret — it's on every invoice you send. The danger is someone changing it in transit. How to send and receive them safely.

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