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


当前回答

你可以随心所欲地混淆javascript源代码,但它总是可以通过要求所有源代码实际运行在客户端机器上进行逆向工程…我能想到的最好的选择是用服务器端代码完成所有的处理,而javascript所做的所有客户端代码都是向服务器本身发送处理请求。否则,任何人都将始终能够跟踪代码正在执行的所有操作。

有人提到base64是为了保证字符串的安全。这是个糟糕的主意。Base64可以立即被那些想要对你的代码进行反向工程的人识别出来。他们要做的第一件事就是解编码,看看是什么。

其他回答

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

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

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

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

Dean Edward's Packer是一个很好的混淆器,尽管它主要是混淆代码,而不是代码中可能存在的任何字符串元素。

参见:在线Javascript压缩工具,并从下拉菜单中选择Packer (Dean Edwards)

你绝对应该考虑一下Obfuscriptor。

我超越了我们从其他工具(如YUI Compressor或谷歌Closure)中看到的典型Javascript缩小技巧。

经过模糊处理的代码看起来更像是加密的。不像我以前见过的任何东西。

你试过香蕉脚本吗?它生成高度压缩且完全不可读的代码。