小编典典

如何混淆(保护)JavaScript?

javascript

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


阅读 367

收藏
2020-04-22

共1个答案

小编典典

可以使用:

  • Google Closure编译器
  • UglifyJS

更新:这个问题最初是在10多年前提出的,并且不再维护YUI。 Google
Closure编译器仍在使用,并且UglifyJS可以通过节点包管理器在本地运行:npm install -g uglify-js

私有字符串数据:

将字符串值设为私有是另一个问题,而混淆并不会带来太大好处。当然,通过将源打包成乱码,最小的混乱,您可以通过 模糊* 获得轻便的
安全性 。大多数情况下,查看源的是您的用户,客户端上的字符串值是供他们使用的,因此通常不需要那种私有字符串值。
*

如果您确实拥有一个您不希望用户看到的价值,那么您将有两个选择。首先,您可以进行某种加密,该加密在页面加载时解密。那可能是最安全的选择之一,但也可能是很多不必要的工作。您可能可以对一些字符串值进行base64编码,这会更容易..但是真正想要这些字符串值的人可以
轻松地对其进行解码 。加密是真正阻止任何人访问您的数据的唯一方法,大多数人发现加密比他们需要的安全性更高。

边注:

众所周知,JavaScript中的混淆会导致一些错误。混淆器对此有所改善,但是许多公司认为他们可以从 压缩压缩中获得
足够的好处,而增加混淆所带来的节省 并不总是值得的 。如果您想保护自己的源代码,也许您会认为值得这样做,只是使您的代码更难阅读。JSMin是一个很好的选择。

2020-04-22