Tiny Online Tools logoTiny Online ToolssearchПоиск инструментов…grid_viewВсе инструменты
Главнаяchevron_rightИнструменты обратной разработкиchevron_rightОбфускатор JavaScriptОбфускатор JavaScript

Обфускатор JavaScript

Переименовывает локальные переменные, скрывает строковые литералы и запутывает поток управления в JavaScript — полностью в браузере, без загрузки на сервер.

Уровень обфускацииБазовыйСреднийАгрессивныйПереименовывает доказанно локальные переменные, убирает пробелы и комментарии.
infoЭто лишь препятствие для беглого чтения, а не настоящая защита или шифрование, и оно не защищает секреты. Всё выполняется локально в браузере; ничего не отправляется на сервер.

Похожие инструменты

Анализатор мёртвого кода JavaScript

Анализатор мёртвого кода JavaScript

Вставьте JS-бандл и найдите функции верхнего уровня, на которые нет ни одной статической ссылки в файле — эвристический анализ достижимости, а не гарантированный результат.

Помощник деобфускации JavaScript

Помощник деобфускации JavaScript

Отменяет распространённые статические приёмы обфускации JavaScript: подстановку строк из массива, декодирование escape-последовательностей, свёртку констант, удаление мёртвых веток и замену квадратных скобок точками.

Инспектор JavaScript в PDF

Инспектор JavaScript в PDF

Находит все сценарии внутри PDF — действия документа, события страниц и аннотаций, расчёты полей форм — и показывает их, не запуская.

WASM Декомпилятор

WASM Декомпилятор

Преобразуйте бинарный файл WebAssembly в читаемый текст WAT с графом вызовов по функциям, структурой потока управления и предположением о тулчейне.

WebP в PNG

WebP в PNG

Конвертируйте WebP обратно в PNG.

Разделить PDF по размеру файла

Разделить PDF по размеру файла

Разделите PDF на меньшие части, каждая из которых не превышает указанный максимальный размер в мегабайтах. Идеально для вложений и лимитов загрузки.

Разблокировать PDF

Разблокировать PDF

Удалите парольную защиту PDF локально.

apps

Больше инструментов

Просмотрите нашу полную коллекцию бесплатных онлайн-инструментов.

Что делает этот инструмент

Этот обфускатор разбирает ваш код с помощью acorn, строит дерево синтаксиса, применяет несколько структурных преобразований и заново генерирует JavaScript через astring — всё прямо в вашем браузере. Ничего из вставленного кода никуда не отправляется.

Важно точно понимать, что здесь означает «обфускация»: это лишь препятствие для беглого чтения, а не шифрование и не настоящая защита. Любой, кто готов запустить ваш код и изучить его (или просто внимательнее почитать), всё равно сможет восстановить его поведение. JavaScript, отправленный в браузер, всегда можно скачать и выполнить — никакое преобразование этого не изменит. Используйте инструмент, чтобы усложнить беглое копирование, а не для защиты секретов. Никогда не размещайте реальные API-ключи или учётные данные в клиентском JavaScript, обфусцированном или нет.

Три уровня

Базовый переименовывает каждый идентификатор, для которого инструмент может доказать локальную привязку — параметры функций и объявления var/let/const внутри функции — на основе реального лексического анализа области видимости, а не догадок. Всё, что разрешается в глобальную или внешнюю переменную, остаётся без изменений намеренно: переименование сломало бы код. При регенерации кода также удаляются пробелы и комментарии.

Средний делает всё то же, что и Базовый, плюс собирает каждый строковый литерал, используемый как выражение, в один массив в начале файла и заменяет каждое вхождение на вызов вида _fn(3), который ищет строку по индексу.

Агрессивный делает всё то же, что и Средний, плюс записывает каждую строку в этом массиве с экранированием \x/\u вместо обычных символов, а последовательности из трёх и более идущих подряд инструкций переписываются в цикл-диспетчер `while(1) { switch(_i) { ... } }», так что структура кода больше не читается сверху вниз.

Корректность прежде всего

Каждый уровень построен так, чтобы код выполнялся точно так же, как вставленный оригинал. Там, где конструкцию нельзя гарантированно безопасно преобразовать — деструктуризация, eval, with» — инструмент пропускает переименование, а не рискует сломать программу. Если код использует evalилиwith», появляется уведомление о том, что переименование было полностью пропущено по этой причине.

Как читать показатели размера

Блок статистики показывает точное число байт на входе и выходе и изменение в процентах. Переименование и вынос строк обычно немного увеличивают размер, даже если код становится труднее для беглого чтения: обфускация и минификация — разные задачи.

Типичные сценарии

  • Сделать небольшой скрипт менее тривиальным для беглого чтения перед публикацией демо.
  • Разобраться, как работают обфускаторы, сравнивая вход и выход.
  • Добавить лёгкое препятствие для скрипта, чья логика не является чувствительной.

Вставьте JavaScript, выберите уровень и скопируйте или скачайте результат.