# 前端安全策略

# 前端计算与安全防御

  • 前端加密与混淆
  • 高性能计算法则
  • ASMJS 生产环境
  • WebAssembly

# 前端加密与混淆

# 混淆【混淆的概念和混淆的技术】

  • UglifyJS:目前最流行的
  • JSPacker:PHP 开发的
  • Closure Compoiler: Java 开发的
  • JS Min:C 写的
# UglifyJS2 整个 js 压缩过程
  • parser: 用于实现抽象语法树(AST)
  • the code generator: 通过 AST 生成 JS 代码和 source map
  • compressor: 用于 JS 代码的压缩
  • mangler: 用于减少局部变量的命名,用单字母替换
  • scope analyzer,用来判断变量定义范围和变量引用范围的工具
  • tree walker, AST 树遍历工具
  • tree transformer: AST 树转换工具
// 变量混淆
const a = 123;
->
const bxo = 123;
// 逻辑混淆
function render(obj){
  console.log(obj.title);
}
render({title: "buy"});
->
var self = this, o={};
o.__defineSetter__("t", function(e){
  self[t("elosnoc")][t("gol")](e[t("eltit")])
});
function t(e){
  return e.split("").reverse().join("");
}
o[t("eltit")] = t("yub");
o.t=o;

aaencode/ jjencode 字符混淆

# 反混淆【常用破解技术】

# 加密【加密概念与加密技术】

# 反加密【常用破解技术】