[发明专利]一种Node.js的代码加密及底层运行时解密办法有效
申请号: | 201910390922.0 | 申请日: | 2019-05-10 |
公开(公告)号: | CN110147656B | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 易和阳;戈洋 | 申请(专利权)人: | 重庆迅燕科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京中济纬天专利代理有限公司 11429 | 代理人: | 石燕妮 |
地址: | 400065 重庆市南岸区崇文*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 node js 代码 加密 底层 运行 解密 办法 | ||
1.一种Node.js的代码加密及底层运行时解密办法,其特征在于:所述Node.js的代码加密及底层运行时解密办法中的Node.js代码的加密办法包括:
步骤一,命令行运行加密助手程序,载入C编译的加密扩展模块,调用模块内部的加密程序,传入待加密文件列表,以及解密的密钥保存路径;
步骤二,加密扩展模块使用JS混淆算法对待加密文件进行代码混淆,生成混淆代码;
步骤三,加密扩展模块生成一套RSA公私钥匙对,利用RSA非对称加解密方法,使用私钥对步骤二生成的混淆代码做第一次加密,生成密文;
步骤四,加密扩展模块使用内部的文本加密算法对步骤三生成的密文做第二次加密,并将二次加密的密文覆盖源JS文件后生成加密后的JS文件;同时,使用所述文本加密算法对步骤三生成的RSA公钥进行加密,存为解密的密钥文件。
2.根据权利要求1所述的Node.js的代码加密及底层运行时解密办法,其特征在于:Node.js代码的底层运行时解密办法还包括:
步骤五,命令行运行执行助手程序,指定入口文件和解密的密钥文件;
步骤六,Node.js环境下获取Node.js全局变量,Node.js全局变量包括入口文件所在目录、入口文件路径以及CommonJS模块化依赖;
步骤七,执行助手程序载入C编译的底层运行时解密扩展模块,调用运行时解密扩展模块的解密程序,传入入口文件对应路径、解密的密钥文件对应路径、以及步骤六获取的Node.js全局变量;
步骤八,将用于实时解密的钩子函数注入到全局变量的require中,使得入口文件能够引入加密JS模块文件,入口文件仅能够引入能通过步骤十得到的密钥进行解密的加密JS模块文件;
步骤九,运行时解密扩展模块生成全局变量初始化JS代码,并通过V8引擎底层快速通道编译、执行,在快速通道执行环境中模拟Node环境;
步骤十,运行时解密扩展模块读取入口文件和解密的密钥,使用内部的文本解密算法将入口文件和解密的密钥,做第一次解密,得到入口文件的密文和解密后的公钥或私钥;
步骤十一,运行时解密扩展模块使用解密后的密钥或公钥,利用RSA非对称加解密方法,对入口文件的密文进行第二次解密,得到混淆代码;
步骤十二,运行时解密扩展模块通过V8引擎底层快速通道编译、执行步骤十一得到的混淆代码,并在执行完毕后返回执行结果。
3.根据权利要求2所述的Node.js的代码加密及底层运行时解密办法,其特征在于:所述运行时解密扩展模块不是由JS编写的常规模块,而是使用C编写、编译的原生模块。
4.根据权利要求2所述的Node.js的代码加密及底层运行时解密办法,其特征在于:Node.js代码的加密办法加密后的文件无法直接通过Node.js执行,且无法二次修改,仅可以通过执行助手程序配合底层运行时解密扩展进行实时解密执行。
5.根据权利要求2所述的Node.js的代码加密及底层运行时解密办法,其特征在于:解密操作在C编译的运行时解密扩展模块中完成,整个解密过程及解密结果无法被用户观察。
6.根据权利要求2所述的Node.js的代码加密及底层运行时解密办法,其特征在于:C编译的运行时解密扩展模块能够通过V8引擎底层快速通道模拟Node执行环境,并直接通过该快速通道运行解密后的代码,用户无法对解密代码的运行过程进行干预。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆迅燕科技有限公司,未经重庆迅燕科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910390922.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:应用程序的安全防护系统及方法
- 下一篇:一种用户权限配置方法及装置