代码混淆

7 阅读2分钟

代码混淆

代码混淆方式

当使用现代前端构建工具(如Webpack、Vite等)运行 npm run build (注:在package.json文件中的"scripts"查看build是否有设置别名)后:

  1. 会生成 dist 目录

  2. 里面的JS文件通常会被混淆(取决于具体配置)

  3. 混淆后的特征:

    • 变量名被替换为短的无意义字符(如 ab_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};

为什么要代码混淆

  1. 保护知识产权
  • 防止竞争对手轻易复制你的核心算法和业务逻辑
  • 增加逆向工程的难度
  1. 提高安全性
  • 隐藏敏感逻辑(如加密算法、授权机制)
  • 减少潜在的安全漏洞暴露
  1. 减小文件体积
  • 移除注释和空白字符
  • 缩短变量名
  • 通常可使文件缩小20-50%
  1. 性能优化
  • 某些混淆工具会优化代码结构
  • 更短的标识符可以减少解析时间