electron 代码加密的一种实现

electron打包后所有资源都会放到asar压缩文档里面,这个文件是可以被解压的。

打包时虽然可以对js代码进行混淆(terser-webpack-plugin),但是这个方式只是增加了阅读难度,并没有实现代码的加密。

对于有保密需求的逻辑最好的方式就是使用(N_API)实现。

主进程和渲染进程代码加密的一种实现:

1、主进程和渲染进程分别生成唯一的js文件(压缩和混淆):main.js和renderer.js

2、在生成完成后打包之前对renderer.js文件进行可逆加密(如AES)

3、打开窗口时读取renderer.js文件进行解密并运行(executeJavaScript

这种方式也有缺陷,加解密函数都暴露在main.js文件里面,简单的混淆并不可靠,最后可以对main.js再次进行(加密

具体过程:

1、对renderer.js的生成不要自动插入html页面:inject配置项

 2、在build完成时加密renderer.js

 3、在主进程创建窗口完成时执行executeJavaScript方法加载renderer.js

原文地址:https://www.cnblogs.com/laoq112/p/14872102.html