Skip to content
All tools
SteganographyRuns locallyNo account

Zero-width character and text steganography decoder

Reveal messages hidden in zero-width Unicode characters, trailing whitespace, and homoglyph substitution - text steganography that survives copy-paste.

Open in ctfpal

Some Unicode codepoints render as nothing at all. Zero-width space (U+200B), zero-width non-joiner (U+200C), zero-width joiner (U+200D), and the word joiner (U+2060) can be interleaved into ordinary text and are invisible in every editor - but survive copy-paste, which makes them a real channel rather than a curiosity.

What makes this category distinct is that the carrier is text rather than a file, so it survives everything a file would not: pasting into a chat message, quoting in an email, copying out of a PDF. A challenge that hands you a paragraph and nothing else is very often this, because there is nowhere else for the data to be.

Three text-stego techniques

  • Zero-width binary. Two invisible characters stand for 0 and 1; the bit stream decodes to ASCII. Look for an unexpectedly large byte count on a short-looking string.
  • Trailing whitespace. Spaces and tabs at the end of lines encode bits. Invisible in most views, and the same trick the Whitespace esolang uses.
  • Homoglyphs. Cyrillic а (U+0430) instead of Latin a (U+0061). Visually identical, different bytes - so the substitution pattern carries the message.

Part of a module

8. Steganography

Sweep an image, audio file, or paragraph for hidden data across the whole technique space rather than guessing one method.

Practise on real challenges

Related tools