What it does
A hidden message generator hides one piece of text inside another. The visible part — the cover text — stays readable. The secret becomes a sequence of zero-width characters that most editors render as nothing at all. The result can be copied like ordinary text, and the reveal mode can recover the secret from the same browser tab.
This is steganography, not cryptography. The message is concealed by where the characters are, not protected by a key. Anyone who knows the format can decode it, and a text inspector can show that extra characters exist. The tool is for puzzles, playful notes, teaching, and lightweight watermarking. It is not a way to send a password or a confidential document.
How the message is hidden
The secret is converted to UTF-8 bytes, and each byte becomes eight zero-width bits. A zero-width space represents 0 and a zero-width non-joiner represents 1. A short sequence of word-joiner and joiner characters marks the start and the end of the payload. Because UTF-8 is used, the same mechanism works for ASCII, accented letters, emoji, and line breaks.
You can append the payload to the end of the cover text, place it after the first word, or put it at the end of the first line. The revealer scans the whole text for the marker, so the position does not matter. The character count does: the payload adds roughly eight invisible characters per byte of the secret, plus the two fixed markers.
Revealing a message
Switch to reveal and paste the complete text exactly as you received it. The tool looks for the start marker, collects the bits up to the end marker, checks that the bit count is a multiple of eight, and decodes the bytes as UTF-8. If the payload is truncated or contains a character that does not belong, the tool reports the problem instead of guessing.
The most common failure is not a broken decoder. It is a destination that strips invisible characters. Chat apps, rich-text editors, CMS fields, and form validators often normalize text on paste. If the revealer finds no marker, try the original message again and avoid retyping it by hand.
Examples
Cover text
Meet me at the usual place. Bring the folder.With payload
Meet me at the usual place. Bring the folder.Both blocks look the same because the payload has no visible glyphs. The second block is longer by the number of encoded bits. The tool’s statistics panel reports that count, which is the only on-screen evidence that something was added.
Text with payload
Meet me at the usual place. Bring the folder.Revealed message
The blue folder is under the desk.The revealer returns the original UTF-8 string. The cover text is still there in the background; the hidden message is shown separately so you can read it without hunting for invisible characters.
Limits worth knowing
- No confidentiality. Anyone who knows the format can reveal the message. There is no key, no authentication, and no protection against tampering. A changed bit can corrupt the message or produce different text.
- Invisible does not mean undetectable. The payload changes the length and the character inventory. A person with a text inspector, a diff tool, or a script can see that zero-width characters were added.
- Many destinations strip the payload. Social platforms, email clients, and rich-text editors are the usual culprits. Test with the exact app and the exact copy method you plan to use. Plain-text mode is safer than rich text.
- Accessibility matters. Screen readers generally ignore zero-width characters, so a reader may not know a payload exists. Do not use a hidden message to convey information that the visible text does not also provide.
- No recovery. If the payload is stripped, truncated, or normalized, the secret may be unrecoverable. Keep the original cover text and secret somewhere safe before sharing the hidden version.
Page updated