Vai al contenuto

Offuscatore JavaScript

Converti il codice sorgente JavaScript in uno snippet codificato in esadecimale eval(unescape(...)) che nasconde il codice da una rapida occhiata.

Ingresso
Uscita

Offuscatore JavaScript

Incolla qualsiasi codice sorgente JavaScript e questo strumento lo riscrive come una singola stringa con escape esadecimale che si riassembla ed esegue con eval(unescape('...')). È il classico trucco dell'"offuscamento di base": ogni carattere del tuo codice diventa una sequenza di escape %XX (o %uXXXX per i caratteri al di fuori dei primi 256 punti di codice), quindi il codice sorgente non è più leggibile a prima vista — nessun nome di variabile, nessun letterale di stringa, nessun commento visibile.

Per impostazione predefinita, l'output viene racchiuso in una funzione autoeseguente, (function(){eval(unescape('...'))})();, quindi puoi inserire il risultato direttamente in un tag <script> o un altro file e si esegue immediatamente, esattamente come l'originale. Disabilita "Racchiudi in una funzione autoeseguente" se preferisci l'istruzione nuda eval(unescape('...')); al suo posto, ad esempio per incorporarla all'interno di una funzione che controlli già.

Questo è offuscamento, non crittografia o sicurezza: unescape() e eval() sono visibili nell'output, e decodificare la stringa esadecimale di nuovo al codice sorgente è un'operazione a una riga per chiunque guardi — una console del browser lo fa velocemente quanto puoi incollare. Utilizzalo come un modo per scoraggiare la copia casuale o mantenere uno snippet lontano da una rapida occhiata al codice sorgente, non come un modo per proteggere segreti, chiavi API o qualsiasi cosa che debba davvero rimanere riservata.

Tutto viene eseguito localmente nel tuo browser. Il codice che incolla non viene mai caricato o inviato da nessuna parte, quindi è sicuro offuscare script proprietari o non rilasciati. Il contatore attivo sotto l'output mostra quanti caratteri sono entrati, quanti sono usciti e quanti byte sono stati codificati in esadecimale, in modo da vedere l'aumento di dimensioni prima di copiare o scaricare il risultato.

FAQ

È vera sicurezza o il codice può essere disoffuscato?
Non è sicurezza. Chiunque può eseguire unescape() sulla stringa all'interno dell'output e ottenere il codice sorgente originale in un passaggio — questo nasconde solo il codice da una rapida occhiata, non da chi guarda davvero.
Il codice offuscato si comporterà esattamente come l'originale?
Sì. eval(unescape('...')) ricostituisce ed esegue il codice sorgente originale esatto, carattere per carattere, inclusi gli spazi, i ritorni a capo e il contenuto delle stringhe.
Cosa fa "Racchiudi in una funzione autoeseguente"?
Racchiude la chiamata eval(unescape('...')) in (function(){...})(); in modo che il risultato si esegua immediatamente come un'istruzione autonoma. Disabilitalo se desideri posizionare la chiamata eval(unescape('...'); all'interno della tua stessa funzione o ambito.
Funziona anche su codice minificato?
Sì. Puoi offuscare qualsiasi testo JavaScript, minificato o meno — lo strumento tratta l'input come testo semplice e lo codifica in esadecimale carattere per carattere, quindi minificare per primo (con un minificatore CSS/JS) rende semplicemente l'output codificato più breve.
Il mio codice sorgente viene caricato da qualche parte?
No. L'offuscatore viene eseguito completamente nel tuo browser — il codice che incolla non lascia mai il tuo dispositivo.