[发明专利]一种Node.js的代码加密及底层运行时解密办法有效
申请号: | 201910390922.0 | 申请日: | 2019-05-10 |
公开(公告)号: | CN110147656B | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 易和阳;戈洋 | 申请(专利权)人: | 重庆迅燕科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京中济纬天专利代理有限公司 11429 | 代理人: | 石燕妮 |
地址: | 400065 重庆市南岸区崇文*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 node js 代码 加密 底层 运行 解密 办法 | ||
本发明涉及一种Node.js的代码加密及底层运行时解密办法,解决了JS源代码无法得到有效保护,因而无法作为大型商业应用服务端技术选型的问题。所述办法包括:加密步骤,通过加密助手程序调用C编译的加密扩展模块,使用JS混淆算法、RSA非对称加密方法及模块内部的文本加密办法对源代码进行加密,并生成运行密钥;解密步骤,通过执行助手程序加载C编译的底层运行时解密扩展模块,指定运行密钥和代码入口文件,利用模块内部的一系列操作解密代码,并通过V8引擎及模块内部模拟的Node执行环境快速编译、执行代码。本办法较好地保障了JS源代码的保密性,可用于Node.js代码保护、防止二次修改等应用场景。
技术领域
本发明涉及加解密领域,具体涉及一种Node.js的代码加密及底层运行时解密办法。
背景技术
由于JavaScript(后简称:JS)为动态语言,其代码无法被预先编译,而是以文本可读形式保存,因而其源代码无法得到有效保护。近年来,JS技术演变出Webpack、Gulp等混淆打包工具,能够将JS项目打包成用户不可理解的混淆代码,但此种方法治标不治本,混淆后的代码仍然是可被二次修改的代码,甚至有反混淆工具能够在一定程度上逆向混淆,配合JS强大的内部调试,用户可以轻松地推导出代码逻辑,或对其进行修改,因而,采用混淆的伪“加密”无法保证代码的安全性,这也是Node.js成为大规模商业服务语言选型的最大阻碍。
本发明基于C为Node.js编写了一种解密运行时扩展,能够在底层实时解密JS代码并绕过Node.js直接经由底层V8引擎执行代码,解密过程、执行过程用户均无法查看或干预,有效地保证了代码的安全。
发明内容
本发明所要解决的技术问题是现有技术中存在的JS源代码无法得到有效保护的技术问题。提供了一种新的Node.js的代码加密及底层运行时解密办法,较好地保障了JS源代码的保密性,可用于Node.js代码保护、防止二次修改等应用场景。
为解决上述技术问题,采用的技术方案如下:
一种Node.js的代码加密及底层运行时解密办法,所述Node.js的代码加密办法包括:
步骤一,命令行运行加密助手程序,载入C编译的加密扩展模块,调用模块内部的加密程序,传入待加密文件列表,以及解密的密钥保存路径;
步骤二,加密扩展模块使用JS混淆算法对待加密文件进行代码混淆,生成混淆代码;
步骤三,加密扩展模块生成一套RSA公私钥匙对,利用RSA非对称加解密方法,使用私钥对步骤二生成的混淆代码做第一次加密,生成密文;
步骤四,加密扩展模块使用内部的文本加密算法对步骤三生成的密文做第二次加密,并将二次加密的密文覆盖源JS文件后生成加密后的JS文件;同时,使用所述文本加密算法对步骤三生成的RSA公钥进行加密,存为解密的密钥文件。
本发明的工作原理:本发明与采用代码混淆的伪“加密”不同,本发明能够将JS文件直接加密成完全不可读的密文,经过加密的代码无法被解密、修改,或是直接运行。通过本办法执行任何一次加密动作之后,解密的密钥均会发生变化,因而一套加密的代码能享有唯一的解密的密钥,同一次加密的一套代码无法被被扩充、篡改。加密后的代码仅能通过执行助手程序执行。
上述方案中,配合加密步骤,进一步地,所述Node.js的底层运行时解密办法还包括:
步骤五,命令行运行执行助手程序,指定入口文件和解密的密钥文件;
步骤六,Node.js环境下获取Node.js全局变量,其中包含:__dirname—入口文件所在目录;__filename—入口文件路径;module、require—CommonJS模块化依赖;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆迅燕科技有限公司,未经重庆迅燕科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910390922.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:应用程序的安全防护系统及方法
- 下一篇:一种用户权限配置方法及装置