程序源码加密方法、运行方法、装置、电子设备及介质制造方法及图纸

技术编号:36552725 阅读:12 留言:0更新日期:2023-02-04 17:06
本申请提供一种程序源码加密方法、运行方法、装置、电子设备及介质。该程序源码加密方法包括:生成第一密钥;生成密钥对,所述密钥对包括公钥和私钥;采用所述密钥对中的公钥对源码文件进行加密;采用所述第一密钥对所述密钥对中的私钥进行加密,生成加密私钥;生成应用程序安装包,所述应用程序安装包包括加密的源码文件、所述加密私钥及按照预设放置规则分布到所述加密的源码文件中的第一密钥。所述加密的源码文件中的第一密钥。所述加密的源码文件中的第一密钥。

【技术实现步骤摘要】
程序源码加密方法、运行方法、装置、电子设备及介质


[0001]本申请涉及计算机
,具体而言,涉及一种程序源码加密方法、运行方法、装置、电子设备及介质。

技术介绍

[0002]某些应用程序在客户端进行安装时会在安装目录发布依赖包,这些依赖包可以支持应用程序的运行。然而,由于可以通过某种方式从依赖包中获取源码文件,从而导致程序源码存在泄漏的风险。
[0003]目前防止程序源码泄漏的方法主要是通过增加代码复杂度,增加无用代码、对代码进行压缩,切断代码间关系的方法降低代码可读性和可调试性。
[0004]然而,这些方法会导致程序运行时解析时间增长、运行效率低下的问题。

技术实现思路

[0005]本申请实施例的目的在于提供一种程序源码加密方法、程序运行方法、装置、电子设备及可读存储介质,用以兼顾程序源码的安全性和程序运行效率。
[0006]本申请实施例提供了一种程序源码加密方法,包括:生成第一密钥;生成密钥对,所述密钥对包括公钥和私钥;采用所述密钥对中的公钥对源码文件进行加密;采用所述第一密钥对所述密钥对中的私钥进行加密,生成加密私钥;生成应用程序安装包,所述应用程序安装包包括加密的源码文件所述加密私钥及按照预设放置规则分布到所述加密的源码文件中的第一密钥;
[0007]在上述实现过程中,通过公钥对源码文件加密,降低了源码文件泄密的风险。通过采用第一密钥对私钥加密,生成加密私钥,提高了私钥传输过程中的安全性。通过将第一密钥根据预设放置规则分布到加密源码文件中,提高了获取第一密钥的难度,从而保证加密私钥不被轻易破解,进而保证源码的安全性。由于使用公钥对源码整体进行加密处理,不改变源码本身的代码,没有增加源码的复杂度,从而在程序运行需要解析源码时,解析速度较快,能够保证程序运行效率。
[0008]进一步地,所述生成第一密钥,包括:生成随机字符串;使用加密算法对随机字符串循环加密预设次数,得到所述第一密钥。
[0009]在上述实现过程中,通过加密算法对随机字符串进行预设次数的循环加密,可以更加有效地增强随机字符串的随机性,使得采用第一密钥进行加密的内容更加难以被破解。
[0010]进一步地,所述预设次数为当前时间戳后两位数字。
[0011]在上述实现过程中,由于加密次数也是破解加密算法的重要参数,因此,采用时间戳的后两位数字作为循环加密次数,能够增强第一密钥的随机性,从而可以使得加密内容更加难以被破解。
[0012]进一步地,所述生成第一密钥,包括:生成口令;对所述口令添加随机数,使用散列
函数获取添加了随机数的口令的散列值,得到所述第一密钥。
[0013]在上述实现过程中,通过对口令添加随机数,使用散列函数获取添加了随机数的口令的散列值,可以避免密钥被破解,更好的提升第一密钥对加密内容的安全性。
[0014]进一步地,所述预设放置规则,包括:从所述加密的源码文件尾部偏移第一预设字节长度,放置第一预设长度的密钥片段,从所述加密的源码文件尾部偏移第二预设字节长度,放置第二预设长度的密钥片段,从所述加密的源码文件头部偏移第三预设字节长度,放置第三预设长度的密钥片段。
[0015]在上述实现过程中,通过分散放置第一密钥的密钥片段,提高了第一密钥的获取难度,进而提高了加密私钥的安全性。
[0016]本申请实施例提供了一种程序运行方法,包括:接收程序运行指令;加载应用程序及其安装目录下的文件,所述文件包括加密的源码文件、按照预设放置规则分布到所述加密的源码文件中的第一密钥及加密私钥;所述加密私钥为所述第一秘钥对私钥加密得到的;根据所述预设放置规则从所述应用程序安装包中获取所述第一密钥及所述加密私钥;采用所述第一密钥对所述加密私钥进行解密,得到所述私钥;采用所述私钥对所述加密的源码文件解密,得到源码文件;运行所述源码文件。
[0017]在上述实现过程中,程序接收运行指令后,加载应用程序及其安装目录下的文件,可以保证程序源码解密过程在内存中完成,有效防止程序源码泄漏。通过采用第一密钥对私钥解密,并用私钥对加密源码文件进行解密,可以快速得到程序源码,与现有技术相比,可以在保证程序源码安全性的前提下,尽可能的不降低程序运行效率。
[0018]进一步地,所述根据所述预设放置规则从所述应用程序安装包中获取所述第一密钥及所述加密私钥,包括:从源码文件尾部偏移第一预设字节长度,读取第一预设长度的密钥片段;从所述加密的源码文件尾部偏移第二预设字节长度,读取第二预设长度的密钥片段;从所述加密的源码文件头部偏移第三预设字节长度,读取第三预设长度的密钥片段;将各密钥片段按照顺序进行拼接,得到所述第一密钥,从预设文件地址获取加密私钥。
[0019]在上述实现过程中,通过分散放置第一密钥的密钥片段,提高了第一密钥的获取难度,进而提高了加密私钥的安全性。通过读取私钥的预设文件地址,能够快速获取到加密私钥。
[0020]本申请实施例还提供了一种程序源码加密装置,包括:第一生成模块,用于生成第一密钥;第二生成模块,用于生成密钥对,所述密钥对包括公钥和私钥;源码加密模块,用于采用所述密钥对中的公钥对源码文件进行加密;私钥加密模块,用于采用所述第一密钥对所述密钥对中的私钥进行加密,生成加密私钥;第三生成模块,用于生成应用程序安装包,所述应用程序安装包包括加密的源码文件、所述加密私钥及按照预设放置规则分布到所述加密的源码文件中的第一密钥。
[0021]本申请实施例还提供了一种程序运行装置,包括:接收模块,用于接收程序运行指令;加载模块,用于加载应用程序及其安装目录下的文件;获取模块,用于根据所述预设放置规则从所述应用程序安装包中获取所述第一密钥及所述加密私钥;私钥解密模块,用于采用所述第一密钥对所述加密私钥进行解密,得到所述私钥;源码解密模块,用于采用所述私钥对所述加密的源码文件解密,得到源码文件;运行模块,用于运行所述源码文件。
[0022]本申请实施例还提供了一种电子设备,包括处理器和存储器;所述处理器用于执
行存储器中存储的一个或者多个程序,以实现上述任一种程序源码的加密方法及程序运行方法。
[0023]本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种程序源码加密方法或程序运行方法。
附图说明
[0024]为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0025]图1为本申请实施例提供的一种程序源码加密方法的流程示意图;
[0026]图2为本申请实施例提供的一种程序运行方法的流程示意图;
[0027]图3为本申请实施例提供的一种程序源码加密装置的结构示意图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序源码的加密方法,其特征在于,包括:生成第一密钥;生成密钥对,所述密钥对包括公钥和私钥;采用所述密钥对中的公钥对源码文件进行加密;采用所述第一密钥对所述密钥对中的私钥进行加密,生成加密私钥;生成应用程序安装包,所述应用程序安装包包括加密的源码文件、所述加密私钥及按照预设放置规则分布到所述加密的源码文件中的第一密钥。2.根据权利要求1所述的方法,其特征在于,所述生成第一密钥,包括:生成随机字符串;使用加密算法对所述随机字符串循环加密预设次数,得到所述第一密钥。3.根据权利要求2所述的方法,其特征在于,所述预设次数为当前时间戳后两位数字。4.根据权利要求1所述的方法,其特征在于,所述生成第一密钥,包括:生成口令;对所述口令添加随机数;使用散列函数获取添加了随机数的口令的散列值,得到所述第一密钥。5.根据权利要求1所述的方法,其特征在于,所述预设放置规则,包括:从所述加密的源码文件尾部偏移第一预设字节长度,放置第一预设长度的密钥片段,从所述加密的源码文件尾部偏移第二预设字节长度,放置第二预设长度的密钥片段,从所述加密的源码文件头部偏移第三预设字节长度,放置第三预设长度的密钥片段。6.一种程序运行方法,其特征在于,包括:接收程序运行指令;加载应用程序及其安装目录下的文件,所述文件包括加密的源码文件、按照预设放置规则分布到所述加密的源码文件中的第一密钥及加密私钥;所述加密私钥为所述第一密钥对私钥加密得到的;根据所述预设放置规则从所述安装目录下的文件中获取所述第一密钥及所述加密私钥;采用所述第一密钥对所述加密私钥进行解密,得到所述私钥;采用所述私钥对所述加密的源码文件解密,得到源码文件;运行所述源码文件。7.根据权利要求6所述的方法,其特征在于,所述根据所述预设放置规则从所述安装目录下的文件中获取所述第一密钥及所述加密私钥,包括:从源码文...

【专利技术属性】
技术研发人员:管宏伟高旭
申请(专利权)人:贵州新致普惠信息技术有限公司
类型:发明
国别省市:

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

1