Steganography Demo

Hide secret messages in plain sight — inside images or text

Image (LSB)
Text Steganography

How Image LSB Steganography Works

Encoding: Your message is converted to binary. Each bit replaces the least significant bit of one color channel (R, G, or B) across successive pixels. A 32-bit length header is stored first. The change to each pixel is at most ±1 — invisible to the naked eye.

Decoding: The LSBs are read back in order. The length header tells how many bytes to extract, then those bits are reassembled into text.

Capacity: Each pixel stores 3 bits (one per RGB channel). A W×H image holds floor(W×H×3/8) - 4 bytes.

Encode Hide a message in an image

Drag & drop an image here

Decode Extract a hidden message from an image

Drag & drop a stego image here

How Text Steganography Works

Instead of hiding data in pixels, text steganography hides messages within ordinary-looking text. The cover text reads naturally, but carries a hidden payload. Select a technique below to try it out.

Zero-Width Chars Invisible characters between letters

Unicode defines characters with no visible width: zero-width space (U+200B) and zero-width non-joiner (U+200C). We encode each bit of the secret as one of these characters and insert them between the letters of cover text. The text looks identical but its byte content is different. This is the most practical text steganography method — high capacity and truly invisible.

Encode


Decode

Homoglyphs Visually identical character swaps

Many Unicode characters look identical but have different code points. For example, Latin a (U+0061) and Cyrillic а (U+0430) are visually indistinguishable in most fonts. By choosing Latin = 0 or Cyrillic = 1 for each eligible letter, we can encode a binary message. The text reads normally but carries hidden bits.

Codebook:

LetterBit 0 (Latin)Bit 1 (Cyrillic)
aa U+0061а U+0430
cc U+0063с U+0441
ee U+0065е U+0435
oo U+006Fо U+043E
pp U+0070р U+0440
ss U+0073ѕ U+0455
xx U+0078х U+0445
yy U+0079у U+0443

Encode


Decode

Synonyms Word choice encodes hidden bits

Each pair of synonyms represents a single bit: one word = 0, the other = 1. By writing a sentence and choosing specific words from the codebook, you can spell out a binary message. This is lower capacity but fascinating — the secret is in the word choice itself.

Codebook:

Bit 0Bit 1Bit 0Bit 1
biglargebeginstart
fastquickendfinish
happygladsmalltiny
sadunhappysmartclever
harddifficulteasysimple
nicepleasantprettybeautiful
coldfreezinghotboiling
oldancientnewfresh
loudnoisyquietsilent
weirdstrangesurecertain
woodsforestroadpath
househomerockstone
creekstreamshipvessel

Encode


Decode