【技术实现步骤摘要】
防反编译的加密、解密方法、装置、设备和存储介质
[0001]本专利技术涉及计算机
,尤其涉及一种防反编译的加密、解密方法、装置、设备和存储介质。
技术介绍
[0002]根据Java虚拟机规范,由Java语言编译生成的Class文件,其采用一种类似C语言结构体的伪结构进行存储,所以非常容易通过逆向工程进行反编译。
[0003]现有技术中普遍采用代码混淆方式来防止Class文件被反编译。由于对代码的执行逻辑进行了等效的改动,会影响代码在运行时的执行效率,而且还可能造成程序逻辑错误,增加排查问题的难度。
技术实现思路
[0004]本专利技术实施例提供一种防反编译的加密、解密方法、装置、设备和存储介质,以解决防止Class文件被反编译时导致的影响代码的执行效率的技术问题。
[0005]具体地,本专利技术实施例提供了以下技术方案:
[0006]第一方面,本专利技术实施例提供了一种防反编译的加密方法,包括:
[0007]利用获取到的私钥对目标代码文件进行加密,得到加密后的目标代码文件;
[0008]根据所述私钥对应的公钥,以及目标信息得到解密辅助信息;所述目标信息包括:用户授权码和解密外设的时钟信息中的至少一项;
[0009]根据所述解密辅助信息,将解密程序的代码分散存储至解密外设中;所述解密程序用于对所述加密后的目标代码文件进行解密。
[0010]可选地,解密辅助信息包括:代码块的拆分信息和存储位置信息,所述根据所述解密辅助信息,将解密程序的代码分散 ...
【技术保护点】
【技术特征摘要】
1.一种防反编译的加密方法,其特征在于,包括:利用获取到的私钥对目标代码文件进行加密,得到加密后的目标代码文件;根据所述私钥对应的公钥以及目标信息得到解密辅助信息;所述目标信息包括:用户授权码和解密外设的时钟信息中的至少一项;根据所述解密辅助信息,将解密程序的代码分散存储至解密外设中;所述解密程序用于对所述加密后的目标代码文件进行解密。2.根据权利要求1所述的方法,其特征在于,所述解密辅助信息包括:代码块的拆分信息和存储位置信息,根据所述解密辅助信息,将解密程序的代码分散存储至解密外设中,包括:根据所述代码块的拆分信息,按照预设规则将解密程序的代码拆分成多个代码块;根据所述存储位置信息,按照目标顺序将所述代码块分散存储至所述解密外设中;所述目标顺序为除所述多个代码块在所述解密程序中的原顺序之外的顺序。3.根据权利要求2所述的方法,其特征在于,所述解密辅助信息为字节码;所述字节码中的存储位置信息包括以下至少一项:起始代码块的起始位置、结束代码块的起始位置和各个代码块的起始位置。4.根据权利要求1
‑
3任一项所述的方法,其特征在于,所述利用获取到的私钥对目标代码文件进行加密之前,还包括:根据所述目标代码文件的标识信息,确定所述目标代码文件是否需要加密;若所述目标代码文件需要加密,则执行利用获取到的私钥对目标代码文件进行加密的步骤。5.根据权利要求4所述的方法,其特征在于,所述目标代码文件的标识信息包括魔法数;或,所述目标代码文件的标识信息包括魔法数以及以下至少一项:版本号、文件包名、类名、描述符;所述魔法数用于指示所述目标代码文件的类型。6.根据权利要求1
‑
3任一项所述的方法,其特征在于,所述利用获取到的私钥对目标代码文件进行加密之后,还包括:将加密标识写入加密后的目标代码文件中的预设位置。7.根据权利要求1
‑
3任一项所述的方法,其特征在于,所述方法还包括:获取用户设备信息和用户身份识别信息,用户设备信息包括以下至少一项:CPU信息、操作系统信息、网卡信息;根据所述用户设备信息和用户身份识别信息,利用目标加密算法获取所述私钥和所述私钥对应的公钥;将公钥拆分为第一部分和第二部分;将所述第一部分作为授权证书,并将所述第二部分分散存储至解密外设中。8.根据权利要求7所述的方法,其特征在于,根据所述私钥对应的公钥以及目标信息得到解密辅助信息,包括:根据所述授权证书以及目标信息得到解密辅助信息。9.一种防反编译的解密方法,其特征在于,包括:
获取采用私钥加密后得到的目标代码文件以及解密辅助信息;所述解密辅助信息为根据所述私钥对应的公钥以及目标信息得到的,所述目标信息包括:用户授权码和解密外设的时钟信息中的至少一项;根据所述解密辅助信息,对所述解密外设中分散存储的解密程序的代码进行还原处理,得到所述解密程序;利用所述解密程序和公钥对加密后的目标代码文件进行解密。10.根据权利要求9所述的方法,其特征在于,所述解密辅助信息包括:代码块的拆分信息和存储位置信息,根据所述解密辅助信息,对...
【专利技术属性】
技术研发人员:唐鹏,卢维清,刘春林,
申请(专利权)人:奇安信网神信息技术北京股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。