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


当前回答

试试这个工具Javascript混淆器

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

其他回答

有许多免费的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/HTML/CSS混淆器/压缩器,你也可以尝试Patu Digua。

混淆永远不会真正起作用。对于任何真正想要获取您代码的人来说,这只是一个减速带。更糟糕的是,它使您的用户无法修复错误(并将修复文件发送给您),并且使您更难在该领域诊断问题。这是浪费你的时间和金钱。

和律师谈谈知识产权法以及你的法律选择。“开源”并不意味着“人们可以阅读源代码”。相反,开源是一种特定的许可模型,允许自由使用和修改您的代码。如果您不授予这样的许可证,那么复制您的代码的人就是违法的,(在世界上大多数地区)您可以通过法律手段阻止他们。

真正能保护代码的唯一方法是不发布它。将重要的代码移到服务器端,并让公共Javascript代码对其进行Ajax调用。

点击这里查看我关于混淆器的完整回答。

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

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

你绝对应该考虑一下Obfuscriptor。

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

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