我想制作一个非开源的JavaScript应用程序,因此我想学习如何混淆我的JS代码?这可能吗?
混淆:
尝试使用 YUI Compressor 。这是一个非常流行的工具,由Yahoo UI团队构建,增强和维护。
您还可以使用:
更新:这个问题最初是在10多年前提出的,并且不再维护YUI。 Google Closure编译器仍在使用中,并且可以通过节点包管理器在本地运行UglifyJS:npm install -g uglify-js
npm install -g uglify-js
私有字符串数据:
将字符串值保持私有是另一个问题,而混淆并不会带来太大好处。当然,通过将源打包成乱码,最小的混乱,您可以通过 模糊* 性 获得轻便的 安全性 。大多数情况下,查看源的是您的用户,客户端上的字符串值是供他们使用的,因此通常不需要这种私有字符串值。 *
如果您确实拥有一个您不希望用户看到的价值,那么您将有两个选择。首先,您可以执行某种加密,该加密在页面加载时解密。那可能是最安全的选择之一,但也可能是很多不必要的工作。您可能可以对一些字符串值进行base64编码,这会更容易..但是真正想要这些字符串值的人可以 轻松地对其进行解码 。加密是真正阻止任何人访问您的数据的唯一方法,大多数人发现加密比他们需要的安全性更高。
边注:
众所周知,JavaScript中的混淆会导致一些错误。混淆器对此有所改善,但是许多公司认为他们发现 缩小 和 压缩后会获得 足够的好处,而增加混淆所带来的节省 并不总是值得解决的 。如果您想保护自己的源代码,也许您会觉得值得这样做,只是使您的代码更难阅读。 JSMin 是一个很好的选择。