DevToolPal
UK

Обфускатор JavaScript

Зробіть JavaScript важким для читання: перейменування змінних, приховування рядків і заплутування логіки, а поведінка лишається тією самою.

Працює локально, нічого не завантажується на сервер

Параметри

Сила

Вища сила приховує більше, але робить код більшим і повільнішим.

Вхідні дані

0 симв. · 0 B

Результат

0 симв. · 0 B

Що робить інструмент

Обфускатор JavaScript переписує скрипт так, що він працює точно так само, але людям набагато важче його читати й копіювати. Імена змінних і функцій стають беззмістовними ідентифікаторами на кшталт _0x3f2a, рядкові літерали переносяться в закодовану таблицю, а на вищих рівнях потік керування перемішується й додається мертвий код.

Це корисно для браузерних ігор, демо, віджетів і перевірок ліцензії, які ви постачаєте як звичайний JavaScript і не хочете, щоб їх копіювали слово в слово.

Як користуватися

  1. Вставте свій JavaScript або відкрийте файл .js.
  2. Виберіть Силу:
    • Низька перейменовує локальні імена й переносить рядки в масив-таблицю. Результат лишається швидким і досить компактним.
    • Середня додає закодовані рядки, сплощення потоку керування й трохи мертвого коду.
    • Висока застосовує все на повну силу. Результат може бути в рази більшим і помітно повільнішим.
  3. Вмикайте Перейменовувати глобальні імена лише тоді, коли ніщо поза скриптом не звертається до його функцій чи змінних верхнього рівня.
  4. Вимкніть Вивід в один рядок, якщо хочете, щоб результат займав кілька рядків.
  5. Скопіюйте або збережіть обфускований код і протестуйте його перед деплоєм.

Приклад

Приклад визначає функцію greet і лічильник відвідувань. Після обфускації з низькою силою код стає одним рядком шістнадцяткових імен, але під час запуску все одно виводить Hello, Ada! You have visited 1 time(s).

Обфускація проти мініфікації

Мініфікація, яку виконує мініфікатор JavaScript і CSS, видаляє пробіли й скорочує імена, щоб файли були меншими й швидше завантажувалися. Обфускація щодо розміру діє навпаки: вона навмисно додає непрямість, щоб код було важче зрозуміти. Багато проєктів мініфікують усе, а обфускують лише кілька файлів із логікою, яку варто захистити.

Обмеження

Обфускація не може захистити секрети. Усе, що може виконати браузер, користувач рано чи пізно зможе дослідити, тож тримайте API-ключі й бізнес-правила, які мають лишатися приватними, на своєму сервері. Важкі налаштування також уповільнюють код, тож уникайте їх у гарячих циклах і на сторінках, критичних до продуктивності.

Часті запитання

› Чи змінює обфускація поведінку мого коду?

Ні. Обфускований скрипт поводиться так само, як оригінал; змінюється лише його форма. Завжди запускайте тести на обфускованій збірці, бо код, що аналізує власне джерело чи імена функцій, може поводитися інакше.

› Чи можна обернути обфускований код?

Не повністю, але наполеглива людина з часом усе одно розбереться, що він робить. Сприймайте обфускацію як «лежачого поліцейського» проти випадкового копіювання, а не як місце для зберігання секретів на кшталт API-ключів.

› Коли вмикати «Перейменовувати глобальні імена»?

Лише тоді, коли скрипт самодостатній. Перейменування глобальних імен ламає HTML-атрибути, інші скрипти чи тести, які викликають ваші функції верхнього рівня за назвою.

› Чи завантажується мій код на сервер?

Ні. Обфускація виконується у вашому браузері за допомогою відкритої бібліотеки javascript-obfuscator.