Getting Started

Welcome to Obfuscator.io

Obfuscator.io transforms your readable source code into a protected version that's difficult to understand and reverse-engineer. It's perfect for protecting proprietary algorithms, licensing logic, and business-critical code.

Quick Start

  • 1. Paste your code

    Enter your JavaScript code in the left editor panel. You can paste code directly or use the file upload feature for batch processing.

  • 2. Choose a preset

    Select a preset from the dropdown in the Options panel. Start with Low Obfuscation for minimal changes or Medium Obfuscation for balanced protection. VM presets provide the strongest security.

  • 3. Click "Obfuscate"

    Hit the Obfuscate button to transform your code. The protected output appears in the right panel.

  • 4. Copy or download

    Use the Copy button or Download to get your obfuscated code. The output is ready to use in production.

Code Compatibility

Important

Obfuscation (both VM and non-VM) transforms your code in ways that affect certain JavaScript runtime behaviors. Your code must not rely on these features:

  • function.toString() / class.toString()

    Obfuscation completely changes the source code representation. Code that parses or compares function source will break.

  • function.name / class.name

    Function and class names are renamed to random identifiers. Code that relies on .name for logging, serialization, or reflection will get obfuscated names.

// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name);     // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"

// After obfuscation
console.log(calculatePrice.name);     // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code

Basic Options

Before obfuscating, configure these basic options to match your target environment.

Target

target

Specifies the execution environment for the obfuscated code:

  • browser — For code running in web browsers (default)
  • browser-no-eval — For browsers with Content Security Policy restrictions that disallow eval()
  • node — For Node.js applications. Disables browser-specific features like domainLock

Strict Mode

strictMode

Controls how the obfuscator handles JavaScript strict mode:

  • Auto (default) — Auto-detect strict mode from the code. The obfuscator analyzes your code for "use strict" directives
  • Enable — Force strict mode treatment for all code, regardless of whether "use strict" is present
  • Disable — Only explicit "use strict" directives in the source code are treated as strict mode

Understanding Presets

Presets are pre-configured option combinations. There are two separate groups:

VM Presets

Pro

(bytecode virtualization)

PresetSecurityPerformanceFeatures
VM LowGood
~3.5x
Basic VM, indirect dispatch
VM MediumStrong
~4-5x
+ Opcode shuffle, encoding, decoys
VM HighVery Strong
~5-6x
+ Dead code, stateful opcodes, stack encoding
VM Ultra High
Maximum
~12-20x
+ Non-VM obfuscation layers

Non-VM Presets

(standard obfuscation)

PresetProtectionPerformanceFeatures
DefaultBasic
Minimal
String array, simplify
LowLight
~1.1x
+ Self-defending, disable console
MediumModerate
~1.5x
+ Control flow, dead code, base64
HighStrong
~2x
+ Debug protection, rc4 encoding

Interface Overview

  • Input Editor

    — Paste or type your JavaScript source code. Drag & drop files or use the upload button. HTML files with inline scripts are also supported
    Pro
    .
  • Output Panel

    — Displays the obfuscated result. Use Copy or Download buttons to get the protected code.
  • Preset Selector

    — Choose VM or Non-VM presets. VM presets are grouped at the top. The preset determines base options that you can customize.
  • Options Panel

    — Fine-tune obfuscation settings. Click the ? icon next to any option to see its documentation.
  • Obfuscate Button

    — Transforms your code using selected options. VM presets are processed server-side; non-VM presets run in your browser.
  • Multi-file Upload

    Pro
    — Process multiple files at once and download as ZIP.
  • History Panel

    Pro
    — Access your previous obfuscations and restore input/output.
Getting Started | Obfuscator.io Documentation