Secret Photos.

Hide an encrypted message or file inside an ordinary photo. The image looks identical and the file metadata is untouched. The hidden payload is itself deniably encrypted, so even if statistical analysis flags an embedding, the recovered bytes still decrypt to a decoy. Locked with a password, runs entirely in your browser.

Drop a photo here

or click to choose. PNG works best.

Selected carrier image
You'll download a PNG image with your secret hidden inside. The image will look identical to your original.

✓ Message hidden

Your message is encrypted and hidden. The photo looks identical to the original. Send it however you like. The recipient visits deny.sh/stego-app, drops the photo in, and enters the password.

Original
Original carrier image
With hidden message
Carrier image with hidden payload
Download photo
Need an API for this? Steganography API →

Drop a carrier photo here

or click to choose. PNG works best. Larger images = more capacity.

Selected carrier image

Choose a file to hide

Any file type, up to 300 KB

📎
Your file will be AES-256 encrypted and embedded in the image pixels. The recipient needs the password and deny.sh/stego-app to extract and download it.

✓ File hidden

Your file is encrypted and hidden inside the photo. It looks identical to the original. The recipient uses the Reveal tab with the password to extract and download the file.

Original
Original carrier image
With hidden file
Carrier image with hidden encrypted payload
Download photo
Need an API for this? Steganography API →

Drop the secret photo here

or click to choose.

Selected image for extraction

✓ Message revealed

Need an API for this? Steganography API →

How it works

1

Pick a photo

Any image you have on your device. PNG works best. Larger images carry more hidden data.

2

Encrypt and embed

Your message or file is AES-256 encrypted, then woven into the lowest bits of the image pixels. The photo looks unchanged to anyone who opens it.

3

Share the photo

Send it like any picture. Only someone with the password and this page can reveal what's inside.

When you'd use this

  • Crossing a border. Phones get inspected. An encrypted file is a flag. A holiday snap isn't.
  • Sending a seed phrase. Embed a wallet recovery phrase into a photo, then send the photo over any channel. The image looks like nothing.
  • Plausible deniability for the file itself. Encrypted blobs invite questions. Photos don't. The hidden data is statistically indistinguishable from random noise in normal image content.
  • Layered defence. Combine with deniable seed-phrase encryption: hide a control file inside a photo. Two layers, two kinds of cover.

One caveat: social platforms (Instagram, WhatsApp, X) re-compress images, which destroys the hidden payload. Send the original PNG over email, cloud drive, or messaging that preserves files.

AES-256 encrypted
Runs in your browser
No data sent anywhere