Obfuscateur JavaScript — augmenter le coût de lecture, pas chiffrer
Obscurcissez du JavaScript dans le navigateur avec le préréglage par défaut de javascript-obfuscator. Les chaînes passent dans un tableau rotatif, les identifiants deviennent hexadécimaux et la sortie est compactée et simplifiée : cela complique la lecture, mais ce n'est pas du chiffrement et le code reste réversible. Aucun envoi, aucun réglage exposé.
Ce que cet obfuscateur fait — et ne fait pas
L'obfuscation est une barrière de lisibilité, pas un chiffrement
La sortie reste du JavaScript ordinaire, exécutable par tout navigateur et reformatable par tout développeur. Elle augmente le temps de lecture, mais ne cache pas la logique, ne protège pas les secrets et n'empêche pas la désobfuscation.
Utilise le préréglage par défaut de la bibliothèque
Actif : tableau de chaînes avec rotation, mélange et décalage d'index (seuil 0,75), identifiants hexadécimaux, sortie compacte et simplification. Inactif : aplatissement du flux de contrôle, injection de code mort, protection de débogage, code auto-défensif, renommage global, échappement Unicode.
Fonctionne entièrement dans le navigateur
Le traitement utilise javascript-obfuscator dans cet onglet. Rien n'est envoyé ; le code source de projets privés reste sur votre appareil.
Un bouton, un comportement prévisible
Cette page n'expose volontairement aucun réglage : elle applique toujours le même préréglage prudent pour éviter une sortie bien plus grosse ou plus lente sans prévenir.
Une sortie à coller directement
Le résultat est du JavaScript ordinaire. Copiez-le dans DevTools, une étape de build ou un fichier, puis lancez vos tests avant de publier.
Questions fréquentes
L'obfuscation rend-elle mon code sûr ?
Non. Elle ne fait qu'augmenter l'effort de lecture. Ce n'est pas du chiffrement, il n'y a pas de clé, et une personne motivée peut formater et tracer le code. Ne mettez jamais de clés API, mots de passe ou algorithmes critiques dans du JavaScript côté client : utilisez des contrôles et une autorisation côté serveur.
Quelles options sont actives par défaut ?
Cette page appelle javascript-obfuscator sans option personnalisée. Par défaut : sortie compacte, identifiants hexadécimaux, simplification et tableau de chaînes avec rotation, mélange et décalage d'index au seuil 0,75. L'aplatissement du flux, l'injection de code mort, la protection de débogage, l'auto-défense, renameGlobals, numbersToExpressions, transformObjectKeys et unicodeEscapeSequence sont désactivés.
À quoi sert le tableau de chaînes ?
Les littéraux de chaîne sont déplacés dans un tableau et remplacés par des accès indexés ; un petit amorçage fait tourner et mélange le tableau au démarrage. Cela complique la recherche d'un message ou d'une URL dans le source, mais les chaînes existent toujours à l'exécution et peuvent être récupérées.
Qu'est-ce que l'aplatissement du flux de contrôle, et est-il utilisé ici ?
Il transforme les branches et boucles en machine à états pilotée par switch, rendant le flux difficile à suivre. Il est désactivé ici : il augmente la taille et le coût CPU et peut casser du code. Vous pouvez l'activer via la CLI ou la bibliothèque javascript-obfuscator.
L'obfuscation peut-elle casser ou ralentir mon code ?
Le préréglage par défaut est relativement prudent, mais peut casser du code qui dépend des noms de fonctions, de toString(), d'eval ou de la réflexion d'un framework. L'indirection du tableau ajoute un léger coût au démarrage ; l'aplatissement du flux (non utilisé ici) en ajoute davantage. Testez toujours la version obfusquée.
Comment déboguer du code obfusqué ? Des source maps sont-elles générées ?
Aucune source map n'est produite. Conservez le code original, déboguez avant l'obfuscation ou dans un build de développement, et ne publiez l'ensemble obfusqué qu'après les tests. Reformater aide à voir la structure, mais les identifiants restent illisibles.
Puis-je obfusquer plusieurs fichiers ou tout un projet d'un coup ?
Non. Cette page traite un collage à la fois. Pour plusieurs fichiers, utilisez la CLI ou les plugins de build de javascript-obfuscator.

