Invisible Text

Hide a secret message in an ordinary text with invisible characters, and reveal what a pasted text hides

With one, the message is encrypted (AES-256-GCM): who finds the characters can't read them without it.
How it works
Characters
Four that have no width and draw nothing: zero-width space (U+200B), non-joiner (U+200C), joiner (U+200D) and word joiner (U+2060), each worth 2 bits, so 4 for a byte
Where
In one block after the first space of the text (at its end without one), where they change nothing: between two letters, the joiners would change how Arabic or Indic scripts are drawn
Layout
A byte for the version and the flags (encrypted, compressed), the message in UTF-8, compressed (deflate) when that makes it shorter, then a CRC-32 that tells this tool's characters from others' and a damaged message from a whole one
Password
AES-256-GCM, the key derived with PBKDF2-HMAC-SHA-256 (600,000 iterations, a random 16-byte salt), as in AES Encryption: the salt, the IV, then the ciphertext and its tag
Reveal
Also reads the text hidden in tag characters (U+E0020 to U+E007E, invisible copies of ASCII: how instructions are slipped to AI assistants), the bytes hidden in a run of variation selectors (one per byte, behind an emoji or a letter), and lists every other invisible character with where it is
It hides the message from the eye, not from a tool: Unicode Inspector, a code editor or this tool's Reveal find the characters at once, and anyone with this tool reads a message without password. They survive copy and paste, an email, most chats and documents, but not retyping, a screenshot, a PDF printed, or a site that cleans what's pasted. Some count them in a length limit. Everything runs in your browser: neither the text nor the message leaves this page.