[發(fā)明專利]一種Node.js的代碼加密及底層運行時解密辦法有效
| 申請?zhí)枺?/td> | 201910390922.0 | 申請日: | 2019-05-10 |
| 公開(公告)號: | CN110147656B | 公開(公告)日: | 2020-10-30 |
| 發(fā)明(設(shè)計)人: | 易和陽;戈洋 | 申請(專利權(quán))人: | 重慶迅燕科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京中濟緯天專利代理有限公司 11429 | 代理人: | 石燕妮 |
| 地址: | 400065 重慶市南岸區(qū)崇文*** | 國省代碼: | 重慶;50 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 node js 代碼 加密 底層 運行 解密 辦法 | ||
1.一種Node.js的代碼加密及底層運行時解密辦法,其特征在于:所述Node.js的代碼加密及底層運行時解密辦法中的Node.js代碼的加密辦法包括:
步驟一,命令行運行加密助手程序,載入C編譯的加密擴展模塊,調(diào)用模塊內(nèi)部的加密程序,傳入待加密文件列表,以及解密的密鑰保存路徑;
步驟二,加密擴展模塊使用JS混淆算法對待加密文件進行代碼混淆,生成混淆代碼;
步驟三,加密擴展模塊生成一套RSA公私鑰匙對,利用RSA非對稱加解密方法,使用私鑰對步驟二生成的混淆代碼做第一次加密,生成密文;
步驟四,加密擴展模塊使用內(nèi)部的文本加密算法對步驟三生成的密文做第二次加密,并將二次加密的密文覆蓋源JS文件后生成加密后的JS文件;同時,使用所述文本加密算法對步驟三生成的RSA公鑰進行加密,存為解密的密鑰文件。
2.根據(jù)權(quán)利要求1所述的Node.js的代碼加密及底層運行時解密辦法,其特征在于:Node.js代碼的底層運行時解密辦法還包括:
步驟五,命令行運行執(zhí)行助手程序,指定入口文件和解密的密鑰文件;
步驟六,Node.js環(huán)境下獲取Node.js全局變量,Node.js全局變量包括入口文件所在目錄、入口文件路徑以及CommonJS模塊化依賴;
步驟七,執(zhí)行助手程序載入C編譯的底層運行時解密擴展模塊,調(diào)用運行時解密擴展模塊的解密程序,傳入入口文件對應(yīng)路徑、解密的密鑰文件對應(yīng)路徑、以及步驟六獲取的Node.js全局變量;
步驟八,將用于實時解密的鉤子函數(shù)注入到全局變量的require中,使得入口文件能夠引入加密JS模塊文件,入口文件僅能夠引入能通過步驟十得到的密鑰進行解密的加密JS模塊文件;
步驟九,運行時解密擴展模塊生成全局變量初始化JS代碼,并通過V8引擎底層快速通道編譯、執(zhí)行,在快速通道執(zhí)行環(huán)境中模擬Node環(huán)境;
步驟十,運行時解密擴展模塊讀取入口文件和解密的密鑰,使用內(nèi)部的文本解密算法將入口文件和解密的密鑰,做第一次解密,得到入口文件的密文和解密后的公鑰或私鑰;
步驟十一,運行時解密擴展模塊使用解密后的密鑰或公鑰,利用RSA非對稱加解密方法,對入口文件的密文進行第二次解密,得到混淆代碼;
步驟十二,運行時解密擴展模塊通過V8引擎底層快速通道編譯、執(zhí)行步驟十一得到的混淆代碼,并在執(zhí)行完畢后返回執(zhí)行結(jié)果。
3.根據(jù)權(quán)利要求2所述的Node.js的代碼加密及底層運行時解密辦法,其特征在于:所述運行時解密擴展模塊不是由JS編寫的常規(guī)模塊,而是使用C編寫、編譯的原生模塊。
4.根據(jù)權(quán)利要求2所述的Node.js的代碼加密及底層運行時解密辦法,其特征在于:Node.js代碼的加密辦法加密后的文件無法直接通過Node.js執(zhí)行,且無法二次修改,僅可以通過執(zhí)行助手程序配合底層運行時解密擴展進行實時解密執(zhí)行。
5.根據(jù)權(quán)利要求2所述的Node.js的代碼加密及底層運行時解密辦法,其特征在于:解密操作在C編譯的運行時解密擴展模塊中完成,整個解密過程及解密結(jié)果無法被用戶觀察。
6.根據(jù)權(quán)利要求2所述的Node.js的代碼加密及底層運行時解密辦法,其特征在于:C編譯的運行時解密擴展模塊能夠通過V8引擎底層快速通道模擬Node執(zhí)行環(huán)境,并直接通過該快速通道運行解密后的代碼,用戶無法對解密代碼的運行過程進行干預(yù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于重慶迅燕科技有限公司,未經(jīng)重慶迅燕科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910390922.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 控制基站發(fā)射功率控制命令的方法
- 一種接入分組數(shù)據(jù)網(wǎng)絡(luò)的方法
- 一種基于Kubernetes容器集群管理系統(tǒng)的資源調(diào)度方法
- 一種基于非統(tǒng)一內(nèi)存訪問技術(shù)的多JVM部署方法
- 一種計算板級熱插拔控制裝置及控制方法
- 基于IAB node能力進行資源分配的方法、裝置、節(jié)點、介質(zhì)
- 一種基于PM2的Node.js服務(wù)器重啟方法
- 一種Pod調(diào)度方法及裝置
- 一種變壓器隔離IGBT驅(qū)動控制系統(tǒng)及方法、電路
- 一種基于備用機制的邊緣物聯(lián)代理資源調(diào)度方法及裝置
- JS文件處理方法和裝置
- 一種JS代碼的測試方法、存儲介質(zhì)、設(shè)備和系統(tǒng)
- 一種JS代碼的測試方法、存儲介質(zhì)、設(shè)備和系統(tǒng)
- 分布式的JS文件篡改監(jiān)控方法、系統(tǒng)、設(shè)備及存儲介質(zhì)
- 在IOS應(yīng)用內(nèi)調(diào)用函數(shù)的方法及系統(tǒng)
- 一種可擴展的游戲構(gòu)建方法、游戲運行方法和存儲介質(zhì)
- 一種提高腳本的加載效率的方法及終端
- 一種應(yīng)用程序依賴的JS代碼與原生庫兼容的方法及終端
- JS代碼防重復(fù)注入方法、裝置、計算機設(shè)備及存儲介質(zhì)
- 原生應(yīng)用調(diào)用JS的方法、裝置、電子設(shè)備及存儲介質(zhì)
- 加密裝置、加密系統(tǒng)、加密方法以及加密程序
- 移動終端和方法
- 再加密方法、再加密系統(tǒng)以及再加密裝置
- 加密終端遠程管理的方法、加密終端及管理器
- 數(shù)據(jù)加密的方法及裝置
- 流媒體數(shù)據(jù)加密、解密方法、裝置、電子設(shè)備及存儲介質(zhì)
- 加密裝置、加密系統(tǒng)和數(shù)據(jù)的加密方法
- 文件加密、解密方法、裝置、設(shè)備和存儲介質(zhì)
- 一種車聯(lián)網(wǎng)數(shù)據(jù)加密方法及系統(tǒng)
- 一種服務(wù)數(shù)據(jù)共享云平臺的數(shù)據(jù)加密方法及系統(tǒng)





