JS 代码混淆
什么是 JS 代码混淆?
写前端的同学应该都有这样的顾虑:辛辛苦苦写的代码,在浏览器里打开开发者工具就能看到源码,稍微懂点的人很容易就能复制走。JS 代码混淆就是用来解决这个问题的——它会把你的代码变成一堆难以阅读的"乱码",变量名变成 _0x1a2b 这样的东西,字符串也被加密处理,虽然功能不变,但别人想看懂可就难了。
混淆选项说明
- 压缩代码:删除空格和换行,减小文件体积
- 控制流扁平化:打乱代码执行顺序,增加分析难度(会增大代码体积)
- 插入死代码:添加永远不会执行的代码,干扰阅读
- 调试保护:检测开发者工具,阻止断点调试
- 禁用 console:清空 console 对象,防止输出调试信息
- 自我保护:防止代码被格式化还原
- 字符串数组:将字符串提取到数组中,通过函数调用获取
使用建议
- 普通保护:使用默认选项即可,体积增加不多
- 中等保护:开启"控制流扁平化",代码更难分析
- 强保护:全部开启,但代码体积会显著增大,运行速度可能变慢
- 生产环境建议先测试,确保混淆后功能正常
注意事项
混淆只是增加破解难度,不是绝对安全。核心逻辑和敏感数据(如密钥)还是应该放在后端。另外,混淆后的代码体积会变大,对性能要求高的场景要权衡一下。本工具使用 javascript-obfuscator 库,所有处理都在浏览器本地完成,代码不会上传到服务器。
