Français

Obfuscateur JavaScript en ligne et gratuit

Obfusquez votre JavaScript sans créer de compte : collez le code, choisissez un preset et copiez le résultat protégé. Le programme fonctionne de la même façon, mais les noms, les chaînes et la structure sont réécrits : le lire, le copier ou le modifier demande beaucoup plus de temps.

Sans compte

Gratuit pour commencer

L’outil en ligne protège du code jusqu’à 32 Ko et vous permet d’essayer toutes les options, y compris payantes, avant de choisir une formule.

En ligneColler, choisir un preset, copier.
CLI npmPour votre build et la CI.
WindowsDes dossiers entiers sur votre poste.
Mode d’emploi

Obfusquer du JavaScript en ligne en quatre étapes

L’outil est en anglais ; entre guillemets figure le libellé exact de chaque bouton.

  1. Collez votre code dans le panneau de gauche ou importez-le avec « Upload File » (fichiers .js ou .txt).
  2. Choisissez un preset : « Standard », « Balanced » ou « Maximum ». Chaque option payante indique la formule nécessaire en dehors de l’aperçu.
  3. Cliquez sur « Obfuscate ». Sous le résultat, vous voyez quelles options ont été appliquées et si certaines n’ont eu aucun effet.
  4. Copiez ou téléchargez le résultat avec « Copy » ou « Download », et testez-le dans votre application avant de le publier.

Ouvrir l’obfuscateur en ligne ›

Ce que fait chaque preset

  • Standard : renomme les variables, déplace et encode les chaînes et compresse le résultat. Identique à --preset standard dans la CLI.
  • Balanced : ajoute des noms courts, l’obfuscation profonde, la transposition de code, Flat Transform et le chiffrement des chaînes.
  • Maximum : active toutes les options utilisables dans un script d’un seul fichier, y compris les défenses à l’exécution.
Ce qui change

Le même comportement, un autre code

Un exemple réel de cet obfuscateur : noms remplacés, chaînes déplacées dans une table et encodées. Les deux versions renvoient le même résultat.

Avant
function isLicensed(user) {
  var plan = user.plan;
  if (plan === "pro" || plan === "team") {
    return user.key !== "TRIAL-KEY";
  }
  return false;
}
Après (mis en forme pour la lecture)
var _$_2476=["\x70\x72\x6F","\x74\x65\x61\x6D",
  "\x54\x52\x49\x41\x4C\x2D\x4B\x45\x59"];
function isLicensed(b)
{
	var a=b.plan;
	if(a=== _$_2476[0x0]|| a=== _$_2476[0x1])
	{
		return b.key!== _$_2476[0x2]
	}
	return false
}

On ne peut plus rechercher TRIAL-KEY dans le fichier. Avec « Encrypt Strings », les chaînes n’apparaissent même plus sous forme encodée — voir la page sur le chiffrement de JavaScript (en anglais).

Pour des projets entiers

Obfusquer le JS dans votre build

Obfusquez le bundle déjà construit et minifié, jamais votre code source. Sans compte, la CLI applique les options gratuites sur votre machine : rien n’est envoyé et il n’y a pas de limite de taille. Les options payantes passent par le service hébergé.

npm install --save-dev javascriptobfuscator-com
npx javascriptobfuscator-com --input dist --output dist-protected

Des plugins existent pour Rollup, esbuild, Rspack, Parcel et Gulp ; pour du code Node.js, utilisez --target node (détails sur la page CLI, en anglais). Pour des dossiers entiers et du JavaScript dans des pages HTML, PHP, ASP ou JSP, il y a l’application de bureau Windows.

Avant de publier

Ce que l’obfuscation ne fait pas

  • Elle ne cache pas les secrets. Une clé d’API dans le navigateur reste lisible ; gardez-la sur le serveur.
  • Elle ne remplace pas les contrôles côté serveur. Celui qui exécute le code le contrôle.
  • Testez toujours la copie protégée et conservez les noms appelés par d’autres codes (API publiques, callbacks de frameworks).
  • Ne publiez pas les source maps : elles rétablissent les noms d’origine.
Formules

Prix publiés, en dollars US par mois

FormulePrixPour quoi
Free0 USDOutil en ligne (jusqu’à 32 Ko), options gratuites de la CLI sans limite, API avec limites ; renommage et encodage des chaînes.
Basic29 USDFichiers plus gros, compression, obfuscation profonde et transposition de code.
Corporate49 USDPlus de capacité, renommage des noms globaux et insertion de code mort.
Enterprise99 USDCapacité maximale, chiffrement des chaînes et Flat Transform.

Le détail des limites et des options est sur la page des tarifs (en anglais).

Questions fréquentes

À propos de l’obfuscateur JavaScript

L'obfuscateur est-il gratuit ?

Oui. L’outil en ligne ne demande pas de compte, protège du code jusqu’à 32 Ko et permet d’essayer toutes les options. Sans compte, la CLI npm applique les options gratuites sur votre machine, sans envoyer le code et sans limite de taille. Pour les options avancées, les formules commencent à 29 dollars US par mois.

Peut-on revenir au code d'origine ?

Le code qui s’exécute dans le navigateur peut toujours être analysé. Nous avons testé des outils comme webcrack : les chaînes reviennent souvent, mais aucun nom de variable d’origine n’a été récupéré. L’obfuscation rend la compréhension et la réutilisation du code bien plus longues ; ce n’est pas une barrière de sécurité, ni un moyen de cacher des clés. Test de désobfuscation (en anglais)

L'obfuscation rend-elle le code plus lent ou plus gros ?

Renommer les identifiants rend le code plus petit. Les tables de chaînes, le chiffrement et les changements de flux de contrôle le rendent plus gros et peuvent ajouter un peu de travail au démarrage. Mesurez la taille et le temps de chargement avec votre propre code.

Mon code est-il envoyé à un serveur ?

Avec l’outil en ligne, oui. Sans compte, la CLI npm applique les options gratuites sur votre machine et n’envoie rien ; les options payantes utilisent le service hébergé. L’application Windows, en mode Local Standard, protège aussi les fichiers ES5 simples hors ligne.

Essayez avec votre propre code

Collez n’importe quel JavaScript, choisissez un preset et comparez le résultat. Aucune inscription nécessaire.