文章目录
- 引言
- I 压缩、混淆、加密技术简述
-
- 1.1 压缩、混淆、加密技术
- 1.2 JavaScript 混淆技术
- II JavaScript脚本混淆工具javascript-obfuscator 使用方法
-
- 2.1 命令行用法
- 2.2 在浏览器中使用
- 2.3 使用本地node_modules
- 2.4 `obfuscate(sourceCode, options)`方法
- 2.5 禁用和启用代码片段的混淆
- 2.6 命令行选项
- III javascript-obfuscator根据需求修改配置,从而调整混淆强度
-
- 3.1 中等混淆强度的配置选项
- 3.2 重度混淆,性能低
- 3.3 轻度压缩,高性能
- 3.4 默认值,高性能
引言
应用场景: 涉及签名加密算法的js,包含敏感数据的js
I 压缩、混淆、加密技术简述
1.1 压缩、混淆、加密技术
- 代码压缩:即去除JavaScript 代码中的不必要的空格、换行等内容,使源码都压缩为几行内容,降低代码可读性,当然同时也能提高网站的加载速度。
- 代码混淆:使用变量替换、字符串阵列化、控制流平坦化、多态变异、僵尸函数、调试保护等手段,使代码变得难以阅读和分析,达到最终保护的目的。但这不影响代码原有功能。是理想、实用的JavaScript保护方案
- 代码加密:可以通过某种手段将 JavaScript 代码进行加密,转成人无法阅读或者解析的代码,如将代码完全抽象化加密,如 eval 加密。另外还有更强大的加密技术,可以直接将 JavaScript 代码用 C/C++ 实现,JavaScript 调用其编译后形成的文件来执行相应的功能,如Emscripten 还有 WebAssembly。
1.2 JavaScript 混淆技术
变量混淆
将带有含意的变量名、方法名、常量名随机变为无意义的类乱码字符串,降低代码可读性,如