提升代码安全性的方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:33347548 阅读:12 留言:0更新日期:2022-05-08 09:45
本发明专利技术涉及提升代码安全性的方法、装置、计算机设备和存储介质,方法包括以下步骤:提取class文件中的方法体,生成第一class文件;对所述方法体进行加密生成加密方法体,并将所述加密方法体存储至二进制文件;监测所述第一class文件是否发生加载事件,若监测到所述第一class文件发生加载事件,则按照预设的索引方法,获取所述加密方法体;解密回填所述加密方法体至所述第一class文件。本申请所述的提升代码安全性的方法、装置、计算机设备和存储介质通过对class文件中的方法体进行无变化提取存储,在不影响spring框架的反射机制和classload机制前提下,提升了代码的安全性和兼容性。兼容性。兼容性。

【技术实现步骤摘要】
提升代码安全性的方法、装置、计算机设备和存储介质


[0001]本专利技术涉及代码调用
,尤其是指提升代码安全性的方法、装置、计算机设备和存储介质。

技术介绍

[0002]Java是目前市场上主流的企业级应用解决方案,Java在企业级开发中占据绝对的市场主导份额,包括很多重要的对安全敏感的领域,比如政企业务,电商,供应链等。传统的对Java代码进行保护的方法为:代码混淆和自定义类加载(简称:ClassLoad),虽然上述两种方法都可以在一定程度实现对java代码的保护,但是上述两种方法均存在如下弊端:一是,Spring框架(Java中的一种主流开发框架)作为一种依赖反射获取方法名和变量名的框架,使用代码混淆的方法对Java代码进行保护需要将方法和变量名都进行重命名,对Spring框架这种高度使用反射进行依赖管理的框架具有极强的破坏性。二是,自定义ClassLoad需要基于java进行代码加解密,存在易破解、安全性低的弊端,并且自定义ClassLoad破坏了Spring框架固有的ClassLoad机制以及启动入口,存在兼容性差的问题。三是,当代码作为第三方库或工具包提供给客户使用时,基于代码混淆方法被混淆的class文件对客户而言可读性较差,尤其是经过加密之后的class文件,客户更是难以进行编译开发。四是,class文件的可读性变差,集成开发环境或二次开发对代码的识别性降低。五是,采用代码混淆的方法会改变方法名,客户在使用产品的过程中,不容易发现问题,增加了客户对漏洞排查定位的难度。
[0003]因此,急需提出一种适用性强、安全性高的提升代码安全性的方法、装置、计算机设备和存储介质。

技术实现思路

[0004]为了解决上述技术问题,本专利技术提供了一种提升代码安全性的方法、装置、计算机设备和存储介质,可以在不改变方法名和变量名的前提下,提升代码的安全性和兼容性。
[0005]为实现上述目的,本申请提出第一技术方案:
[0006]提升代码安全性的方法,包括以下步骤:提取class文件中的方法体,生成第一class文件;对所述方法体进行加密生成加密方法体,并将所述加密方法体存储至二进制文件;监测所述第一class文件是否发生加载事件,若监测到所述第一class文件发生加载事件,则按照预设的索引方法,获取所述加密方法体;解密回填所述加密方法体至所述第一class文件。
[0007]在本专利技术的一个实施例中,所述生成第一class文件还包括:基于所述class文件中的方法体,判断所述方法体存在需返回的数据类型;若所述方法体不存在需返回的数据类型,则直接提取所述class文件中的方法体;若所述方法体存在需返回的数据类型,则将所述class文件中的方法体提取之后,插入返回数据类型为空的字节码至所述第一class文件。
[0008]在本专利技术的一个实施例中,所述方法体的名称包括:类名、方法名和参数个数。
[0009]在本专利技术的一个实施例中,所述监测所述第一class文件是否发生加载事件具体包括:若监测到所述第一class文件发生加载事件,则拦截所述第一class文件。
[0010]在本专利技术的一个实施例中,所述按照预设的索引方法,获取所述加密方法体具体包括:获取所述第一class文件的类名和所述方法体的名称,提取所述方法体的类名;若所述方法体的类名与所述第一class文件的类名一致,则获取所述加密方法体。
[0011]在本专利技术的一个实施例中,所述对所述方法体进行加密生成加密方法体包括:基于对称加密算法对所述方法体进行加密生成加密方法体;其中,所述加密方法体为二进制文件;所述对称加密算法包括:DES算法、3DES算法和AES算法中的任一项。
[0012]为实现上述目的,本申请还提出第二技术方案:
[0013]一种提升代码安全性的装置,所述装置包括:方法体提取单元,以用于提取class文件中的方法体,生成第一class文件;加密存储单元,所述加密单元与所述方法体提取单元通信连接,所述加密反元以用于对所述方法体进行加密生成加密方法体,并将所述加密方法体存储至二进制文件;监测单元,所述监测单元与所述加密存储单元通信连接,所述监测单元以用于监测所述第一class文件是否发生加载事件,若监测到所述第一class文件发生加载事件,则按照预设的索引方法,获取所述加密方法体;解密回填单元,所述解密回填单元以用于解密还原所述加密方法体至所述方法体,回填所述方法体至第一class文件。
[0014]在本专利技术的一个实施例中,所述监测单元具体包括:拦截模块,所述拦截模块与所述监测单元通信连接,若所述监测单元监测到所述第一class文件发生加载事件,则对所述第一class文件进行拦截并按照预设的索引方法,获取所述加密方法体。
[0015]为实现上述目的,本申请提出第三技术方案:
[0016]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述方法的步骤。
[0017]为实现上述目的,本申请提出第四技术方案:
[0018]一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行所述方法的步骤。
[0019]本专利技术的上述技术方案相比现有技术具有以下优点:
[0020]本专利技术所述的一种提升代码安全性的方法、装置、计算机设备和存储介质,所述方法包括:提取class文件中的方法体,生成第一class文件;对所述方法体进行加密生成加密方法体,并将所述加密方法体存储至二进制文件;监测所述第一class文件是否发生加载事件,若监测到所述第一class文件发生加载事件,则按照预设的索引方法,获取所述加密方法体;解密回填所述加密方法体至所述第一class文件。本申请所述的提升代码安全性的方法、装置、计算机设备和存储介质通过对class文件中的方法体进行无变化提取存储,在不影响spring框架的反射机制和classload机制前提下,提升了代码的安全性和兼容性。
附图说明
[0021]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它
的附图。
[0022]图1是本专利技术的方法流程图;
[0023]图2是本专利技术的方法流程图;
[0024]图3是本专利技术的装置结构图。
具体实施方式
[0025]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0026]实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提升代码安全性的方法,其特征在于:所述方法包括以下步骤:提取class文件中的方法体,生成第一class文件;对所述方法体进行加密生成加密方法体,并将所述加密方法体存储至二进制文件;监测所述第一class文件是否发生加载事件,若监测到所述第一class文件发生加载事件,则按照预设的索引方法,获取所述加密方法体;解密回填所述加密方法体至所述第一class文件。2.根据权利要求1所述的提升代码安全性的方法,其特征在于:所述生成第一class文件还包括:基于所述class文件中的方法体,判断所述方法体存在需返回的数据类型;若所述方法体不存在需返回的数据类型,则直接提取所述class文件中的方法体;若所述方法体存在需返回的数据类型,则提取所述class文件中的方法体,并插入返回数据类型为空的字节码至所述第一class文件。3.根据权利要求1所述的提升代码安全性的方法,其特征在于:所述方法体的名称包括:类名、方法名和参数个数。4.根据权利要求3所述的提升代码安全性的方法,其特征在于:所述监测所述第一class文件是否发生加载事件具体包括:若监测到所述第一class文件发生加载事件,则拦截所述第一class文件。5.根据权利要求3或4所述的提升代码安全性的方法,其特征在于:所述按照预设的索引方法,获取所述加密方法体具体包括:获取所述第一class文件的类名和所述方法体的名称,提取所述方法体的类名;若所述方法体的类名与所述第一class文件的类名一致,则获取所述加密方法体。6.根据权利要求1所述的提升代码安全性的方法,其特征在于:所述对所述方法体进行...

【专利技术属性】
技术研发人员:陈文
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1