1. Home
  2. Developer tools
  3. Image Steganography

Image Steganography

Tuck a short message into the least significant bits of a picture so that it looks unchanged. A second tab reads such messages back out.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Image Steganography

  1. Choose a cover image and type the message.
  2. Optionally add a passphrase to encrypt it first.
  3. Download the PNG, or open it later to extract the message.

Features

  • LSB hiding in red, green and blue values
  • Optional AES-256-GCM encryption
  • 1 or 2 bits per channel
  • Capacity shown before you hide
  • Extraction tab detects the data automatically
  • Nothing leaves your device

Supported formats

Input

  • PNG, JPEG, WebP or other images
  • Message text

You get

  • PNG image carrying the message
  • Extracted text

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Image Steganography is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Hidden data survives only in lossless files: any JPEG recompression, resizing or filter destroys it.
  • Least-significant-bit hiding is easy to detect with statistical tools, so it is not secure on its own; use the passphrase option.

Guide

Hiding text in the pixels of a PNG image

Steganography is the art of hiding that a message exists. Encryption makes content unreadable, while steganography makes it unnoticed. This page uses the simplest technique, known as least-significant-bit hiding. Every pixel in an image stores red, green and blue values from 0 to 255, and changing the lowest bit of a value shifts the colour by a single step, far below what an eye can see. A few thousand such bits are enough for a short note.

How the hiding works

The page decodes your cover image into pixels and walks through them in order. For each colour channel it replaces the lowest bit with the next bit of the payload. The payload is a four-letter marker, a length and then your text, so that the extraction tab can recognise a picture made here and know where the message stops. The result is saved as a PNG, which is lossless and keeps every bit exactly as written.

Capacity

At one bit per channel an image holds three bits per pixel. The built-in sample image is 320 by 200 pixels, which is 64,000 pixels and about 23 KB of room, shown on the page before you hide anything. The sample message uses 34 bytes of that. Choosing two bits per channel doubles the capacity. If the message does not fit, the page says so instead of truncating it.

Using a passphrase

A hidden message with no protection is only obscure. Anyone who knows the technique can pull the bits out and read them. Adding a passphrase makes the page encrypt the text with AES-256-GCM, using a key stretched from the passphrase with PBKDF2 at 600,000 iterations, before hiding the ciphertext. Extraction asks for the same passphrase and reports a failure if it is wrong or the data was changed.

Why sharing breaks it

Most messaging apps and social networks re-encode uploaded pictures, often as JPEG, and often at a smaller size. Lossy compression rewrites pixel values, which wipes out the low bits. Even a screenshot of the image loses the message. Send the PNG as a file or as a document attachment, and extract on the other side from that exact file.

Limits

Least-significant-bit hiding is well known and can be detected by simple statistics, so do not rely on it against a determined analyst. Use it for puzzles, watermarks, teaching and games, and add a passphrase for anything private. Everything happens in your browser, and the cover image and message are not uploaded.

Detecting hidden data

The same technique that hides a message can be turned around to look for one. A cover image with a message in its low bits shows slightly unnatural statistics: the counts of even and odd values in each colour channel become too equal. Analysts use that, and visual attacks that display only the low bit plane, to flag suspicious pictures. A message that fills only a fraction of the capacity is harder to find than one that uses it all, which is another reason to keep messages short and to encrypt them.

Checked against the current version of the Image Steganography on .

Frequently asked questions

What is the difference between 1 bit and 2 bits per channel?

Two bits double the room for hidden data but change each colour value by up to 3 instead of 1, which makes the change easier to spot in smooth areas and easier for statistical tools to detect.

Can I hide a file instead of text?

This page hides text. To hide a file, convert it to Base64 first and paste the result, keeping within the capacity shown, or encrypt it with the AES tool and hide the Base64 output.

Why did my hidden message disappear after sharing the picture?

Messaging apps and social networks recompress images, usually as JPEG, which changes pixel values and destroys least-significant-bit data. Send the PNG as a file or document.

Is hiding a message the same as encrypting it?

No. Steganography hides that a message exists, while encryption makes its content unreadable. For anything sensitive use the passphrase option so the hidden data is encrypted too.

Keep working with the result

openWorkstand also includes a free workspace with documents, spreadsheets, tasks, projects and a calendar that save to a folder on your computer.