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源代码的保护方法,应用在终端上,所述方法包括:当接收到运行一个可发布文件的操作时,获取所述可发布文件对应的类加载器,所述可发布文件的文件结构不同于所述 ...
【技术保护点】
1.一种Java源代码的保护方法,其特征在于,应用在服务器上,所述方法包括:使用目标加密算法对字节码文件进行加密,得到加密字节码;将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。
【技术特征摘要】
1.一种Java源代码的保护方法,其特征在于,应用在服务器上,所述方法包括:使用目标加密算法对字节码文件进行加密,得到加密字节码;将所述加密字节码和所述目标加密算法的加密关联信息生成一个可发布文件,其中,可发布文件的文件结构不同于字节码文件的文件结构。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述可发布文件以及所述可发布文件对应的类加载器发送至终端。3.根据权利要求2所述的方法,其特征在于,所述将所述可发布文件以及所述可发布文件对应的类加载器发送至终端,包括:接收所述终端发送的获取目标加密算法对应的类加载器的请求消息;向所述终端发送所述类加载器。4.根据权利要求1所述的方法,其特征在于,所述可发布文件由魔法数字、所述目标加密算法的标识信息的长度、所述目标加密算法、扩展字段长度、扩展内容以及所述加密字节码组成。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:基于所述目标加密算法的标识信息的实际长度与第一混淆值,得到所述目标加密算法的标识信息的长度;和/或,基于所述扩展内容所占用字段的实际长度与第二混淆值,生成所述扩展字段长度。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:对所述扩展内容使用第一加密算法进行加密;和/或,对所述目标加密算法使用第二加密算法进行加密。7.一种Java源代码的保护方法,其特征在于,应用在终端上,所述方法包括:当接收到运行一个可发布文件的操作时,获取所述可发布文件对应的类加载器,所述可发布文件的文件结构不同于所述业务功能的源代码对应的字节码文件的文件结构;使用所述类加载器加载所述可发布文件。8.根据权利要求7所述的方法,其...
【专利技术属性】
技术研发人员:李瑜,
申请(专利权)人:北京三快在线科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。