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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM