Steganography detector

Drop in a picture to see whether something is hidden in it: a file appended behind the image, text or a file written into the lowest bits of the pixels, or data in see-through pixels. It tells you what was found, where, and what it cannot look for.

Drop a picture to look for hidden data or click to choose · several at once are fine Choose pictures PNG, JPEG, WebP, GIF, BMP and more. The checks run in your browser.

Like every tool on this site, this page also sends a copy of each picture, with its result, to our server: see the privacy policy.

What it checks

CheckWhat it findsHow sure
Behind the pictureBytes after the end of the image (a ZIP behind a PNG, a note behind a JPEG). Names the file type and shows the first bytes.Certain: the bytes are there.
Lowest bits, read backReads the last bit (or two) of each color value in the usual layouts and looks for a known file type or 24+ readable characters.Certain when text or a file comes out. We had no false finds on 208 real and AI pictures.
Lowest bits, statisticsA chi-square test of value pairs: embedded random-looking data evens out the counts of neighboring values.A "maybe". It flagged 5 of 48 AI PNGs and 2 of 66 real photos in our test.
Transparent pixelsFully see-through pixels whose color is not black.Certain, but often harmless (editors leave color there).

How to use it

  1. Drop the picture. Use the original file: a re-save or a chat copy removes most hidden data.
  2. Read the headline: red when something readable was found, amber for "possibly", green for nothing found.
  3. Open what was found: a hex dump with a download button. For other layouts use Extract Hidden Data, and see each bit with the Bit Plane Viewer.

What it cannot find

  • Hiding that needs a key. Tools that scatter the data with a password (steghide and similar) look random without it.
  • Hiding inside JPEG. Tools such as F5 and OutGuess change the JPEG's coefficients. The pixels of a decoded JPEG have lossy noise in their low bits, so for lossy files only the data behind the picture and readable text are checked.
  • Watermarks. Robust watermarks such as Google's SynthID are built to look like noise. Our AI Image Checker reads the Stable Diffusion watermark, not the others.
  • Encrypted payloads look random in the low bits. The statistics may flag them; nothing will read them.

What we tested

We hid payloads in five photos: random bits in every pixel, 20% of the picture, a text message, a small ZIP, plus a ZIP appended behind a PNG and random data in transparent pixels. Every text, ZIP, appended file and transparent payload was found. The statistics flagged 5 of 5 full embeddings and 4 of 5 at 20%, and 1 of 5 clean copies. Read the tutorial and the explainer.

The check runs in your browser. Like every tool here, the page also sends a copy of each picture and its result to our server (see the privacy policy).

Frequently asked questions

Does "nothing found" mean the picture is clean?

It rules out the simple methods only. Keyed hiding, JPEG-domain tools and encrypted payloads can pass.

Why is a JPEG not checked for low-bit data?

JPEG compression rewrites the low bits of every pixel, so they are noise. We still look behind the picture and for readable text.

Why was my clean photo flagged "possibly"?

The statistic also fires on pictures whose values were processed or dithered. It is a maybe, and only readable text or a file is a real finding.