如何混淆(保护)JavaScript?

JavaScript010

如何混淆(保护)JavaScript?,第1张

可以使用:

Google Closure编译器或其他第三方混淆工具

Google Closure编译器仍在使用,并且UglifyJS可以通过节点包管理器在本地运行:npm install -g uglify-js

私有字符串数据:

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

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

推荐用 Yahoo YUI Compressor,或 白度一个压缩工具

所谓 JavaScript 混淆,基本就是

1 重命名局部变量(YUI Compressor 也可以配置参数,拒绝变量重命名)

2 移除代码空白(Space、Tab、Line-Feed)

在相同语义的情况下压缩代码,比如去掉末尾分号(Remove Terminator Semicolons),常量替换(Constant Propagation)