This command line tool allows encoding text into an invisible and zero width subset of Unicode characters.
Specific Unicode symbols may be rendered inconsistently by different programs or platforms.
The set of invisible unicode characters can be adjusted in the source code.
The default set has been tested at PopOS 22.04.
- First, we convert the input text into base
n-1representation. - Then we map each digit
dto thed-thcharacter inside the list of invisible characters. - Finally, we insert between each base
n-1number then-thinvisible character as separator.
Decoding can be achieved by following these steps in reverse.
Using the n-th base instead of just 2 allows a compacter representation.
- python 3.10.6
- tested on Ubuntu 22.04
- Bash scripts require
xclip, on Ubuntu you can install it bysudo apt install xclip
git clone https://github.com/DerBrunoIR/Translatorcd ./Translator
foo@bar:~$ ./write
Some hidden text
❯ stdout copied to clipboard!
foo@bar:~$ ./read
[Ctrl-V]͏͏͏͏͏͏͏
❯ Some hidden textNote
In certain environment, like windows, unicode stdin and stdout can be a problem.
foo@bar:~$ echo "This should be invisible!" | python3 ./cli.py > out.txt
foo@bar:~$ cat out.txt
❯ Start:͏:End # Try to move your cursor through this output.
foo@bar:~$ cat out.txt | python3 ./cli.py -d
>>> This should be invisible!