JavaScript压缩和混淆


什么是JavaScript压缩和混淆?

开发人员编写JS代码的时候,有许多格式规范,写出来的代码十分易读、方便开发。 而各大网站使用的JS代码,多数都是挤成一团的,肉眼看上去毫无章法可言,可读性几乎为零。

这些让人“不忍直视”的代码,就是被压缩和混淆过的。一般的压缩通常只是除去注释、空行 和空格等,而混淆还会将变量名、函数名等替换成一些无意义的字符,还可能会添加一些 无意义的代码。

如何进行压缩和混淆?

目前比较流行的混淆工具有Uglify和Google Closure Compiler等。在混淆的 过程中,工具还会对代码进行优化,有点类似于C语言编译器的预处理。

压缩、混淆的作用

主要是提高JavaScript代码的运行效率,缩小代码体积。一定程度上还可以隐藏代码的运行逻辑 起到版权保护的作用。

随便写写

个人认为压缩、混淆对代码的保护作用十分有限。如果使用的是一般的混淆方法, 很容易就能够还原出大致的框架。部分混淆方法混淆的代码甚至可以完整还原出所有变量名。 尽管有些比较“变态”的加密工具,如JavaScript Obfuscator,可以真正做到加密代码, 但这最多也就是提高逆向成本罢了。如果真的既要保护代码又非得用JS不可, 感觉WebAssembly是个比较好的解决方案。


文章作者: LouisZ
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LouisZ !
  目录