前端 代码混淆 方法记录
-
使用babel插件babel-minify,该插件可以对代码进行压缩、混淆等处理,具体可以参考官方文档:https://github.com/babel/minify。
-
使用uglifyjs-webpack-plugin插件,该插件可以对打包后的代码进行压缩和混淆,具体配置方式可以参考官方文档:https://webpack.js.org/plugins/uglifyjs-webpack-plugin/。
-
使用terser-webpack-plugin插件,该插件可以将代码压缩、混淆并生成sourceMap,具体配置方式可以参考官方文档:https://webpack.js.org/plugins/terser-webpack-plugin/。
加密方案如下:(参考来的)
使用RSA秘钥生成工具生成一对公钥(A)和私钥(B),前端保留A,后端保留B。
前端发送数据时,先生成一串随机16位字符串作为AES的秘钥(C),然后使用A使用RSA算法对C进行加密,得到加密后的AES秘钥(D)。将要发送的数据(E)用C使用AES加密,得到密文(F)。将D和F一同发给后端进行处理。
后端处理数据时,先用B对D使用RSA进行解密得到C,用C对F使用AES进行解密得到E,处理后得到结果G,再用C对G进行AES加密得到H,将H返回给前端。
前端接收到H后用C进行解密,得到处理的结果G。
因为对数据进行加密的AES秘钥是每次请求随机生成的,而且传输过程中AES是使用非对称加密的,只要后端持有的RSA私钥不泄露即可保证数据通信安全。