Preskočiť na obsah

Obfuskátor JavaScriptu

Preveďte zdrojový kód JavaScriptu na hex-kódovaný úryvok eval(unescape(...)), ktorý skryje kód pred rýchlym pohľadom.

Vstup
Výstup

Obfuskátor JavaScriptu

Vložte ľubovoľný zdrojový kód JavaScriptu a tento nástroj ho prepíše na jeden hex-escapovaný reťazec, ktorý sa opätovne zmontuje a spustí pomocou eval(unescape('...')). Je to klasický trik "základnej obfuskácie": každý znak kódu sa zmení na sekvenciu %XX (alebo %uXXXX pre znaky mimo prvých 256 bodov kódu), takže zdrojový kód nie je na prvý pohľad čitateľný — žiadne názvy premenných, žiadne reťazcové literály, žiadne komentáre viditeľné v plnom texte.

Štandardne je výstup zabalený v samovykonávajúcej sa funkcii, (function(){eval(unescape('...'))})();, takže výsledok môžete vložiť priamo do značky <script> alebo do iného súboru a spustí sa hneď, presne ako originál. Vypnutím možnosti "Zabaliť do samovykonávajúcej sa funkcie" získate nahý eval(unescape('...')); príkaz namiesto toho, napríklad na vloženie do funkcie, ktorú už ovládate.

Je to obfuskácia, nie šifrovanie alebo bezpečnosť: unescape() a eval() sú viditeľné vo výstupe a dekódovanie hex reťazca späť na zdrojový kód je jednoriadková operácia pre každého, kto sa pozrie — konzola prehliadača to urobí tak rýchlo, ako to môžete vložiť. Považujte to za spôsob, ako odradiť mimochodné kopírovanie alebo udržať úryvok z rýchleho view-source pohľadu, nie ako spôsob na ochranu tajomstiev, kľúčov API alebo čohokoľvek, čo naozaj musí zostať dôverné.

Všetko sa spúšťa lokálne vo vašom prehliadači. Kód, ktorý vložíte, sa nikdy nenahrá ani nepošle nikam, takže je bezpečné obfuskovať vlastný alebo nevydaný skript. Počítadlo pod výstupom zobrazuje, koľko znakov vstúpilo, koľko vyšlo a koľko bajtov bolo hex-kódovaných, takže vidíte nárast veľkosti pred kopírovaním alebo stiahnutím výsledku.

Časté otázky

Je to skutočná bezpečnosť alebo je možné kód de-obfuskovať?
Nie je to bezpečnosť. Každý môže spustiť unescape() na reťazci vo vnútri výstupu a získať váš pôvodný zdrojový kód v jednom kroku — to skryje iba kód pred rýchlym pohľadom, nie pred tým, kto sa na to naozaj pozrie.
Bude obfuskovaný kód správať presne ako originál?
Áno. eval(unescape('...')) rekonštruuje a spustí presne pôvodný zdrojový kód, znak za znakom, vrátane medzier, zalomení riadkov a obsahu reťazcov.
Čo znamená "Zabaliť do samovykonávajúcej sa funkcie"?
Zalomí volanie eval(unescape('...')) v (function(){...})(); takže výsledok sa spustí hneď ako samostatný príkaz. Vypnite ho, ak chcete volanie eval(unescape('...'); vložiť do svojej vlastnej funkcie alebo rozsahu.
Funguje to aj na minimalizovanom kóde?
Áno. Obfuskovať môžete ľubovoľný text JavaScriptu, minimalizovaný alebo nie — nástroj vstup spracúva ako prostý text a kóduje ho hex-om znak za znakom, takže minimalizácia prvá (pomocou CSS/JS minimalizátora) robí iba kódovaný výstup kratší.
Je môj zdrojový kód nahratý niekde?
Nie. Obfuskátor sa spúšťa úplne vo vašom prehliadači — kód, ktorý vložíte, nikdy neopustí vaše zariadenie.