Hoppa till innehåll

JavaScript obfuskator

Konvertera JavaScript-källkod till ett hexadecimalt kodat eval(unescape(...))-utdrag som döljer koden för ett snabbt kik.

Inmatning
Utmatning

JavaScript obfuskator

Klistra in JavaScript-källkod och det här verktyget skriver om det som en enda hexadecimal escapad sträng som montar om sig själv och kör med eval(unescape('...')). Det är det klassiska tricket "grundläggande obfuskering": varje tecknet i din kod blir en %XX-sekvens (eller %uXXXX för tecken utanför de första 256 kodpunkterna), så källan är inte läsbar vid en snabb titt — inga variabelnamn, inga strängliteraler, inga kommentarer synliga.

Som standard är utmatningen inslagen i en självexekverande funktion, (function(){eval(unescape('...'))})();, så du kan släppa resultatet direkt i en <script> tag eller en annan fil och det körs omedelbar — precis som originalet. Stäng av "Omslut i självexekverande funktion" om du vill ha det nakna eval(unescape('...')); uttalandet istället, till exempel för att bädda in i en funktion som du redan kontrollerar.

Detta är obfuskering, inte kryptering eller säkerhet: unescape() och eval() är synliga i utmatningen, och avkodning av hex-strängen tillbaka till källa är en enradersoperation för vem som helst som tittar — en webbläsarkonsol gör det så snabbt som du kan klistra in. Behandla det som ett sätt att avskräcka slumpmässig kopiering eller hålla ett utdrag från en snabb view-source-titt, inte som ett sätt att skydda hemligheter, API-nycklar eller något som verkligen måste förbli konfidentiellt.

Allt körs lokalt i din webbläsare. Koden som du klistrar in laddas aldrig upp eller skickas någonstans, så det är säkert att obfuskera egen eller outgivna skript. Den aktiva räknaren under utmatningen visar hur många tecken som gick in, hur många som gick ut och hur många byte som var hexadecimalt kodade, så du kan se storleksökningen innan du kopierar eller laddar ned resultatet.

FAQ

Är detta verklig säkerhet, eller kan koden avobfuskeras?
Det är inte säkerhet. Vem som helst kan köra unescape() på strängen inuti utmatningen och få din ursprungliga källkod i ett steg — detta döljer bara kod från en snabb titt, inte från någon som verkligen tittar.
Beter sig den obfuskerade koden exakt som originalet?
Ja. eval(unescape('...')) rekonstruerar och kör den exakta ursprungliga källkoden, tecken för tecken, inklusive mellanslag, radbrytningar och stränginnehål.
Vad gör "Omslut i självexekverande funktion"?
Det omsluter eval(unescape('...')) anropet i (function(){...})(); så resultatet körs omedelbar som ett eget uttalande. Stäng av det om du vill placera eval(unescape('...'); anropet i din egen funktion eller omfång.
Fungerar det även på minifierad kod?
Ja. Du kan obfuskera valfri JavaScript-text, minifierad eller inte — verktyget behandlar inmatningen som vanlig text och kodar det hexadecimalt tecken för tecken, så minifiering först (med en CSS/JS-minifierare) gör bara den kodade utmatningen kortare.
Laddas min källkod upp någonstans?
Nej. Obfuskatorn körs helt i din webbläsare — koden som du klistrar in lämnar aldrig din enhet.