JavaScript Obfuscator
Protect your JavaScript with configurable obfuscation.
Input JavaScript
Options
Preset
Target
String array encoding
Output
Heavy obfuscation warning: output is larger and slower than the original.
Always test the obfuscated file in a real browser/Node before shipping. Some options
(self-defending, RC4) can break code that self-modifies or uses dynamic strings.
Obfuscation is not encryption
This tool makes your JavaScript much harder to read, reverse-engineer and copy — but it does not make it impossible. Every technique it applies (identifier renaming, string arrays, control-flow flattening, dead code) can in principle be undone by a determined analyst. Use obfuscation as one layer of a defense-in-depth strategy alongside legal protections.
Frequently asked questions
Does obfuscation guarantee my code can’t be reverse engineered?
No. Obfuscation raises the cost of reverse engineering significantly but it is not encryption. Skilled attackers can always reconstruct behaviour. Use it as one layer of protection, not a security guarantee.
Which preset should I use?
Start with Low if you need readable output, Medium for most production code, and High only when performance and file size are less important. Higher presets increase output size and may slow down your app.
Will obfuscated code still work in the browser and Node.js?
Yes. Output targets ECMAScript 2015+ by default and runs in modern browsers and Node.js. Avoid obfuscating code that must remain self-documenting, such as vendored libraries.