我想做一个JavaScript应用程序,不是开源的,因此我希望学习如何可以混淆我的JS代码?这可能吗?


当前回答

有许多免费的JavaScript混淆工具;然而,我认为重要的是要注意,很难混淆JavaScript到不能进行逆向工程的地步。

为此,我在一定程度上使用了几个选项:

YUI Compressor. Yahoo!'s JavaScript compressor does a good job of condensing the code that will improve its load time. There is a small level of obfuscation that works relatively well. Essentially, Compressor will change function names, remove white space, and modify local variables. This is what I use most often. This is an open-source Java-based tool. JSMin is a tool written by Douglas Crockford that seeks to minify your JavaScript source. In Crockford's own words, "JSMin does not obfuscate, but it does uglify." It's primary goal is to minify the size of your source for faster loading in browsers. Free JavaScript Obfuscator. This is a web-based tool that attempts to obfuscate your code by actually encoding it. I think that the trade-offs of its form of encoding (or obfuscation) could come at the cost of filesize; however, that's a matter of personal preference.

其他回答

非开源的基于javascript的应用程序是相当愚蠢的。Javascript是一种客户端解释语言。混淆不是什么保护…

JS混淆通常是为了减少脚本的大小,而不是“保护”它。如果你不希望你的代码是公开的,Javascript不是正确的语言。

市面上有很多工具,但大多数都有“压缩器”(或“迷你器”)的名字。

我的印象是,一些企业(例如:JackBe)将加密的JavaScript代码放在*.gif文件中,而不是JS文件中,作为一种额外的混淆措施。

试试这个工具Javascript混淆器

我在自己的HTML5游戏中使用了它,不仅将其大小从950KB减少到150 kb,而且还使源代码不可读闭包编译器和迷你器是可逆转的,我个人不知道如何扭转这种混乱。

我建议先用YUI压缩机之类的东西缩小,然后用http://www.javascriptobfuscator.com/之类的东西将所有字符串和数字转换为十六进制值

这样,代码就会变得几乎不可能被理解,我认为在这个阶段,黑客重新执行你的代码所花费的时间要比他从头重写的时间要多。重写和克隆是你无法停止的。毕竟我们是自由人!

我很惊讶没有人提到谷歌的闭包编译器。它不只是缩小/压缩,它分析找到并删除未使用的代码,并重写以最大限度地缩小。它还可以进行类型检查,并对语法错误发出警告。

JQuery最近从YUI压缩器切换到闭包编译器,并看到了“坚实的改进”