Что делает этот инструмент
Этот обфускатор разбирает ваш код с помощью acorn, строит дерево синтаксиса, применяет несколько структурных преобразований и заново генерирует JavaScript через astring — всё прямо в вашем браузере. Ничего из вставленного кода никуда не отправляется.
Важно точно понимать, что здесь означает «обфускация»: это лишь препятствие для беглого чтения, а не шифрование и не настоящая защита. Любой, кто готов запустить ваш код и изучить его (или просто внимательнее почитать), всё равно сможет восстановить его поведение. JavaScript, отправленный в браузер, всегда можно скачать и выполнить — никакое преобразование этого не изменит. Используйте инструмент, чтобы усложнить беглое копирование, а не для защиты секретов. Никогда не размещайте реальные API-ключи или учётные данные в клиентском JavaScript, обфусцированном или нет.
Три уровня
Базовый переименовывает каждый идентификатор, для которого инструмент может доказать локальную привязку — параметры функций и объявления var/let/const внутри функции — на основе реального лексического анализа области видимости, а не догадок. Всё, что разрешается в глобальную или внешнюю переменную, остаётся без изменений намеренно: переименование сломало бы код. При регенерации кода также удаляются пробелы и комментарии.
Средний делает всё то же, что и Базовый, плюс собирает каждый строковый литерал, используемый как выражение, в один массив в начале файла и заменяет каждое вхождение на вызов вида _fn(3), который ищет строку по индексу.
Агрессивный делает всё то же, что и Средний, плюс записывает каждую строку в этом массиве с экранированием \x/\u вместо обычных символов, а последовательности из трёх и более идущих подряд инструкций переписываются в цикл-диспетчер `while(1) { switch(_i) { ... } }», так что структура кода больше не читается сверху вниз.
Корректность прежде всего
Каждый уровень построен так, чтобы код выполнялся точно так же, как вставленный оригинал. Там, где конструкцию нельзя гарантированно безопасно преобразовать — деструктуризация, eval, with» — инструмент пропускает переименование, а не рискует сломать программу. Если код использует evalилиwith», появляется уведомление о том, что переименование было полностью пропущено по этой причине.
Как читать показатели размера
Блок статистики показывает точное число байт на входе и выходе и изменение в процентах. Переименование и вынос строк обычно немного увеличивают размер, даже если код становится труднее для беглого чтения: обфускация и минификация — разные задачи.
Типичные сценарии
- Сделать небольшой скрипт менее тривиальным для беглого чтения перед публикацией демо.
- Разобраться, как работают обфускаторы, сравнивая вход и выход.
- Добавить лёгкое препятствие для скрипта, чья логика не является чувствительной.
Вставьте JavaScript, выберите уровень и скопируйте или скачайте результат.
Tiny Online Tools







