一种程序文件加密和解密方法、装置及电子设备制造方法及图纸

技术编号:36550827 阅读:10 留言:0更新日期:2023-02-04 17:04
本发明专利技术公开了一种程序文件加密和解密方法、装置及电子设备,加密方法通过获取待加密程序包中需要加密的目标程序、加密配置文件和目标程序对应的许可申请信息,根据加密配置文件确定目标程序的加密方式,根据加密方式的不同,向认证中心发送相应的目标数据;接收认证中心返回的目标程序对应的密钥;获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件,根据第一加密文件和第二加密文件,生成对应的解密程序;根据预设方法生成解密程序对应的类库文件以及类库文件对应的探针程序;将第一加密文件、第二加密文件、类库文件以及探针程序进行关联,增加获取程序文件中源代码文件的难度。加获取程序文件中源代码文件的难度。加获取程序文件中源代码文件的难度。

【技术实现步骤摘要】
一种程序文件加密和解密方法、装置及电子设备


[0001]本专利技术涉及程序安全处理
,具体涉及一种程序文件加密和解密方法、装置及电子设备。

技术介绍

[0002]目前,在互联网和传统服务等领域中,大量使用编程语言进行开发,很多编程语言都具有着跨平台、使用方便等各种优秀的特性,例如Java编程语言。Java编程语言可以一次编译,随处运行,只要环境中安装了Java虚拟机(JVM,Java Virtual Machine)就可以运行Java程序。Java是解释型语言,编译器会把Java代码变成中间代码,然后在Java虚拟机上解析执行。由于中间代码与平台无关,因此,Java编程语言可以很好地跨平台执行,具有良好的可移植性。但是中间代码中包含了源代码的信息,导致很容易通过反编译得到源代码。
[0003]为了提高源代码的安全性和防止源代码泄露,通常的主要措施会将编程语言代码做混淆,混淆代码就是将代码转换成难以读懂的样式,增加破解难度。但混淆之后的代码经过一系列的逻辑鉴别,也会还原为原有代码逻辑,进而得出类源代码,例如对混淆编译后的class文件进行加密处理,通过自定义类加载器进行解密运行程序。但由于自定义的类加载器自身不会被加密,其中的解密逻辑和方法容易暴露,导致经过人工识别后会解密出混淆之前的代码。如果需要对代码进行运行控制,只加密和混淆虽然能够防止一部分场景的代码泄露,无法实现对程序的启动与运行权限的掌控。

技术实现思路

[0004]因此,本专利技术要解决的技术问题在于克服现有存在的容易泄露源代码且无法对程序的启动与运行权限掌控的缺陷,从而提供一种程序文件加密和解密方法、装置及电子设备。
[0005]根据第一方面,本专利技术实施例公开了一种程序文件加密方法,获取待加密程序包中需要加密的目标程序、加密配置文件和所述目标程序对应的许可申请信息;根据所述加密配置文件确定所述目标程序的加密方式,所述加密方式包括本地加密和远程加密;根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,所述目标数据包括许可申请信息;接收所述认证中心返回的所述目标程序对应的密钥;获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件;根据所述第一加密文件和所述第二加密文件,生成对应的解密程序;根据预设方法生成所述解密程序对应的类库文件以及所述类库文件对应的探针程序;将所述第一加密文件、第二加密文件、所述类库文件以及所述探针程序进行关联。
[0006]可选地,所述根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,包括:当所述目标程序的加密方式为本地加密,向所述认证中心发送许可申请信息,使
得所述认证中心根据所述许可申请信息生成所述目标程序对应的许可证信息以及本地加密和解密所需的密钥;
[0007]所述获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件,包括:利用所述密钥对所述目标程序进行加密得到第一加密文件;利用所述密钥对所述许可证信息进行加密得到第二加密文件。
[0008]可选地,所述根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,包括:当所述目标程序的加密方式为远程加密,向所述认证中心发送所述许可申请信息以及所述目标程序,使得所述认证中心根据所述许可申请信息生成所述目标程序对应的许可证信息以及利用密钥对所述目标程序进行加密得到第一加密文件、利用所述密钥对所述许可证信息进行加密得到第二加密文件;
[0009]所述获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件,包括:接收所述认证中心返回的第一加密文件和所述第二加密文件。
[0010]可选地,所述获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件之后,所述方法还包括:利用所述第一加密文件对所述包含有目标程序的待加密程序包中的目标程序进行替换。
[0011]可选地,所述根据预设方法生成所述解密程序对应的类库文件以及所述类库文件对应的探针程序之后,所述方法还包括:对所述类库文件进行加固。
[0012]可选地,所述方法还包括:当接收到所述目标程序对应的新的许可申请信息,将所述新的许可申请信息发送认证中心,使得所述认证中心在判定所述新的许可申请信息中包含的使用期限权限出现延长且所述新的许可申请信息满足续约条件时,重新生成所述目标程序对应的许可证信息。
[0013]根据第二方面,本专利技术实施例还公开了一种程序文件解密方法,包括:当监测到待解密文件对应的目标程序的运行请求时,控制所述待解密文件对应的探针程序启动运行,所述待解密文件通过如第一方面或第一方面任一可选实施方式所述的程序文件加密方法得到;根据所述待解密文件对应的探针程序加载对应的类库文件,对所述待解密文件进行解密。
[0014]可选地,根据所述待解密文件对应的探针程序加载对应的类库文件,对所述待解密文件进行解密,包括:利用所述类库文件对读取到的所述待解密文件对应的待解密许可证信息进行解密,得到第一解密文件;根据所述第一解密文件判断所述待解密文件的许可证是否在免认证周期内;当所述待解密文件的许可证在免认证周期内,则执行对待解密文件的解密操作。
[0015]可选地,根据所述第一解密文件判断所述待解密文件的许可证是否在免认证周期内之后,所述方法还包括:当所述待解密文件的许可证不在免认证周期内,则请求认证中心对所述待解密文件的许可证信息进行验证;接收所述认证中心返回的验证结果;当验证结果为所述待解密文件的许可证未过期,则更新所述待解密文件的许可信息,并执行对待解密文件的解密操作。
[0016]根据第三方面,本专利技术实施例还公开了一种程序文件加密装置,包括:第一获取模块,用于获取待加密程序包中需要加密的目标程序、加密配置文件和所述目标程序对应的
许可申请信息;第一确定模块,用于根据所述加密配置文件确定所述目标程序的加密方式,所述加密方式包括本地加密和远程加密;第一发送模块,用于根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,所述目标数据包括许可申请信息;接收模块,用于接收所述认证中心返回的所述目标程序对应的密钥;第二获取模块,用于获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件;第二确定模块,用于根据所述第一加密文件和所述第二加密文件,生成对应的解密程序;第三确定模块,用于根据预设方法生成所述解密程序对应的类库文件以及所述类库文件对应的探针程序;关联模块,用于将所述第一加密文件、第二加密文件、所述类库文件以及所述探针程序进行关联。
[0017]根据第四方面,本专利技术实施例还公开了本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序文件加密方法,其特征在于,包括:获取待加密程序包中需要加密的目标程序、加密配置文件和所述目标程序对应的许可申请信息;根据所述加密配置文件确定所述目标程序的加密方式,所述加密方式包括本地加密和远程加密;根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,所述目标数据包括许可申请信息;接收所述认证中心返回的所述目标程序对应的密钥;获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件;根据所述第一加密文件和所述第二加密文件,生成对应的解密程序;根据预设方法生成所述解密程序对应的类库文件以及所述类库文件对应的探针程序;将所述第一加密文件、第二加密文件、所述类库文件以及所述探针程序进行关联。2.根据权利要求1所述的方法,其特征在于,所述根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,包括:当所述目标程序的加密方式为本地加密,向所述认证中心发送许可申请信息,使得所述认证中心根据所述许可申请信息生成所述目标程序对应的许可证信息以及本地加密和解密所需的密钥;所述获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件,包括:利用所述密钥对所述目标程序进行加密得到第一加密文件;利用所述密钥对所述许可证信息进行加密得到第二加密文件。3.根据权利要求1所述的方法,其特征在于,所述根据加密方式的不同,向认证中心发送相应的目标数据,使得所述认证中心根据所述目标数据生成所述目标程序对应的许可证信息以及加密和解密所需的密钥,包括:当所述目标程序的加密方式为远程加密,向所述认证中心发送所述许可申请信息以及所述目标程序,使得所述认证中心根据所述许可申请信息生成所述目标程序对应的许可证信息以及利用密钥对所述目标程序进行加密得到第一加密文件、利用所述密钥对所述许可证信息进行加密得到第二加密文件;所述获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件,包括:接收所述认证中心返回的第一加密文件和所述第二加密文件。4.根据权利要求1所述的方法,其特征在于,所述获取包含有加密后的目标程序的第一加密文件以及包含对应的许可证信息的第二加密文件之后,所述方法还包括:利用所述第一加密文件对所述包含有目标程序的待加密程序包中的目标程序进行替换。5.根据权利要求1所述的方法,其特征在于,所述根据预设方法生成所述解密程序对应
的类库文件以及所述类库文件对应的探针程序之后,所述方法还包括:对所述类库文件进行加固。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到所述目标程序对应的新的许可申请信息,将所述新的许可申请信息发送认证中心,使得所述认证中心在判定所述新的许可申请信息中包含的使用期限权限出现延长且所述新的许可申请信息满足续约条件时,重新生成所述目标程序对应的许可证信息。7.一种程序文件解密方法,其特征在于,包括:当监测到待解密文件对应的目标程序的运行请求时,控制所述待解密文件对应的探针程序启动运行,所述待解密文件通过如权利要求...

【专利技术属性】
技术研发人员:李昕泽
申请(专利权)人:南京四维智联科技有限公司
类型:发明
国别省市:

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

1