Русский

Обфускатор JavaScript онлайн, бесплатно

Обфусцируйте JavaScript без регистрации: вставьте код, выберите пресет и скопируйте защищённый результат. Программа работает так же, но имена, строки и структура переписаны, поэтому читать, копировать и изменять такой код намного труднее.

Без аккаунта

Бесплатно для начала

Онлайн-инструмент защищает фрагменты до 32 КБ и позволяет попробовать все опции, включая платные, до выбора тарифа.

ОнлайнВставить, выбрать пресет, скопировать.
CLI для npmДля сборки и CI.
WindowsЦелые папки на вашем компьютере.
Как пользоваться

Обфускация JavaScript онлайн за четыре шага

Интерфейс инструмента на английском; в кавычках — точные надписи на кнопках.

  1. Вставьте код в левую панель или загрузите файл кнопкой «Upload File» (файлы .js или .txt).
  2. Выберите пресет: «Standard», «Balanced» или «Maximum». У каждой платной опции есть метка с тарифом, который нужен за пределами предпросмотра.
  3. Нажмите «Obfuscate». Под результатом видно, какие опции применились и какие не дали эффекта.
  4. Скопируйте или скачайте результат кнопками «Copy» или «Download» и проверьте его в своём приложении перед публикацией.

Открыть онлайн-обфускатор ›

Что делает каждый пресет

  • Standard: переименовывает переменные, переносит и кодирует строки, сжимает результат. То же, что --preset standard в CLI.
  • Balanced: добавляет короткие имена, глубокую обфускацию, перестановку кода, Flat Transform и шифрование строк.
  • Maximum: включает все опции, которые работают в скрипте из одного файла, включая защиту во время выполнения.
Что меняется

То же поведение, другой код

Реальный пример этого обфускатора: имена заменены, строки перенесены в таблицу и закодированы. Обе версии возвращают одинаковый результат.

До
function isLicensed(user) {
  var plan = user.plan;
  if (plan === "pro" || plan === "team") {
    return user.key !== "TRIAL-KEY";
  }
  return false;
}
После (отформатировано для чтения)
var _$_2476=["\x70\x72\x6F","\x74\x65\x61\x6D",
  "\x54\x52\x49\x41\x4C\x2D\x4B\x45\x59"];
function isLicensed(b)
{
	var a=b.plan;
	if(a=== _$_2476[0x0]|| a=== _$_2476[0x1])
	{
		return b.key!== _$_2476[0x2]
	}
	return false
}

Строку TRIAL-KEY в файле больше не найти поиском. С опцией «Encrypt Strings» строки не видны даже в закодированном виде — как это выглядит, показано на странице о шифровании JavaScript (на английском).

Для целых проектов

Обфускация JS в сборке

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

npm install --save-dev javascriptobfuscator-com
npx javascriptobfuscator-com --input dist --output dist-protected

Есть плагины для Rollup, esbuild, Rspack, Parcel и Gulp, а для кода Node.js — флаг --target node (подробнее на странице о CLI, на английском). Для целых папок и JavaScript внутри HTML, PHP, ASP и JSP есть приложение для Windows.

Перед публикацией

Чего обфускация не делает

  • Не скрывает секреты. API-ключ в браузере всё равно можно прочитать; держите его на сервере.
  • Не заменяет проверки на сервере. Кто запускает код, тот его и контролирует.
  • Всегда тестируйте защищённую копию и сохраняйте имена, которые вызывает другой код (публичные API, колбэки фреймворков).
  • Не публикуйте source maps рядом с защищённым кодом: они возвращают исходные имена.
Тарифы

Цены опубликованы, в долларах в месяц

ТарифЦенаЧто входит
Free0 USDОнлайн-инструмент (до 32 КБ), бесплатные опции CLI без лимитов, API с ограничениями; переименование и кодирование строк.
Basic29 USDБольшие файлы, сжатие, глубокая обфускация и перестановка кода.
Corporate49 USDБольше лимиты, переименование глобальных имён и вставка мёртвого кода.
Enterprise99 USDМаксимальные лимиты, шифрование строк и Flat Transform.

Подробности о лимитах и опциях — на странице тарифов (на английском).

Частые вопросы

Об обфускаторе JavaScript

Обфускатор бесплатный?

Да. Онлайн-инструмент работает без аккаунта и защищает фрагменты до 32 КБ; все опции доступны для пробы. Без аккаунта CLI для npm применяет бесплатные опции на вашем компьютере, без загрузки кода и без ограничения размера. Для продвинутых опций есть тарифы от 29 USD в месяц.

Можно ли восстановить обфусцированный код?

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

Обфускация замедляет код или увеличивает его?

Переименование идентификаторов уменьшает код. Таблицы строк, шифрование и изменение потока управления увеличивают его и могут добавить работы при запуске. Измеряйте размер и время загрузки на своём коде.

Мой код отправляется на сервер?

Онлайн-инструмент — да. CLI для npm без аккаунта применяет бесплатные опции на вашем компьютере и ничего не загружает; платные опции используют облачный сервис. Приложение для Windows в режиме Local Standard тоже защищает простые файлы ES5 без подключения к сети.

Попробуйте на своём коде

Вставьте любой JavaScript, выберите пресет и сравните результат. Регистрация не нужна.