Перейти к содержанию

Обфускатор JavaScript

Преобразуйте исходный код JavaScript в закодированный шестнадцатеричной eval(unescape(...)) фрагмент, который скрывает код при беглом взгляде.

Входные данные
Выходные данные

Обфускатор JavaScript

Вставьте исходный код JavaScript, и этот инструмент перепишет его в одну строку, закодированную в шестнадцатеричном формате, которая переоткомпилируется и выполняется с помощью eval(unescape('...')). Это классический трюк "базовой обфускации": каждый символ вашего кода становится последовательностью %XX (или %uXXXX для символов за пределами первых 256 кодовых точек), поэтому исходный код не читается с первого взгляда — нет имён переменных, нет строковых литералов, нет видимых комментариев.

По умолчанию вывод обёрнут в самовыполняющуюся функцию, (function(){eval(unescape('...'))})();, поэтому вы можете поместить результат прямо в тег <script> или в другой файл и он запустится сразу — точно как оригинал. Отключите "Обернуть в самоисполняющуюся функцию", если вам нужен простой оператор eval(unescape('...')); вместо этого, например, для встраивания в функцию, которой вы уже управляете.

Это обфускация, а не шифрование или безопасность: unescape() и eval() видны на выводе, а декодирование шестнадцатеричной строки обратно в исходный код — это одна операция для любого смотрящего — консоль браузера делает это так же быстро, как вы можете вставить. Используйте это как способ предотвращения случайного копирования или скрытия фрагмента от быстрого просмотра источника, а не как способ защиты секретов, ключей API или чего-либо, что действительно должно оставаться конфиденциальным.

Всё работает локально в вашем браузере. Код, который вы вставляете, никогда не загружается и не отправляется никуда, поэтому безопасно обфусцировать ваши собственные или неопубликованные скрипты. Счётчик под выводом показывает, сколько символов вошло, сколько вышло и сколько байтов было закодировано в шестнадцатеричном формате, поэтому вы можете увидеть увеличение размера перед копированием или загрузкой результата.

FAQ

Это настоящая безопасность или код можно расшифровать?
Это не безопасность. Любой может запустить unescape() на строку внутри вывода и получить исходный код в один шаг — это только скрывает код от беглого взгляда, а не от того, кто действительно ищет.
Будет ли обфусцированный код вести себя точно как оригинал?
Да. eval(unescape('...')) восстанавливает и выполняет точный оригинальный исходный код, символ за символом, включая пробелы, разрывы строк и содержимое строк.
Что делает "Обернуть в самоисполняющуюся функцию"?
Он обёртывает вызов eval(unescape('...')) в (function(){...})(); чтобы результат выполнялся сразу как самостоятельный оператор. Отключите его, если вы хотите поместить вызов eval(unescape('...'); внутри собственной функции или области видимости.
Работает ли это на минифицированном коде?
Да. Вы можете обфусцировать любой текст JavaScript, минифицированный или нет — инструмент трактует ввод как простой текст и кодирует его в шестнадцатеричном формате символ за символом, поэтому минификация сначала (с помощью минификатора CSS/JS) только делает закодированный вывод короче.
Мой исходный код загружается куда-нибудь?
Нет. Обфускатор работает полностью в вашем браузере — код, который вы вставляете, никогда не покидает ваше устройство.