Skip to content

Encode JavaScript into invisible Unicode characters and decode/eval it back.

Notifications You must be signed in to change notification settings

atdma/invisible-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Invisible Unicode JavaScript Encoder/Decoder

A JavaScript library that encodes JavaScript code into invisible Unicode characters, making it appear as empty or whitespace while preserving full functionality.

Features

  • Encode: Convert JavaScript code into invisible Unicode characters
  • Decode: Convert invisible Unicode characters back to JavaScript code
  • Decode and Eval: Decode and execute JavaScript code in one step

Usage

Node.js

const { encode, decode, decodeAndEval } = require('./invisible-encoder.js');

// Encode JavaScript code
const code = 'console.log("Hello, World!");';
const encoded = encode(code);
console.log('Encoded:', encoded); // Appears invisible/empty

// Decode back to original code
const decoded = decode(encoded);
console.log('Decoded:', decoded); // "console.log("Hello, World!");"

// Decode and execute
const result = decodeAndEval(encoded);
// Executes the code and returns the result

Browser

<script src="invisible-encoder.js"></script>
<script>
    const code = 'alert("Hello!");';
    const encoded = invisibleEncoder.encode(code);
    invisibleEncoder.decodeAndEval(encoded); // Executes the code
</script>

How It Works

The encoder uses invisible Unicode characters:

  • Zero Width Space (U+200B)
  • Zero Width Non-Joiner (U+200C)
  • Zero Width Joiner (U+200D)
  • Left-to-Right Mark (U+200E)
  • Right-to-Left Mark (U+200F)
  • Word Joiner (U+2060)

The JavaScript code is converted to binary, then each 2-bit chunk is mapped to one of the invisible characters. This allows the code to be completely hidden while remaining fully functional.

Examples

See demo.js for complete examples of encoding, decoding, and executing JavaScript code.

Security Note

This is an obfuscation technique, not encryption. The code can be decoded by anyone who knows the encoding scheme. Do not use this for security purposes.

About

Encode JavaScript into invisible Unicode characters and decode/eval it back.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published