【技术实现步骤摘要】
一种自定义混淆方案的JavaScript代码混淆方法
本专利技术属于代码保密领域,具体地讲,涉及一种自定义混淆方案的JavaScript代码混淆方法。
技术介绍
如果将编写好的JavaScript代码直接放在浏览器上的话,那么别人很容易将我们辛苦编写的代码给抄袭盗取了;同时,不法分子可以轻而易举地了解到我们的编码意图,并相应地做出破坏攻击,于是对于JavaScript代码的保护是业界的一个共识。当前对于javascript代码的保护方法主要是通过对于javascript代码进行混淆,加密解密,但是这种操作都是一次性的,保密不够复杂,且用户对于混淆方案可操作性不强。
技术实现思路
本专利技术基于解决JavaScript代码只有一次性操作,保密性不强的问题,提出了一种自定义混淆方案的JavaScript代码混淆方法,用户通过自定义选择混淆方案,且具有多次验证步骤,实现了JavaScript代码更加复杂的保密,且用户操作更强。本专利技术具体实现内容如下:一种自定义混淆方案的JavaScr ...
【技术保护点】
1.一种自定义混淆方案的JavaScript代码混淆方法,其特征在于,所述混淆方法包括三种供用户选择的代码混淆方案:/n方案1:语法树代码混淆;/n方案2:变量替换代码混淆;/n方案3:组合代码混淆;/n所述混淆方法通过上述任一方案完成初始JavaScript代码的混淆,并生成混淆完成的JavaScript代码、辅助JavaScript代码和混淆程序。/n
【技术特征摘要】
1.一种自定义混淆方案的JavaScript代码混淆方法,其特征在于,所述混淆方法包括三种供用户选择的代码混淆方案:
方案1:语法树代码混淆;
方案2:变量替换代码混淆;
方案3:组合代码混淆;
所述混淆方法通过上述任一方案完成初始JavaScript代码的混淆,并生成混淆完成的JavaScript代码、辅助JavaScript代码和混淆程序。
2.如权利要求1所述的一种自定义混淆方案的JavaScript代码混淆方法,其特征在于,所述方案1基于JavaScript语法解析器、混淆器和语法树解析器具体按以下步骤实现:
步骤S1.1移除初始JavaScript代码中的冗余代码;
步骤S1.2使用JavaScript语法解析器将初始JavaScript代码拆分为一个个独立的单词块,根据拆分的一个个独立的单词块生成一个根节点为window变量的语法树;
步骤S1.3将步骤S1.2生成的语法树传入混淆器;所述混淆器对生成的语法树进行全树遍历,对每一个树节点进行节点混淆;在进行了节点混淆后,再对每一个树节点进行冗余添加;
步骤S1.4使用语法树解析器将经过步骤S1.3处理后的语法树按照层级依次将树节点的单词块取出,并根据语法树的对应关系将初始JavaScript代码拼接重装为混淆完成的JavaScript代码。
3.如权利要求1所述的一种自定义混淆方案的JavaScript代码混淆方法,其特征在于,其特征在于,所述方案2具体包括以下步骤:
步骤S2.1搜索初始JavaScript代码中的变量以及函数名,并保存在一个键值对对象中;
步骤S2.2设置一个无意义字符串数组,遍历键值对对象,通过正则匹配的方法将键值对对象中保存的变量以及函数名替换为无意义字符串数组中的无意义字符串。
4.如权利要求1所述的一种自定义混淆方案的JavaScript代码混淆方法,其特征在于,所述方案3具体是指:先对初始JavaScript代码进行方案1的处理,再进行方案2的处理。
5.如权利要求1-4任一项所述的一种自定义混淆方案的JavaScript代码混淆方法,其特征在于,所述混淆方法基于服务端和客户端在完成对初始JavaScript代码的混淆后进行以下操作:
步骤一:将混淆完成的JavaScript代码、辅助JavaScript代码和混淆程序都部署到服务端,并将混淆完成的JavaScript代码和辅助JavaScript代码引入html文件中,生成混淆完成的JavaScript文件和辅助JavaScript文件;同时将混淆完成的JavaScript文件更名,并将更名映射关系写入一个临时文件中;
步骤二:...
【专利技术属性】
技术研发人员:廖培淋,范渊,吴永越,郑学新,刘韬,
申请(专利权)人:成都安恒信息技术有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。