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


当前回答

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

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

其他回答

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

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

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

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

你绝对应该考虑一下Obfuscriptor。

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

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

我已经使用Jasob多年了,它无疑是最好的混淆器。 它有一个高级的用户界面,但仍然直观和易于使用。 它还可以处理HTML和CSS文件。

使用它的最好方法是给所有私有变量加上下划线之类的前缀,然后使用排序功能将它们组合在一起,并将它们作为混淆的目标进行检查。

用户仍然可以查看您的源代码,但是当您的私有变量从_sUserPreferredNickName转换为。

该引擎将自动统计目标变量的数量,并优先考虑它们以获得最大的压缩。

我不是为雅各布工作,我从推销他们中得不到任何东西,只是提供一些友好的建议。 缺点是它不是免费的,而且有点贵,但与其他选择相比还是值得的——“免费”选项甚至无法相提并论。

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

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