Java源代码的保护方法及装置制造方法及图纸

技术编号:19178090 阅读:24 留言:0更新日期:2018-10-17 00:30
本申请提供一种Java源代码的保护方法及装置,方法包括:使用目标加密算法对字节码文件进行加密,得到加密字节码;将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。本申请的技术方案可以通过对编译得到的字节码文件进行加密得到加密字节码,然后将加密字节码和加密算法的关联信息生成用于发布的、自定义文件结构的可发布文件,该自定义文件结构的可发布文件可以防止反编译操作,保护其中的Java源代码的源代码逻辑、关键信息。

Java source code protection method and device

The present application provides a method and device for protecting Java source code, including: encrypting bytecode files to obtain encrypted bytecode using target encryption algorithm; generating a publishable file from the encrypted bytecode and the encrypted association information of the target encryption algorithm, wherein the file structure of the publishable file A file structure different from bytecode files. The technical scheme of the application can obtain encrypted bytecode by encrypting the compiled bytecode file, and then generate a publishable file for publishing a custom file structure by encrypting the related information of the encrypted bytecode and the encryption algorithm. The publishable file of the custom file structure can prevent decompilation operation. Protect the source code logic and key information of the Java source code.

【技术实现步骤摘要】
Java源代码的保护方法及装置
本申请涉及软件保护
,尤其涉及一种Java源代码的保护方法及装置。
技术介绍
Java源代码经过编译,生成字节码文件(后缀为.class的文件),所生成的字节码文件在Java虚拟机中解释执行。由于字节码文件自描述性很强,保留了很多符号以及编译信息,导致Java源代码很容易被反编译成可读性很强的源代码,导致开发者的劳动成果被剽窃或者产品被篡改。现有技术中,可通过对变量进行混淆,对函数标识信息进行混淆,以及打乱代码执行流程或者隐藏关键信息等操作实现对Java源代码的保护,但是第三方仍可通过反编译、反混淆等技术来查看代码中的关键信息和逻辑,不能实现有效的Java源代码保护。
技术实现思路
有鉴于此,本申请提供一种新的技术方案,可以通过对编译得到的字节码文件进行加密得到加密字节码,然后将加密字节码和加密算法的关联信息生成用于发布的、自定义文件结构的可发布文件,该自定义文件结构的可发布文件可以防止反编译操作,保护其中的Java源代码的源代码逻辑、关键信息。为实现上述目的,本申请提供技术方案如下:根据本申请的第一方面,提出了一种Java源代码的保护方法,应用在服务器上,包括:使用目标加密算法对字节码文件进行加密,得到加密字节码;将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。根据本申请的第二方面,提出了一种Java源代码的保护方法,应用在终端上,所述方法包括:当接收到运行一个可发布文件的操作时,获取所述可发布文件对应的类加载器,所述可发布文件的文件结构不同于所述业务功能的源代码对应的字节码文件的文件结构;使用所述类加载器加载所述可发布文件。根据本申请的第三方面,提出了一种Java源代码的保护装置应用在服务器上,所述装置包括:第一加密模块,用于使用目标加密算法对字节码文件进行加密,得到加密字节码;文件生成模块,用于将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。根据本申请的第四方面,提出了一种Java源代码的保护装置,应用在终端上,所述装置包括:获取模块,用于当接收到运行一个可发布文件的操作时,获取所述可发布文件对应的类加载器,所述可发布文件的文件结构不同于所述业务功能的源代码对应的字节码文件的文件结构;加载模块,用于使用所述类加载器加载所述可发布文件。根据本申请的第五方面,提出了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面所描述的Java源代码的保护方法。根据本申请的第六方面,提出了一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第二方面所描述的Java源代码的保护方法。根据本申请的第七方面,提出了一种服务器,所述服务器包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器,用于执行上述第一方面所描述的Java源代码的保护方法。根据本申请的第八方面,提出了一种终端,所述终端包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器,用于执行上述第二方面所描述的Java源代码的保护方法。由以上技术方案可见,本申请使用目标加密算法加密字节码文件后,将加密得到的加密字节码与加密关联信息生成为一个新的可发布文件,该可发布文件的文件结构不同于字节码文件的文件结构,因此可以理解为可发布文件不是一个字节码文件,可发布文件不能够被识别,可达到防止反编译操作的目的,达到保护其中的Java源代码的源代码逻辑、关键信息的效果。附图说明图1A是本申请一示例性实施例示出的一种Java源代码的保护方法的流程图;图1B是图1A所示实施例中显示的可发布文件的文件结构示意图;图2是本申请另一示例性实施例示出的一种Java源代码的保护方法的流程图;图3是本申请又一示例性实施例示出的一种Java源代码的保护方法的交互示意图;图4是本申请一示例性实施例示出的一种Java源代码的保护方法的流程图;图5是本申请一示例性实施例示出的一种Java源代码的保护装置的结构图;图6是本申请另一示例性实施例示出的一种Java源代码的保护输入装置的结构图;图7是本申请一示例性实施例示出的一种Java源代码的保护装置的结构图;图8是本申请另一示例性实施例示出的一种电子设备的结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与/或本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语第三等来描述各种信息,但这些信息不应限于这些术语。图1A是本申请一示例性实施例示出的一种Java源代码的保护方法的流程图,图1B是图1A所示实施例中显示的可发布文件的文件结构示意图;该Java源代码的保护方法可应用在服务器(服务器可以理解为一个代码保护平台)上,如图1A所示,包括如下步骤:步骤101,使用目标加密算法对字节码文件进行加密,得到加密字节码。在一实施例中,服务器中可以预先配置一组加密算法,可以由操作人员从一组加密算法中选择一个加密算法作为目标加密算法,也可以由服务器随机选择一个加密算法作为目标加密算法。在一实施例中,开发人员在完成Java源代码的开发和编译后,得到字节码文件(jar包),将字节码文件上传至服务器后,服务器可使用目标加密算法对字节码文件进行加密,得到加密字节码。步骤102,将加密字节码和目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。在一实施例中,目标加密算法的加密关联信息可以包括但不限于:目标加密算法的标识信息的长度、目标加密算法、扩展字段长度、扩展内容。在一实施例中,目标加密算法的标识信息可以用于唯一标识目标加密算法,例如,可以为目标加密算法的名称;目标加密算法可以用于指示加密字节码文件的加密算法,例如,可以为加密算法的内容或者加密算法的名称;扩展字段长度记录的是目标加密算法在可扩展文件中所需要占用的额外字段的长度;扩展内容记录的是加密算法所需要用到的额外字段,可以为公钥、解密密钥等。在一实施例中,可发布文件的文件结构可参见图1B,由魔法数字、目标加密算法的标识信息的长度、目标加密算法、扩展字段长度、扩展内容以及加密字节码等部分组成。魔法数字的长度可以为4个字节,目标本文档来自技高网...

【技术保护点】
1.一种Java源代码的保护方法,其特征在于,应用在服务器上,所述方法包括:使用目标加密算法对字节码文件进行加密,得到加密字节码;将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。

【技术特征摘要】
1.一种Java源代码的保护方法,其特征在于,应用在服务器上,所述方法包括:使用目标加密算法对字节码文件进行加密,得到加密字节码;将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述可发布文件以及所述可发布文件对应的类加载器发送至终端。3.根据权利要求2所述的方法,其特征在于,所述将所述可发布文件以及所述可发布文件对应的类加载器发送至终端,包括:接收所述终端发送的获取目标加密算法对应的类加载器的请求消息;向所述终端发送所述类加载器。4.根据权利要求1所述的方法,其特征在于,所述可发布文件由魔法数字、所述目标加密算法的标识信息的长度、所述目标加密算法、扩展字段长度、扩展内容以及所述加密字节码组成。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:基于所述目标加密算法的标识信息的实际长度与第一混淆值,得到所述目标加密算法的标识信息的长度;和/或,基于所述扩展内容所占用字段的实际长度与第二混淆值,生成所述扩展字段长度。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:对所述扩展内容使用第一加密算法进行加密;和/或,对所述目标加密算法使用第二加密算法进行加密。7.一种Java源代码的保护方法,其特征在于,应用在终端上,所述方法包括:当接收到运行一个可发布文件的操作时,获取所述可发布文件对应的类加载器,所述可发布文件的文件结构不同于所述业务功能的源代码对应的字节码文件的文件结构;使用所述类加载器加载所述可发布文件。8.根据权利要求7所述的方法,其...

【专利技术属性】
技术研发人员:李瑜
申请(专利权)人:北京三快在线科技有限公司
类型:发明
国别省市:北京,11

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

1