Obfuscateur JavaScript en ligne

Rendez votre JavaScript plus difficile à lire et à réutiliser : chaînes encodées, noms de propriétés masqués et, si vous le souhaitez, exécution limitée à vos domaines.

Niveau de protection

Réglages détaillés

Traitement 100 % local, rien n’est envoyé

Comment ça marche ?

Le niveau « Protégé » commence par la réduction (variables locales renommées), puis applique trois transformations écrites pour Kortex : les chaînes de caractères sont encodées (UTF-8, XOR avec une clé aléatoire, Base64), rangées dans un tableau tourné d’un nombre aléatoire de positions et décodées à l’exécution ; les noms de propriétés sont masqués (console.log devient console[…(0xa9)], clés d’objet comprises) ; enfin un verrou de domaine facultatif limite l’exécution à vos sites.

C’est une dissuasion, pas un chiffrement : le code reste exécutable donc lisible par un lecteur patient. Il n’y a pas de source map avec la protection, qui redonnerait les noms d’origine.

Exemples

Chaînes et propriétés masquées : 63 octets deviennent 503

const message = "Bonjour"; console.log(message.toUpperCase()); ne contient plus ni « Bonjour », ni log, ni toUpperCase : tout passe par un tableau encodé. Le décodeur ajoute environ 440 octets, constants : l’effet est surtout visible sur un vrai fichier.

Verrou sur 2 domaines

Avec les 2 domaines monsite.fr, localhost, le script s’exécute sur www.monsite.fr et sur localhost, mais ne fait rien sur copie.example : une copie du fichier posée ailleurs ne démarre pas. Pensez à ajouter votre domaine de test.

Questions fréquentes

L’obfuscation protège-t-elle vraiment mon code ?
Elle le rend plus long à lire et à réutiliser, mais ne le chiffre pas : le navigateur doit pouvoir exécuter le code, donc le comprendre. Quelqu’un de patient peut toujours retrouver les chaînes et la logique. Ne placez jamais de secret (clé d’API, mot de passe) dans un code livré au navigateur : gardez-le sur un serveur.
Pourquoi le fichier protégé est-il plus gros ?
Le tableau de chaînes encodées et la fonction de décodage ajoutent environ 440 octets fixes, puis chaque chaîne et chaque nom de propriété grossit un peu (Base64, appel de fonction). Sur un fichier réel, la réduction préalable compense en grande partie ; pour la taille seule, préférez le niveau « Optimisé ».
Le code protégé fonctionne-t-il partout ?
Il s’exécute dans tout navigateur récent et dans Node.js 16 et plus (il utilise atob et TextDecoder). Les modules ES (import / export) sont pris en charge, sauf le verrou de domaine, qui exige d’envelopper le fichier. Testez toujours la version protégée : un code qui lit son propre texte (toString) ou dépend du nom des propriétés peut se comporter autrement.
Mon code est-il envoyé quelque part ?
Non. Le traitement se fait dans votre navigateur, dans un worker : votre code n’est ni envoyé, ni enregistré, et aucune requête n’est faite pendant la réduction. Seuls les moteurs sont téléchargés : esbuild (JavaScript, TypeScript, CSS) est servi par ce site, et l’interpréteur Python (environ 13 Mo, une seule fois) vient de jsDelivr, vérifié par une empreinte SHA-256 avant d’être utilisé.