Encode ASCII strings into zero-width unicode characters, and decode back into ASCII

Usage no npm install needed!

<script type="module">
  import hiddencoder from 'https://cdn.skypack.dev/hiddencoder';



Encode ASCII strings into zero-width unicode characters (hiddencoded), and decode back into ASCII


A simple encode-decode tool. Got the idea from @FakeUnicode's tweet, and the great breakdown on Stefan Judis' blog post.

This tool takes an ASCII string and encodes it into zero-width unicode characters, which won't show up when printing the unescaped string (a hiddencoded string). A decode operation is also available.


const {a2h, h2a} = require('hiddencoder');

const hiddenString = a2h("Hidden string");
console.log(`Hidden: ${hiddenString}`);
console.log(`Actual: ${h2a(hiddenString)}`);
// Output:
//   Hidden: 󠅈󠅩󠅤󠅤󠅥󠅮󠄠󠅳󠅴󠅲󠅩󠅮󠅧 <- It's right here, the empty character
//   Actual: Hidden string

Example usage:

Use the example files to encode a file in order to hide its content:

Encode the code in encode.js file by using it on itself

node encode.js encode.js

This will save the encoded output into encode.js.enc, and will seem empty

Decode the content back into readable form by using decode.js

node decode.js encode.js.enc

This will save the decoded output into encode.js.enc.dec