代码混淆
代码混淆方式
当使用现代前端构建工具(如Webpack、Vite等)运行 npm run build
(注:在package.json文件中的"scripts"查看build是否有设置别名)后:
-
会生成
dist
目录 -
里面的JS文件通常会被混淆(取决于具体配置)
-
混淆后的特征:
- 变量名被替换为短的无意义字符(如
a
、b
、_0x3a2f
) - 代码结构被改变但功能不变
- 注释和空白字符被移除
- 字符串可能被编码
- 变量名被替换为短的无意义字符(如
import{r as i,e as m,j as b,o as p,i as l,h as e,l as c}from"./index-B6_XdiGE.js";const N={__name:"basicInfoForm",props:{info:{type:Object,default:null}},setup(o){const d=i({tableName:[{required:!0,message:"请输入表名称",trigger:"blur"}],tableComment:[{required:!0,message:"请输入表描述",trigger:"blur"}],className:[{required:!0,message:"请输入实体类名称",trigger:"blur"}],functionAuthor:[{required:!0,message:"请输入作者",trigger:"blur"}]});return(V,a)=>{const n=m("el-input"),u=m("el-form-item"),r=m("el-col"),f=m("el-row"),s=m("el-form");return p(),b(s,{ref:"basicInfoForm",model:o.info,rules:c(d),"label-width":"150px"},{default:l(()=>[e(f,null,{default:l(()=>[e(r,{span:12},{default:l(()=>[e(u,{label:"表名称",prop:"tableName"},{default:l(()=>[e(n,{placeholder:"请输入仓库名称",modelValue:o.info.tableName,"onUpdate:modelValue":a[0]||(a[0]=t=>o.info.tableName=t)},null,8,["modelValue"])]),_:1})]),_:1}),e(r,{span:12},{default:l(()=>[e(u,{label:"表描述",prop:"tableComment"},{default:l(()=>[e(n,{placeholder:"请输入",modelValue:o.info.tableComment,"onUpdate:modelValue":a[1]||(a[1]=t=>o.info.tableComment=t)},null,8,["modelValue"])]),_:1})]),_:1}),e(r,{span:12},{default:l(()=>[e(u,{label:"实体类名称",prop:"className"},{default:l(()=>[e(n,{placeholder:"请输入",modelValue:o.info.className,"onUpdate:modelValue":a[2]||(a[2]=t=>o.info.className=t)},null,8,["modelValue"])]),_:1})]),_:1}),e(r,{span:12},{default:l(()=>[e(u,{label:"作者",prop:"functionAuthor"},{default:l(()=>[e(n,{placeholder:"请输入",modelValue:o.info.functionAuthor,"onUpdate:modelValue":a[3]||(a[3]=t=>o.info.functionAuthor=t)},null,8,["modelValue"])]),_:1})]),_:1}),e(r,{span:24},{default:l(()=>[e(u,{label:"备注",prop:"remark"},{default:l(()=>[e(n,{type:"textarea",rows:3,modelValue:o.info.remark,"onUpdate:modelValue":a[4]||(a[4]=t=>o.info.remark=t)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"])}}};export{N as default};
为什么要代码混淆
- 保护知识产权
- 防止竞争对手轻易复制你的核心算法和业务逻辑
- 增加逆向工程的难度
- 提高安全性
- 隐藏敏感逻辑(如加密算法、授权机制)
- 减少潜在的安全漏洞暴露
- 减小文件体积
- 移除注释和空白字符
- 缩短变量名
- 通常可使文件缩小20-50%
- 性能优化
- 某些混淆工具会优化代码结构
- 更短的标识符可以减少解析时间