Funny JS Encryption
Funny JS Encryption that just works! Can also be done on http://www.jsfuck.com/
by Sree K
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<h1>
Input
</h1>
<textarea id="input" rows="5" placeholder="Just start typing" class="form-control"></textarea>
<h1>
Output
</h1>
<pre><code id="output">Output will appear here</code></pre>
<h1>Output
<small>eval()</small>
</h1>
<pre><code id="output_eval">Output will appear here</code></pre>
JavaScript
document.getElementById("input").focus();
function obs(inputstr) {
let mystr = [];
let fal = `(![]+[])`;
let tru = `(!![]+[])`;
let und = `([]+[]+[][[]])`;
let obj = `(typeof [])`;
let numb = `(typeof +[])`;
let stri = `(typeof ([]+[]))`;
let bool = `(typeof ![])`;
let arr = `(([]).constructor.name)`;
let reg = `(RegExp().constructor.name)`
let idk = `([]+[]+([]).constructor)`;
let num = [];
num[0] = `(+[])`;
num[1] = `(+!+[])`;
num[2] = `((+!+[])+(+!+[]))`;
num[3] = `(+!+[]+((+!+[])+(+!+[])))`;
num[10] = `(+[+!+[]+[+[]]])`;
num[100] = `(+[+!+[]+[+[]+[+[]]]])`;
let str = {
'1': `(+!+[]+[])`,
'2': `([]+((+!+[])+(+!+[])))`
};
inputstr.toLocaleLowerCase().toString().split('').forEach( (l, k) => {
switch (l){
case 'a': mystr[k] = `${fal}[${num[1]}]`; break;
case 'b': mystr[k] = `${obj}[${num[1]}]`; break;
case 'c': mystr[k] = `${obj}[${num[2]}*${num[2]}]`; break;
case 'd': mystr[k] = `${und}[${num[2]}]`; break;
case 'e': mystr[k] = `${und}[${num[3]}]`; break;
case 'f': mystr[k] = `${fal}[${num[0]}]`; break;
case 'g': mystr[k] = `${stri}[${num[10]}/${num[2]}]`; break;
case 'h': mystr[k] = `'h'`; break;
case 'i': mystr[k] = `${und}[${num[10]}/${num[2]}]`; break;
case 'j': mystr[k] = `${obj}[${num[2]}]`; break;
case 'k': mystr[k] = `'k'`; break;
case 'l': mystr[k] = `${fal}[${num[2]}]`; break;
case 'm': mystr[k] = `${numb}[${num[2]}]`; break;
case 'n': mystr[k] = `${und}[${num[1]}]`; break;
case 'o': mystr[k] = `${bool}[${num[1]}]`; break;
case 'p': mystr[k] = `${reg}[${num[2]}+${num[3]}]`; break;
case 'q': mystr[k] = `'q'`; break;
case 'r': mystr[k] = `${tru}[${num[1]}]`; break;
case 's': mystr[k] = `${fal}[${num[3]}]`; break;
case 't': mystr[k] = `${tru}[${num[0]}]`; break;
case 'u': mystr[k]...