Przejdź do treści

Obfuskator JavaScript

Przekonwertuj kod źródłowy JavaScript na fragment zakodowany szesnastkowo eval(unescape(...)), który ukrywa kod przed szybkim przejrzeniem.

Wejście
Wynik

Obfuskator JavaScript

Wklej kod źródłowy JavaScript i narzędzie przekonwertuje go na jeden łańcuch zakodowany szesnastkowo, który składa się ponownie i uruchamia za pomocą eval(unescape('...')). Jest to klasyczna sztuczka "podstawowej obfuskacji": każdy znak kodu zmienia się na sekwencję %XX (lub %uXXXX dla znaków poza pierwszymi 256 punktami kodowymi), więc źródło nie jest czytelne na pierwszy rzut oka — bez nazw zmiennych, bez literałów łańcuchowych, bez komentarzy widocznych w zwykłym tekście.

Domyślnie wyjście jest owinięte w samodzielnie wykonującą się funkcję, (function(){eval(unescape('...'))})();, dzięki czemu możesz upuścić wynik bezpośrednio do znacznika <script> lub innego pliku i uruchomi się natychmiast, dokładnie jak oryginał. Wyłącz opcję "Opakuj w samovykonywającej się funkcji", jeśli chcesz zamiast tego mieć nagą instrukcję eval(unescape('...')); na przykład do osadzenia wewnątrz funkcji, którą już kontrolujesz.

To jest obfuskacja, a nie szyfrowanie ani bezpieczeństwo: unescape() i eval() są widoczne na wyjściu, a dekodowanie łańcucha szesnastkowego z powrotem do źródła to operacja jednolinijkowa dla każdego, kto patrzy — konsola przeglądarki robi to tak szybko, jak możesz wkleić. Traktuj to jako sposób na odstraszenie przypadkowego kopiowania lub trzymanie fragmentu z szybkiego widoku źródła, a nie jako sposób na ochronę sekretów, kluczy API lub czegokolwiek, co rzeczywiście musi pozostać poufne.

Wszystko działa lokalnie w przeglądarce. Kod, który wklejasz, nigdy nie zostanie przesłany ani wysłany nigdzie, więc bezpiecznie można obfuskować zastrzeżone lub niewydane skrypty. Licznik poniżej wyjścia pokazuje, ile znaków weszło, ile wyszło i ile bajtów zostało zakodowanych szesnastkowo, dzięki czemu możesz zobaczyć zwiększenie rozmiaru przed skopiowaniem lub pobraniem wyniku.

Częste pytania

Czy to jest prawdziwe bezpieczeństwo, czy kod można de-obfuskować?
To nie jest bezpieczeństwo. Każdy może uruchomić unescape() na łańcuchu wewnątrz wyjścia i odzyskać oryginalny kod źródłowy w jednym kroku — ukrywa to kod tylko przed szybkim przejrzeniem, a nie przed kimś, kto naprawdę patrzy.
Czy obfuskowany kod będzie zachowywać się dokładnie jak oryginał?
Tak. eval(unescape('...')) rekonstruuje i uruchamia dokładny oryginalny kod źródłowy, znak po znaku, w tym spacje, podziały wierszy i zawartość łańcuchów.
Co robi opcja "Opakuj w samovykonywającej się funkcji"?
Opakowuje wywołanie eval(unescape('...')) w (function(){...})(); aby wynik uruchomił się natychmiast jako instrukcja autonomiczna. Wyłącz ją, jeśli chcesz umieścić wywołanie eval(unescape('...'); wewnątrz własnej funkcji lub zakresu.
Czy działa to również na kodzie minifikowanym?
Tak. Możesz obfuskować dowolny tekst JavaScript, minifikowany lub nie — narzędzie traktuje wejście jako zwykły tekst i koduje je szesnastkowo znak po znaku, więc minifikacja najpierw (za pomocą minifikatora CSS/JS) jedynie skraca zakodowane wyjście.
Czy mój kod źródłowy jest przesyłany gdziekolwiek?
Nie. Obfuskator działa całkowicie w przeglądarce — kod, który wklejasz, nigdy nie opuszcza Twojego urządzenia.