Если вам по какой-то причине нужно замаскировать код скрипта, то обфускатор Horrible.js лучше всех справится с задачей, он превращает код Javascript в абсолютно нечитаемое месиво.
Можно установить последнюю версию:
git clone git@github.com:TShadwell/horrible.js.git
Или воспользоваться онлайновым конвертером.
Автор обфускатора основательно подошёл к делу. При компиляции кода используются две функции, у каждой из которых может быть два аргумента.
code.compileToString()
используется для обфускации строк.
code.compile()
используется для обфускации всей программы, которая сохраняет работоспособность.
Вдобавок, можно использовать объект code
для компиляции всего кода с помощью и code.compileToString()
, и code.compile()
.
Степень обфускации указывается с помощью параметра window.horror
(фактор ужаса). На втором уровне «ужаса» кодируются ещё и числа, а на третьем — и числа, и коды символов (charcodes).
Компилируемый код:
compile("console.log('test')","$")
Результат:
=String.fromCharCode(109,112,40,34,46,103,39,41,44,36);_="constructor";_[_][_](([![]]+{})[+!+[]+[+[]]]+([]+[]+{})[+!+[]]+[0]+[1]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[2]+[3]+([![]]+{})[+!+[]+[+[]]]+([]+[]+{})[+!+[]]+([]+[]+[][[]])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([]+[]+{})[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[4]+(![]+[])[!+[]+!+[]]+([]+[]+{})[+!+[]]+[5]+[2]+[6]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[6]+[7]+[3]+[8]+[3]+[9]+[3]+[7])();