我怎样才能混淆(保护)JavaScript?

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


混淆:

尝试YUI压缩机 。 这是一个非常受欢迎的工具,由Yahoo UI团队构建,增强和维护。

您也可以使用:

  • Google Closure编译器
  • UglifyJS
  • 私人字符串数据:

    保持字符串值是私密的是另一个问题,混淆并不会带来太多好处。 当然,通过将你的源代码打包成一个乱码,混乱的文件,你可以通过默默无闻的方式获得一个安全的简单版本。 大多数情况下,您的用户正在查看源代码,并且客户端上的字符串值是供他们使用的,所以这种私有字符串值通常不是必需的。

    如果你真的有一个价值,你永远不想让用户看到,你会有几个选择。 首先,你可以做一些加密,在页面加载时解密。 这可能是最安全的选择之一,但也可能是不必要的大量工作。 你可能base64编码一些字符串值,这会更容易..但是真正想要这些字符串值的人可以很容易地解码它们 。 加密是真正阻止任何人访问您的数据的唯一途径,大多数人认为这比他们需要的更安全。

    边注:

    Javascript中的混淆已知会导致一些错误。 混淆器越来越好,但许多服装公司认为他们从缩小压缩方面看到了足够的好处,混淆的额外节省并不总是值得的 。 如果你想保护你的源代码,也许你会认为这是值得的,只是为了让你的代码更难阅读。 JSMin是一个很好的选择。


    我很惊讶没有人提到Google的Closure编译器。 它不仅可以缩小/压缩,还可以分析查找和删除未使用的代码,并重写以实现最大限度缩小。 它也可以进行类型检查,并会警告语法错误。

    JQuery最近从YUI Compresser切换到Closure编译器,并看到了“坚实的改进”


    混淆不能真正起作用。 对于任何真正想要获取代码的人来说,这只是一个速度障碍。 更糟糕的是,它使用户不会修复错误(并将修复运回给您),并且使您更难诊断现场问题。 这浪费了你的时间和金钱。

    与律师谈论知识产权法律以及您的合法选择。 “开源”并不意味着“人们可以阅读源代码”。 相反,开放源代码是一种特殊的授权模式,授予自由使用和修改代码的权限。 如果您不授予此类许可证,那么复制您的代码的人就会遭到违反,并且(在世界上大部分地区)您都有合法的选择来阻止他们。

    你真的可以保护你的代码的唯一方法是不发货。 移动重要的代码服务器端,让您的公共Javascript代码执行Ajax调用。

    在这里查看关于混淆器的完整答案。

    链接地址: http://www.djcxy.com/p/73593.html

    上一篇: How can I obfuscate (protect) JavaScript?

    下一篇: Understanding an uncommon argument to main