Obfuscation is supported in these types of files

Both JavaScript code and HTML markup will be protected.

JS files
Raw Javascript files
Pure HTML files
Java Server Pages
Download JavaScript Obfuscator
from WinXP to Win10


Mac OS
from 10.4 to current version


Any linux distro for x86


Interactive obfuscation of files of various types

Use controls at the right to see how different options affect result of obfuscation; use player-like buttons to navigate between samples and to control playback.

some text in title
Obfuscate and encode JavaScript with our JavaScript Obfuscator and JavaScript Encoder. It protects JavaScript in html, asp, php, jsp files by obfuscating and encoding it. Obfuscation and encoding of javascript can be controled by a lot of options. Obfuscated and encoded JavaScript runs on any JavaScript-compatible interpreter. Our Obfuscator mangles javascript in all files in the project. Mangling and scrambling of javascript is controlled via commandline or GUI. It can be treated as JavaScript compiler.


Unique features of JavaScript Obfuscator
Protects JavaScript in HTML, PHP ASP.NET, JSP files too

You can protect JavaScript in .js files, as well as in HTML, PHP, ASP.NET, JSP, WSH/WSC files too.

HTML Markup can also be mangled

JavaScript Obfuscator can also make HTML markup less readable, by removing whitespaces, lines and comments, encoding some characters as character escapes, and uglifying tag names and attribute names.

Protect dynamic JavaScript

Protect JavaScript code contained in print()-like calls in the lines written in other language like PHP, Ruby, Java or even C++.

Code is protected on your computer, not in cloud

Your code is protected locally on your computer. No internet connection is required for protecting your code by JavaScript Obfuscator.

Make your code expiring

Bind your code to certain domain or server name, allow it to run until certain date or even only on Fridays. Implement your own licensing condition checks and actions if they are violated.

Watermark your code

Make different versions of your code and ship each of them to different customer. This will allow you to find out customer how distributed your code without your permission.

  • Evaluation use only
  • Expires in 3 monthes
  • Instead of mangling, ReplacementFor_ gets prepended to symbols
Single developer
  • Can be used by only 1 developer
  • Does not expire
  • All features are available.
Contact us
  • All developers can use it
  • Does not expire
  • All features are available.
Features of GUI for JavaScript Obfuscator
Full support for multifile projects, with files of different types

You can create projects containing files of several types (e.g. .html, .php and .js files in a single projects), all symbols will be consistently renamed in all files.

Has GUI and command line versions

Stunnix JavaScript Obfuscator has powerfull GUI shell called Project Manager. It can generate command line scripts to build/rebuild/clean entire or part of your project. Also low-level command line interface is available.

Supports Windows, Mac and Linux

GUI and commandline versions of JavaScript Obfuscator can be run on Windows, Mac and Linux.

Debugging mode included

Among dozens presets, there are 3 presets for debugging your code. They help preparing your code for protection by applying the protection gradually, that makes testing your code easier.

Extremely configurable

A lot of options to tightly control obfuscation and checks for licensing conditions are available - each function has a lot of options. For example, there are 5 ways to mangle symbols (names of functions and variables).

String inspector available

You can generate a list of strings found in your project that look like containing JavaScript code. If they really contain it, you will have to wrap those strings into calls of special functions, so symbols in those strings also become mangled.

Screenshots of Project Manager tool

Below are screenshots of Stunnix JavaScript Obfuscator Project Manager GUI. There is a LIVE ONSITE demo of it too!

  • Project menu
  • Settings menu
  • Meta options - locations of directories, project title
  • Browsing file processing modes
  • Editing settings for one of file processing modes
  • Assigning modes to files
  • Configuring how to handle files, not registered in the project
  • Switching code mangling options
  • Configuring how code is encoded
  • Configuring mangling of html markup around code
  • Menu items for Build menu
  • Menu items for Tools menu
  • Screen letting to extract symbols from all files in certain directory
  • Extracting names of symbols from ActiveX components
  • Building command line for command line version of obfuscator
  • Menu items for Symbols menu
  • Inspecting list of strings encountered in the code
  • Editing case-insensitive list of user exceptions
  • Editing user-specified exceptions
  • Editing user-specified antiexceptions
  • Editing list of suffixes to keep in symbols
  • Editing user-specified symbol mapping
  • Viewing resultant symbol mapping
  • Viewing list of autoextracted exceptions
  • Menu items for Help menu

The obfuscation of raw JavaScript code means

Click on the small button "more info" below each item to expand details.

Replacing symbol names with non-meaningfull ones, e.g. replacing list_of_customers with zcadaa4fc81
Replacing numeric constants with expressions, e.g. replacing 232 with (0x14b6+2119-0x1c15)
Replacing characters in strings with their hex escapes, e.g. turning string "cust" into "\x63\x75\x73\x74"
Removing or obfuscation of comments
Removing spaces and tabs in the lines of code
Joining all lines in your code
Encoding the result of previous stages

Besides obfuscation of raw JavaScript code mentioned above, the following extra protection is applied to web documents

Click on the small button "more info" below each item to expand details.

All JavaScript code inside <SCRIPT> tags is obfuscated
Code inside attributes (e.g. onclick) is obfuscated
HTML comments are removed from the output (but server-side markup like SSI is not)
Extra spaces and line breaks are removed intelligently
The content of documents and the content of attribute values are partially converted into entities in a random way
The case of letters in tag and attribute names is randomly mixed

The features summary of JavaScript Obfuscator

Click on the small button "more info" below each item to expand details.

It can compress names of local variables (like YUI Compressor does) while obfuscating (or keeping the same) names of all other symbols; names of local variables can also be mangled after compressing them to get more cryptic code
It extracts all string constants found in your code, and lets browse all of them, or those equal to symbol used in your project (most probably they are property name), or those containing some symbol used in your project (probably used in eval()-like calls), or those looking like symbol. This allows to quickly compose list of "exceptions" - names of symbols that should not be modified.
JavaScript Obfuscator is cross-platform product, it can be easily installed and used on Windows, Mac OS X, Linux, Solaris or any other Unix OS.
By default encoding of JavaScript code is applied to the result of obfuscation performed by JavaScript Obfuscator
JavaScript Obfuscator has support for JavaScript expiration, binding to server and user-implemented licensing checks with standard or user-specified actions (such as showing alerts)
JavaScript Obfuscator includes Obfuscation Project Manager - an advanced intuitive cross-platform (Windows, MacOS X, Linux and Unix) graphical user interface for protecting any size project created with JavaScript with mixed types of code (client-side and server-side), complete with with IDE-like functionality (supporting Build, Rebuild Changed, Clean)
It can extract symbols for any API - just provide a directory with the files defining API
Protect JavaScript inside string constants in any file with any programming language - Java, C/C++, C# or Pascal
JavaScript Obfuscator has special debugging mode and unique tools to generate a list of symbols that can't be changed, saving development time.
JavaScript Obfuscator supports several advanced ways to generate obfuscated names including using shortest possible name.
JavaScript Obfuscator supports all JavaScript syntax constructs, including inline regexps and statements terminated with newlines
JavaScript Obfuscator has state of the art support for the obfuscation and encoding of client-side and server-side JavaScript scripts embedded into HTML, PHP, ASP and ASP.NET, WSH/WSC and of course in raw files.
JavaScript Obfuscator also can protect html, php, .asp and .jsp and other files that don't contain any scripts at all!
JavaScript Obfuscator has support for obfuscating dynamic JavaScript code inside string arguments of "print()" calls and the like
Full support for projects consisting of several JavaScript files and use of eval
Many options to tightly control the obfuscation and encoding of JavaScript Obfuscator
Ability to watermark JavaScript and to make the study of changes between versions of the same file more difficult
JavaScript Obfuscator allows creation of lists of symbols that shouldn't be modified; Many exception tables for standard APIs and libraries are included
Obfuscated and/or encoded code runs on any JavaScript interpreter
Full support for JavaScript.NET and ECMAScript
Used by a lot of companies

Please introduce your self

Why we are asking this?