Steganography Text Tool
Hide secret messages inside normal text using invisible characters
Key is mandatory for revealing hidden messages.
Conceal one message inside another
Steganography hides the existence of a message rather than only scrambling it. This tool appends your secret to a piece of normal-looking text as a run of invisible Unicode characters. To a casual reader the result looks identical to the cover sentence, yet the secret can be recovered with the right key. It is a fun demonstration of how much can hide in plain text.
Hiding a message
- Open the Hide Message tab.
- Write the text everyone will see in Visible Cover Text. If left empty, the words Confidential Message are used. The Sample button fills in a quote, a secret and a sample key.
- Type your note in Hidden Secret Message.
- Enter a key in Encryption / Decryption Key. It is required.
- Press Protect Message, then Copy Result.
Revealing it
- Switch to the Reveal Message tab.
- Paste the text containing the hidden data into the box and enter the same key.
- Press Reveal Message. A matching key returns the secret under a success heading; a wrong key produces a warning and garbled characters.
How the hiding works
The secret gets a short signature derived from your key placed in front of it, is combined with the key using a repeating XOR, converted to binary, and then each 0, 1 and space is swapped for one of three zero-width characters: zero-width space, zero-width non-joiner and zero-width joiner. That string is added after the cover text. Because each byte becomes eight invisible characters, even a short secret makes the pasted text noticeably longer in byte terms.
Reasonable uses
- Marking a copy of a document so you can prove where a leaked snippet came from.
- Puzzle hunts and classroom demonstrations of Unicode tricks.
- Sending a private note in a public chat as a game between friends.
Serious limitations
Do not treat this as real encryption. XOR with a repeating key is easy to break, and the embedded signature gives an attacker a check for guessed keys. Many apps, forms and social networks strip zero-width characters when text is pasted or saved, which destroys the hidden data, so test the round trip in the channel you plan to use. The binary conversion assumes each character fits in one byte, so use plain Latin text for both secret and key; other scripts and emoji may not decode correctly. Anyone who knows to inspect the text for invisible characters can spot that something is hidden, even without the key. Processing happens in your browser.
Related Tools
Related Tools