JavaScript obfuscator — zvýšit náklady na čtení, ne šifrovat
Zamaskujte JavaScript v prohlížeči pomocí výchozího presetu javascript-obfuscator. Řetězce se přesunou do rotujícího pole, identifikátory dostanou hexadecimální názvy a výstup se zkomprimuje a zjednoduší — čtení je obtížnější, ale nejde o šifrování a kód zůstává reverzibilní. Žádné nahrávání a žádné přepínače voleb.
Co tento obfuscator dělá — a co ne
Obfuskace je překážka pro čtení, ne šifrování
Výstup je stále běžný JavaScript, který spustí každý prohlížeč a každý vývojář naformátuje. Zvyšuje čas potřebný ke čtení, ale neskrývá logiku, nechrání tajemství a nebrání deobfuskaci.
Používá výchozí preset knihovny
Zapnuto: pole řetězců s rotací, promícháním a posunem indexů (práh 0,75), hexadecimální identifikátory, kompaktní výstup a zjednodušení. Vypnuto: zploštění řízení toku, vkládání mrtvého kódu, ochrana ladění, sebeobranný kód, globální přejmenování, Unicode escapování.
Běží zcela v prohlížeči
Zpracování probíhá pomocí javascript-obfuscator v tomto panelu. Nic se nenahrává; zdrojový kód soukromých projektů zůstává na vašem zařízení.
Jeden tlačítko, předvídatelné chování
Stránka záměrně nenabízí přepínače voleb a vždy používá stejný konzervativní preset, aby výstup nečekaně nenarostl nebo se nezpomalil.
Výstup připravený ke vložení
Výsledek je běžný JavaScript. Zkopírujte ho do DevTools, do kroku sestavení nebo do souboru a před vydáním spusťte testy.
Časté dotazy
Dělá obfuskace můj kód bezpečným?
Ne. Jen zvyšuje úsilí potřebné ke čtení. Nejde o šifrování, není zde klíč a odhodlaný člověk kód naformátuje a vystopuje. Nevkládejte API klíče, hesla ani klíčové algoritmy do klientského JavaScriptu; používejte ověřování a řízení přístupu na serveru.
Které volby jsou výchozě zapnuté?
Stránka volá javascript-obfuscator bez vlastních voleb. Výchozě jsou zapnuté: kompaktní výstup, hexadecimální identifikátory, zjednodušení a pole řetězců s rotací, promícháním a posunem indexů s prahem 0,75. Zploštění toku, vkládání mrtvého kódu, ochrana ladění, sebeobrana, renameGlobals, numbersToExpressions, transformObjectKeys a unicodeEscapeSequence jsou vypnuté.
Co pole řetězců skutečně dělá?
Literály řetězců se přesunou do pole a nahradí se přístupy přes index; malý bootstrap při startu pole otáčí a promíchává. Hledání zprávy nebo URL ve zdrojáku je obtížnější, ale řetězce za běhu stále existují a lze je obnovit.
Co je zploštění řízení toku a používá se zde?
Převádí větve a smyčky na stavový automat řízený switch, takže tok je těžší sledovat. Zde je vypnuté: zvětšuje soubor, zvyšuje zátěž CPU a někdy kód rozbije. Můžete ho zapnout přes CLI nebo knihovnu javascript-obfuscator.
Může obfuskace rozbít nebo zpomalit kód?
Výchozí preset je poměrně konzervativní, ale může rozbít kód závislý na názvech funkcí, toString(), eval nebo reflexi frameworku. Nepřímý přístup k poli řetězců mírně zvyšuje startovní náklady; zploštění toku (zde nepoužilé) přidává více. Obfuskovanou verzi vždy otestujte.
Jak ladit obfuskovaný kód? Generují se source maps?
Source maps se nevytvářejí. Uchovejte původní zdroj, laďte před obfuskací nebo v development buildu a obfuskovanou verzi publikujte až po testech. Formátování pomůže se strukturou, ale identifikátory zůstávají nečitelné.
Lze obfuskovat více souborů nebo celý projekt najednou?
Ne. Stránka zpracovává jednu vloženou ukázku. Pro více souborů použijte CLI nebo build pluginy javascript-obfuscator.

