DevToolPal
PL

Obfuskator JavaScript

Spraw, by JavaScript był trudny do odczytania: zmień nazwy zmiennych, ukryj ciągi znaków i spłaszcz logikę, zachowując identyczne działanie.

Działa lokalnie, nic nie jest wysyłane

Opcje

Siła

Większa siła ukrywa więcej, ale kod staje się większy i wolniejszy.

Wejście

0 znaków · 0 B

Wynik

0 znaków · 0 B

Do czego służy

Obfuskator JavaScript przepisuje skrypt tak, że nadal działa dokładnie tak samo, ale jest znacznie trudniejszy do przeczytania i skopiowania przez ludzi. Nazwy zmiennych i funkcji zamieniają się w nic nieznaczące identyfikatory, takie jak _0x3f2a, literały tekstowe trafiają do zakodowanej tablicy, a na wyższych poziomach przepływ sterowania jest mieszany i dodawany jest martwy kod.

Przydaje się w grach przeglądarkowych, demach, widżetach i mechanizmach sprawdzania licencji, które dostarczasz jako zwykły JavaScript i nie chcesz, aby były kopiowane słowo w słowo.

Jak używać

  1. Wklej swój JavaScript lub otwórz plik .js.
  2. Wybierz Siłę:
    • Niska zmienia nazwy lokalne i przenosi ciągi znaków do tablicy. Wynik pozostaje szybki i dość mały.
    • Średnia dodaje kodowanie ciągów znaków, spłaszczanie przepływu sterowania i trochę martwego kodu.
    • Wysoka stosuje wszystko z pełną siłą. Wynik może być wielokrotnie większy i zauważalnie wolniejszy.
  3. Włącz Zmieniaj nazwy globalne tylko wtedy, gdy nic poza skryptem nie odwołuje się do jego funkcji lub zmiennych najwyższego poziomu.
  4. Wyłącz Wynik w jednym wierszu, jeśli chcesz, aby wynik był rozłożony na kilka wierszy.
  5. Skopiuj lub pobierz zaciemniony kod i przetestuj go przed wdrożeniem.

Przykład

Przykład definiuje funkcję greet i licznik odwiedzin. Po obfuskacji z niską siłą kod to jeden wiersz szesnastkowych nazw, a mimo to po uruchomieniu nadal wypisuje Hello, Ada! You have visited 1 time(s).

Obfuskacja a minifikacja

Minifikacja, wykonywana przez minifikator JavaScript i CSS, usuwa białe znaki i skraca nazwy, aby pliki były mniejsze i szybciej się pobierały. Obfuskacja działa odwrotnie, jeśli chodzi o rozmiar: celowo dodaje pośrednie warstwy, aby kod był trudniejszy do zrozumienia. Wiele projektów minifikuje wszystko, a obfuskuje tylko kilka plików zawierających logikę wartą ochrony.

Ograniczenia

Obfuskacja nie ochroni sekretów. Wszystko, co przeglądarka może uruchomić, użytkownik może w końcu przejrzeć, więc klucze API i reguły biznesowe, które muszą pozostać prywatne, trzymaj na serwerze. Mocne ustawienia spowalniają też kod, więc unikaj ich w gorących pętlach i na stronach wrażliwych na wydajność.

FAQ

› Czy obfuskacja zmienia działanie mojego kodu?

Nie. Zaciemniony skrypt działa tak samo jak oryginał; zmienia się tylko jego forma. Zawsze uruchamiaj testy na zaciemnionym buildzie, bo kod, który analizuje własne źródło lub nazwy funkcji, może zachowywać się inaczej.

› Czy zaciemniony kod można odwrócić?

Nie w pełni, ale zdeterminowana osoba z odpowiednią ilością czasu i tak ustali, co robi. Traktuj obfuskację jako przeszkodę dla przypadkowego kopiowania, nigdy jako miejsce do ukrywania sekretów, takich jak klucze API.

› Kiedy włączyć Zmieniaj nazwy globalne?

Tylko gdy skrypt jest samodzielny. Zmiana nazw globalnych psuje atrybuty HTML, inne skrypty lub testy, które wywołują twoje funkcje najwyższego poziomu po nazwie.

› Czy mój kod jest wysyłany na serwer?

Nie. Obfuskacja odbywa się w twojej przeglądarce za pomocą otwartoźródłowej biblioteki javascript-obfuscator.