WAR程序源文件加密保护方法及系统与流程

文档序号:17775385发布日期:2019-05-28 20:01阅读:513来源:国知局
WAR程序源文件加密保护方法及系统与流程
本发明实施例涉及程序加密
技术领域
,更具体地,涉及war程序源文件加密保护方法及系统。
背景技术
:war是sun提出的一种企业级javaweb应用程序格式,是一种多种文件的一个压缩包。war程序源文件格式可通过javaweb程序编程进行部署。war程序源文件可按一定的目录结构来组织,通常其根目录下包含有html文件和jsp文件,或者包含这两种文件的目录。根目录下还包括web-inf目录,在web-inf目录下存储有一个web.xml文件和一个classes目录,web.xml文件是war程序的配置文件,而classes目录下则包含编译好的servlet类和jsp类的java字节码,或servlet类所依赖的其它类(如javabean)的java字节码。这些servlet类所依赖的其它类也可以打包成jar存储在web-inf下的lib目录下。由于war程序源文件格式可通过javaweb程序编程进行部署,而java语言是经过预编译后形成字节码在虚拟机上解释执行的,其字节码很容易通过反编译技术逆向进行反编译,进而可以轻松的获取war程序源文件,war程序的设计逻辑将被轻易获取到。而且,web程序自身并没有保护war程序源文件的属性,也会造成war程序源文件被窃取,导致war内存储的内容泄露,造成极大的安全隐患。而目前,由于很多企业对使用的war程序源文件并没有安全防范意识,因此并没有考虑防止war程序被反编译的措施。当未受保护的war程序部署后,一旦企业竞争对手获得war程序,就可以通过反编译技术获取企业使用的war程序源文件,这对于企业的利益造成严重的威胁。因此,现急需提供一种war程序源文件加密保护方法及系统,以解决现有技术中存在的技术问题。技术实现要素:为克服上述问题或者至少部分地解决上述问题,本发明实施例提供了一种war程序源文件加密保护方法及系统。第一方面,本发明实施例提供了一种war程序源文件加密保护方法,包括:获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。第二方面,本发明实施例提供了一种war程序源文件加密保护系统,其特征在于,包括:处理模块,用于获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;编码替换模块,用于对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行第一方面提供的war程序源文件加密保护方法。第四方面,本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的war程序源文件加密保护方法。本发明实施例提供的一种war程序源文件加密保护方法及系统,所述方法包括:获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。由于每一单词对应的编码结果均难以被反编译,可读性差以及相关工具难以解析,由此可以保证经单词集合中的每一单词对应的编码结果替换后的war程序源文件经编译后得到的war程序难以被反编译,从而提高了war程序源文件的保护性,提升了企业商业机密的安全性,同时维护了企业的经济效益。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种war程序源文件加密保护方法的流程示意图;图2为本发明实施例提供的一种war程序源文件加密保护系统的结构示意图;图3为本发明实施例提供的一种电子设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明实施例中的具体含义。如图1所示,本发明实施例提供了一种war程序源文件加密保护方法,包括:s1,获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;s2,对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。具体地,本发明实施例中提供的war程序源文件加密保护方法,war程序源文件是由单词构成,单词具体可以是符号字符、注释符、语法关键词、系统字符以及自定义字符等。其中,符号字符是指war程序源文件中存在的符号,例如“{”、“}”和“;”等,用于分割war程序源文件中的语句或单词,注释符用于区分实质内容部分和注释部分,语法关键词可以包括:“if”、“else”、“while”以及“switch”等,用于执行语法操作。因此,符号字符、注释符以及语法关键词不能被编码,否则会导致war程序源文件被损坏无法编译。所以本发明实施例中首先获取war程序源文件中的所有单词,确定所有单词中除语法关键词、符号字符以及注释符外的单词集合,用以进行编码。具体实现方式是:对war程序源文件进行语法规则分析,分析出war程序源文件中的语法关键词、符号字符以及注释符,并将除语法关键词、符号字符以及注释符外的单词构成单词集合。对于单词集合中的每一单词来说,以单词a为例进行说明。基于混淆算法对单词a进行编码。混淆算法是在保证语句含义不变的前提下实现p到p’的变换。变换中必须满足的条件是:p’和p具有相同的运行结果,若p’出错终止或终止失败,p也必须出错终止或终止失败。p’产生与p相同的输出。而将p变换到p’,可以使p’比p更难进行反编译,使p’的可读性变差以及相关工具难以解析。因此本发明实施例中采用混淆算法对单词a进行编码,可以保证单词a对应的编码结果更难被反编译,使编码结果的可读性变差以及相关工具难以解析。最后,采用单词a对应的编码结果替换war程序源文件中的单词a,单词集合中的每一单词对应的编码结果分别替换war程序源文件中相应的单词。本发明实施例中提供war程序源文件加密保护方法,由于每一单词对应的编码结果均难以被反编译,可读性差以及相关工具难以解析,由此可以保证经单词集合中的每一单词对应的编码结果替换后的war程序源文件经编译后得到的war程序难以被反编译,从而提高了war程序源文件的保护性,提升了企业商业机密的安全性,同时维护了企业的经济效益。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,为减少war程序源文件加密保护过程中的单词处理量,可以对war程序源文件进行代码规格化处理,用以剔除war程序源文件中的注释,并在每一个符号字符后进行换行处理,以将符号字符前后的内容进行区分。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,在确定所述单词集合后,还包括:对所述单词集合中每一单词进行分类,确定所述单词集合中每一单词的所属类别。具体地,本发明实施例中单词集合中的单词可以是除符号字符、注释符和/或注释以及语法关键词外的单词。单词集合中的单词的所属类别可包括:自定义类名、系统类名、自定义方法名、系统方法名、全局变量以及局部变量等。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,在基于混淆算法对所述单词进行编码后,还包括:生成与所述单词相对应的单词链表;所述单词链表中存储有所述单词的所属类别、所述单词以及所述单词对应的编码结果。具体地,本发明实施例中为保证编码过程的可追迹,在对单词集合中的每个单词进行编码后,生成与每个单词相对应的单词链表。单词链表中存储有单词的所属类别、单词以及单词对应的编码结果。其中单词链表中存储的单词是指单词的具体内容。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,在确定所述单词集合后,还包括:对所述单词集合中的每一单词进行编号;相应地,所述单词链表中还存储有所述单词对应的编号。具体地,本发明实施例中提供的war程序源文件加密保护方法,还包括对单词集合中的每一单词进行编号,具体可按单词集合中的每一单词在war程序源文件中的顺序从0开始对单词集合中的每一单词进行编号。相应地,在每一单词对应的单词链表中还存储有每一单词对应的编号。表1单词链表编号2所属类别自定义类名单词word编码结果w指针3如表1所示为本发明实施例中提供的单词链表节点的具体形式。表1中包括:编号、所属类别、单词、编码结果以及指针,指针中存储有下一个单词对应的单词链表的指针。其中编号为2,所属类别为自定义类名,单词(即单词的具体内容)为word,编码结果为w,指针为3,即编号为3的单词对应的单词链表的指针。本发明实施例中,对单词集合中的每一单词进行编号,可以为单词的编码提供方便。在基于混淆算法对单词集合中的每一单词进行编码时,既可以根据单词直接进行编码,也可以根据单词对应的编号进行编码。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,所述基于混淆算法对所述单词进行编码,具体包括:采用除2取余法对所述单词对应的编号进行处理,将处理得到的结果作为所述单词对应的编码结果。具体地,本发明实施例中采用单词集合中的每一单词对应的编号对相应的单词进行编号,将每一单词对应的编号除取余,使得到的结果为0和1组成的数串,将得到的结果作为该单词的编码结果。操作方法简单易行。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,所述基于混淆算法对所述单词进行编码,具体包括:基于混淆算法,采用英文字母对所述单词进行编码。具体地,本发明实施例中基于混淆算法,采用英文字母对所述单词进行编码。由于共有26个英文字母,既可以采用单个英文字母对单词集合中的每一单词进行编码,也可以采用任意两个或多个英文字母的随机组合对单词集合中的每一单词进行编码,本发明实施例中对此不作具体限定。在上述实施例的基础上,本发明实施例中提供的war程序源文件加密保护方法,所述基于混淆算法,采用英文字母对所述单词进行编码,具体包括:若判断获知所述单词集合的单词总数小于等于英文字母总数,则采用单个英文字母对所述单词进行编码;若判断获知所述单词集合的单词总数大于所述英文字母总数且小于等于任意两个英文字母的随机组合数,则将所述单词集合分为第一单词子集合和第二单词子集合,所述第一单词子集合中的单词个数与所述英文字母总数相同;若判断获知所述单词处于所述第一单词子集合中,则采用单个英文字母对所述单词进行编码;若判断获知所述单词处于所述第二单词子集合中,则采用任意两个英文字母的随机组合对所述单词进行编码。具体地,本发明实施例中,如果单词集合中的单词总数小于等于英文字母总数26,则采用单个英文字母分别对单词集合中的每一单词进行编码,即为单词集合中的每一单词随机赋予一英文字母,作为对应的编码结果;需要说明的是,每一单词对应的英文字母均不相同。如果单词集合的单词总数大于英文字母总数且小于等于任意两个英文字母的随机组合数,则将单词集合分为第一单词子集合和第二单词子集合,第一单词子集合中的单词个数与英文字母总数相同。第一单词子集合中的单词采用单个英文字母进行编码,即为第一单词子集合中的每一单词随机赋予一英文字母。第二单词子集合中的单词则采用任意两个英文字母的随机组合进行编码,即将任意两个英文字母的随机组合作为每一单词对应的编码结果。如果单词集合的单词总数大于任意两个英文字母的随机组合数且小于任意三个英文字母的随机组合数,则将单词集合分为第一单词子集合、第二单词子集合和第三单词子集合,第一单词子集合中的单词个数与英文字母总数相同,第二单词子集合中的单词个数与任意两个英文字母的随机组合数相同。第一单词子集合中的单词采用单个英文字母进行编码,即为第一单词子集合中的每一单词随机赋予一英文字母。第二单词子集合中的单词则采用任意两个英文字母的随机组合进行编码,即将任意两个英文字母的随机组合作为每一单词对应的编码结果。第三单词子集合中的单词则采用任意三个英文字母的随机组合进行编码,即将任意三个英文字母的随机组合作为每一单词对应的编码结果。以此类推,还可以使用任意四个、五个以及更多的英文字母的随机组合对单词进行编码,原理与上述描述相同,本发明实施例中在此不再赘述。如图2所示,在上述实施例的基础上,本发明实施例中提供了一种war程序源文件加密保护系统,包括:处理模块21和编码替换模块22。其中,处理模块21用于获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;编码替换模块22用于对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。具体地,本发明实施例中提供的war程序源文件加密保护系统中各模块的作用与上述方法类实施例中各步骤的处理过程是一一对应的,实现的技术效果也是一致的,本发明实施例中对此不再赘述。需要说明的是,编码替换模块22具体可以按功能分为编码器和单词替换器。编码器用于对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,单词替换器用于采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。在上述实施例的基础上,本发明实施例中提供的一种war程序源文件加密保护系统中还包括:分类模块;所述分类模块用于对所述单词集合中每一单词进行分类,确定所述单词集合中每一单词的所属类别。在上述实施例的基础上,本发明实施例中提供了一种war程序源文件加密保护系统中还包括:单词链表生成模块;所述单词链表生成模块用于:在基于混淆算法对所述单词进行编码后,生成与所述单词相对应的单词链表;所述单词链表中存储有所述单词的所属类别、所述单词以及所述单词对应的编码结果。在上述实施例的基础上,本发明实施例中提供了一种war程序源文件加密保护系统中还包括:编号模块;所述编号模块用于:在确定所述单词集合后,对所述单词集合中的每一单词进行编号;相应地,所述单词链表中还存储有所述单词对应的编号。在编码器对单词集合中的每一单词进行编码时,可以将每一单词对应的编号分别输入至编码器中,由编码器输出每一单词对应的编码结果,也可以直接将每一单词分别输入至编码器中,由编码器输出每一单词对应的编码结果。在上述实施例的基础上,本发明实施例中提供了一种war程序源文件加密保护系统中,所述编码模块具体用于:采用除2取余法对所述单词对应的编号进行处理,将处理得到的结果作为所述单词对应的编码结果。具体地,本发明实施例中将每一单词对应的编号作为编码器的输入,由编码器输出每一单词对应的编码结果。在上述实施例的基础上,本发明实施例中提供了一种war程序源文件加密保护系统中,所述编码模块具体用于:基于混淆算法,采用英文字母对所述单词进行编码。在上述实施例的基础上,本发明实施例中提供了一种war程序源文件加密保护系统中,所述编码模块具体用于:若判断获知所述单词集合的单词总数小于等于英文字母总数,则采用单个英文字母对所述单词进行编码;若判断获知所述单词集合的单词总数大于所述英文字母总数且小于等于任意两个英文字母的随机组合数,则将所述单词集合分为第一单词子集合和第二单词子集合,所述第一单词子集合中的单词个数与所述英文字母总数相同;若判断获知所述单词处于所述第一单词子集合中,则采用单个英文字母对所述单词进行编码;若判断获知所述单词处于所述第二单词子集合中,则采用任意两个英文字母的随机组合对所述单词进行编码。如图3所示,在上述实施例的基础上,本发明实施例中提供了一种电子设备,包括:处理器(processor)301、存储器(memory)302、通信接口(communicationsinterface)303和总线304;其中,所述处理器301、存储器302、通信接口303通过总线304完成相互间的通信。所述存储器302存储有可被所述处理器301执行的程序指令,处理器301用于调用存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:s1,获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;s2,对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。在上述实施例的基础上,本发明实施例中提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:s1,获取war程序源文件中的所有单词,确定所述所有单词中除语法关键词、符号字符以及注释符外的单词集合;s2,对于所述单词集合中的每一单词,基于混淆算法对所述单词进行编码,并采用所述单词对应的编码结果替换所述war程序源文件中的所述单词。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1