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