什么是JavaScript压缩和混淆?
开发人员编写JS代码的时候,有许多格式规范,写出来的代码十分易读、方便开发。 而各大网站使用的JS代码,多数都是挤成一团的,肉眼看上去毫无章法可言,可读性几乎为零。
这些让人“不忍直视”的代码,就是被压缩和混淆过的。一般的压缩通常只是除去注释、空行 和空格等,而混淆还会将变量名、函数名等替换成一些无意义的字符,还可能会添加一些 无意义的代码。
如何进行压缩和混淆?
目前比较流行的混淆工具有Uglify和Google Closure Compiler等。在混淆的 过程中,工具还会对代码进行优化,有点类似于C语言编译器的预处理。
压缩、混淆的作用
主要是提高JavaScript代码的运行效率,缩小代码体积。一定程度上还可以隐藏代码的运行逻辑 起到版权保护的作用。
随便写写
个人认为压缩、混淆对代码的保护作用十分有限。如果使用的是一般的混淆方法, 很容易就能够还原出大致的框架。部分混淆方法混淆的代码甚至可以完整还原出所有变量名。 尽管有些比较“变态”的加密工具,如JavaScript Obfuscator,可以真正做到加密代码, 但这最多也就是提高逆向成本罢了。如果真的既要保护代码又非得用JS不可, 感觉WebAssembly是个比较好的解决方案。