Aller au contenu

Obscurcisseur JavaScript

Convertissez le code source JavaScript en un fragment codé en hexadécimal eval(unescape(...)) qui cache le code d'un coup d'œil.

Entrée
Sortie

Obscurcisseur JavaScript

Collez n'importe quel code source JavaScript et cet outil le réécrit sous la forme d'une seule chaîne échappée en hexadécimal qui se réassemble et s'exécute avec eval(unescape('...')). C'est la classique astuce d'"obscurcissement de base" : chaque caractère de votre code devient une séquence d'échappement %XX (ou %uXXXX pour les caractères en dehors des 256 premiers points de code), donc le code source n'est plus lisible au premier coup d'œil — pas de noms de variables, pas de chaînes littérales, pas de commentaires visibles.

Par défaut, la sortie est enveloppée dans une fonction auto-exécutée, (function(){eval(unescape('...'))})();, vous pouvez donc déposer le résultat directement dans une balise <script> ou un autre fichier et il s'exécute immédiatement, exactement comme l'original. Désactivez "Envelopper dans une fonction auto-exécutée" si vous préférez la simple déclaration eval(unescape('...')); à la place, par exemple pour l'intégrer dans une fonction que vous contrôlez déjà.

Il s'agit d'obscurcissement, non de chiffrement ou de sécurité : unescape() et eval() sont visibles dans la sortie, et le décodage de la chaîne hexadécimale en code source est une opération d'une ligne pour quiconque regarde — une console de navigateur le fait aussi vite que vous pouvez la coller. Utilisez-le comme un moyen de dissuader la copie occasionnelle ou de garder un fragment hors d'un coup d'œil rapide à la source, et non comme un moyen de protéger les secrets, les clés API ou tout ce qui doit rester confidentiel.

Tout s'exécute localement dans votre navigateur. Le code que vous collez n'est jamais téléchargé ni envoyé nulle part, il est donc sûr d'obscurcir les scripts propriétaires ou non publiés. Le compteur en direct sous la sortie montre combien de caractères sont entrés, combien sont sortis et combien d'octets ont été codés en hexadécimal, vous pouvez donc voir l'augmentation de taille avant de copier ou de télécharger le résultat.

FAQ

S'agit-il de la vraie sécurité, ou le code peut-il être désoffusqué?
Ce n'est pas la sécurité. N'importe qui peut exécuter unescape() sur la chaîne à l'intérieur de la sortie et récupérer votre code source original en une seule étape — cela masque uniquement le code d'un coup d'œil, pas de quelqu'un qui regarde vraiment.
Le code obscurci se comportera-t-il exactement comme l'original?
Oui. eval(unescape('...')) reconstruit et exécute le code source original exact, caractère par caractère, y compris les espaces, les sauts de ligne et le contenu des chaînes.
Que fait "Envelopper dans une fonction auto-exécutée"?
Il enveloppe l'appel eval(unescape('...')) dans (function(){...})(); pour que le résultat s'exécute immédiatement en tant que déclaration autonome. Désactivez-le si vous souhaitez placer l'appel eval(unescape('...'); dans votre propre fonction ou portée.
Fonctionne-t-il également sur du code minifié?
Oui. Vous pouvez obscurcir n'importe quel texte JavaScript, minifié ou non — l'outil traite l'entrée comme du texte brut et l'encode en hexadécimal caractère par caractère, donc minifier d'abord (avec un minifieur CSS/JS) rend simplement la sortie codée plus courte.
Mon code source est-il téléchargé quelque part?
Non. L'obscurcisseur s'exécute entièrement dans votre navigateur — le code que vous collez ne quitte jamais votre appareil.