Steganography

Hide an encrypted message inside a PNG image. The picture looks unchanged.

Source image

How it works

What it does

This tool hides an encrypted message inside a PNG image. The picture looks the same to the eye, but someone with the password can pull the message back out here. It is handy when you want a secret to travel as an innocent-looking image.

An ancient idea

Steganography means covered writing in Greek. Herodotus tells of Histiaeus, who around 500 BC shaved a slave's head, tattooed a message on the scalp and sent him off once the hair had grown back. The German abbot Johannes Trithemius gave the craft its name in his book Steganographia, written in 1499. Invisible ink and microdots continued the tradition, and digital images are its modern form.

How it works

The message is first encrypted with AES-256-GCM, with a key derived from your password with Argon2id (64 MiB of memory, 3 passes). The encrypted bits are then written into the least significant bit of the red, green and blue values of each pixel, starting at the top left. Changing a colour value by one out of 255 is invisible. Each pixel holds 3 bits, so even a small image can carry a long message.

Limits

The hidden data survives only an exact copy of the PNG file. Any resizing, cropping, editing or conversion to JPEG, which most chat apps and social networks do, wipes it out; send the file as a document or attachment, or use Photo cipher instead. The method is simple, and statistical tools can detect that an image carries data, even though they cannot read it without the password. Everything runs in your browser and nothing is uploaded.