CN117786726A - 一种源码文件处理方法、装置、电子设备和存储介质 - Google Patents
一种源码文件处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117786726A CN117786726A CN202311867680.2A CN202311867680A CN117786726A CN 117786726 A CN117786726 A CN 117786726A CN 202311867680 A CN202311867680 A CN 202311867680A CN 117786726 A CN117786726 A CN 117786726A
- Authority
- CN
- China
- Prior art keywords
- key
- source code
- code file
- encrypted
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 21
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 99
- 238000004590 computer program Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 18
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种源码文件处理方法、装置、电子设备和存储介质,涉及软件开发领域,该方法包括:通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;根据第一私钥和第二密钥,获取第一加密字符串;通过第二密钥对源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。本发明实施例的技术方案,不但实现了源码文件的加密处理,提高了源码文件的代码安全性,而且加密后的源码文件不包含自动解密过程,进一步提升了加密后的源码文件的解密难度。
Description
技术领域
本发明涉及软件开发领域,尤其涉及一种源码文件处理方法、装置、电子设备和存储介质。
背景技术
在软件开发过程中,特别是Web应用的开发过程中,通常开发完成的软件项目都是以源码文件的形式存在,因此对源码文件的加密处理,以避免其被泄露或者恶意篡改,便成为了软件开发过程中的重要一环。
现有的源码文件,例如,基于PHP(Hypertext Preprocessor,超文本预处理器)语言编写的源码文件,通常是在编写完成后,通过按位异或运算或者其它加密算法,对源码文件进行加密处理。
然而,这样的加密方式,不但加密效果较差,而且在源码文件的末端位置往往需要通过指定的函数类执行源代码的还原操作,以使解释器获取到还原结果,也即加密后的源码文件包含自动解密过程,进一步降低了代码安全性。
发明内容
本发明提供了一种源码文件处理方法、装置及存储介质,以解决源码文件加密效果较差的问题。
根据本发明的一方面,提供了一种源码文件处理方法,包括:
通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;其中,所述第一密钥包括第一公钥和第一私钥;
根据所述第一私钥和所述第二密钥,获取第一加密字符串;
通过所述第二密钥对待加密的源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;其中,第二加密字符串与源码文件一一对应;
根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。
所述通过安全随机函数获取第二密钥,包括:通过安全随机函数获取多个第二密钥;其中,第二密钥与源码文件一一对应;所述根据所述第一私钥和所述第二密钥,获取第一加密字符串,包括:根据所述第一私钥和各个第二密钥,分别获取各个待加密的源码文件对应的第一加密字符串;其中,所述第一加密字符串与所述源码文件一一对应。
在通过第一函数库获取第一密钥之后,还包括:将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置。
所述将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置,包括:根据所述源码文件集的加密等级,获取匹配的密钥段落数量以及密钥段落序列;根据所述密钥段落数量,将所述第一公钥拆分为多个密钥段落,并根据所述密钥段落序列,将各个密钥段落配置于解释器的扩展文件中的不同位置。
所述源码文件处理方法,还包括:响应于获取到加密后的源码文件集,对解释器的扩展文件的配置文件进行更新,以将所述第一函数库配置为所述解释器的外部依赖;通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥;通过所述解释器,基于所述第二密钥继续对加密后的源码文件进行解密,以获取加密前的源码文件。
在通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥之前,还包括:获取所述解释器的编译函数的原始指针地址,并将所述编译函数的指针指向预先定义的解密执行函数。
在获取加密前的源码文件之后,还包括:调用所述编译函数执行源码文件的编译操作和执行源码操作,以及将所述编译函数的指针配置为所述原始指针地址。
根据本发明的另一方面,提供了一种源码文件处理装置,包括:
密钥获取模块,用于通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;其中,所述第一密钥包括第一公钥和第一私钥;
第一字符串获取模块,用于根据所述第一私钥和所述第二密钥,获取第一加密字符串;
第二字符串获取模块,用于通过所述第二密钥对待加密的源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;其中,第二加密字符串与源码文件一一对应;
加密文件获取模块,用于根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的源码文件处理方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的源码文件处理方法。
本发明实施例的技术方案,首先通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;然后根据第一私钥和第二密钥,获取第一加密字符串;再通过第二密钥对源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;最后根据第一加密字符串以及第二加密字符串,获取加密后的源码文件。不但实现了源码文件的加密处理,提高了源码文件的代码安全性,而且加密后的源码文件不包含自动解密过程,进一步提升了加密后的源码文件的解密难度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种源码文件处理方法的流程图;
图2是根据本发明实施例二提供的另一种源码文件处理方法的流程图;
图3是根据本发明实施例三提供的一种源码文件处理装置的结构示意图;
图4是实现本发明实施例的源码文件处理方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种源码文件处理方法的流程图,本实施例可适用于通过基于第一函数库的第一密钥以及基于安全随机函数的第二密钥,对源码文件进行加密的情况,该源码文件处理装置可以采用硬件和/或软件的形式实现,该源码文件处理装置可以配置于电子设备中。如图1所示,该方法包括:
S101、通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;其中,所述第一密钥包括第一公钥和第一私钥。
第一函数库,是提供加密函数的第三方函数库,其通过提供的加密函数生成第一密钥;其中,第一函数库可以包括OpenSSL(Open Secure Sockets Layer)库和keytool工具等;第一公钥和第一私钥的位数可以根据需要预先配置完成,例如,第一公钥和第一私钥可以配置为大于等于3072位的字符串。
还可以将第一函数库提供的加密函数配置于电子设备的本地加密程序中,即通过加密程序配置的加密函数生成第一密钥,例如,可以通过本地配置的函数rsa.GenerateKey(cryptorand.Reader,rsaKeySize)生成第一密钥。第一公钥和第一私钥可以分别通过不同的文件保存,例如,第一公钥可以保存于后缀为“key”的文件中,第一私钥可以保存于后缀为“pem”的文件中。特别的,通过第一函数库获取的第一密钥,与待加密的源码文件的文本内容以及源码文件的数量无关。
安全随机数是指无法被猜测或推测出来的随机数,具有高度的不可预测性和不相关性;安全随机函数,即用于生成上述安全随机数的相关函数;使用安全随机函数并通过特定的对称加密算法,例如,高级加密标准(Advanced Encryption Standard,AES)算法获取第二密钥;其中,AES算法不但具有加密和解密速度较快的特点,适合较大数据量的数据加密,而且采用的密钥长度较长,安全性更高。
AES算法的加密位数可以根据需要配置完成,例如,可以通过AES256算法获取,而AES256算法也即密钥长度为256位的AES算法,基于AES256算法获取到的第二密钥即为256位。特别的,第二密钥可以通过GO语言的加密库crypto中用于加密的随机数生成器rand的Read函数获取,同时,可以将第二密钥保存为全局密钥。
S102、根据所述第一私钥和所述第二密钥,获取第一加密字符串。
在读取第一私钥之后,通过第一私钥和非对称加密算法(例如,RSA加密算法),对第二密钥进行加密,以获取第一加密字符串。
S103、通过所述第二密钥对待加密的源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;其中,第二加密字符串与源码文件一一对应。
源码文件集由多个源码文件组成,每个源码文件分别记录了一个软件项目的部分源代码,源码文件集中的全部源码文件,共同组成了该软件项目的全部源代码。首先获取源码文件集的所在路径,其次遍历该路径下的所有源码文件;其中,源码文件可以包括基于PHP语言的源码文件,也即获取后缀名称为“php”的文件,得到需要加密的源码文件列表。
然后遍历该源码文件列表,以逐个读取每个源码文件的文本内容,并分别针对每个源码文件的文本内容,将第二密钥作为加密密钥,采用AES算法进行加密,得到第二加密字符串;由此每个源码文件的文本内容均转化为一个对应的第二加密字符串。
S104、根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。
由于每个第二加密字符串均是由一个源码文件转化而来,将第二加密字符串与第一加密字符串进行拼接,实际上就是在已经加密的第二加密字符串的前端,再次拼接了另一种加密字符串(即第一加密字符串),由此获取到的拼接结果,即为加密后的源码文件。在获取加密后的源码文件之前,可以预先指定加密后的源码文件的输出路径,该输出路径与加密前的源码文件的保存路径不同;而在获取加密后的源码文件之后,在上述输出路径下,输出加密后的源码文件;特别的,为了确保加密前后的源码文件的名称一致性,根据上述源码文件列表中的文件名称,加密前后的源码文件可以具有相同的文件名称。
可选的,在本发明实施例中,所述通过安全随机函数获取第二密钥,包括:通过安全随机函数获取多个第二密钥;其中,第二密钥与源码文件一一对应;所述根据所述第一私钥和所述第二密钥,获取第一加密字符串,包括:根据所述第一私钥和各个第二密钥,分别获取各个待加密的源码文件对应的第一加密字符串;其中,所述第一加密字符串与所述源码文件一一对应。
具体的,在基于安全随机函数生成第二密钥时,还可以根据源码文件的数量,生成等量的第二密钥,也即为每个源码文件分别生成一个第二密钥,在获取第一加密字符串时,可以使用第一私钥对与当前源码文件匹配的第二密钥进行加密,以提高第一加密字符串的加密安全性,降低源码文件被解密的可能性;也即此时每个源码文件的第一加密字符串需要分别解密,即使由于偶然因素部分加密后的源码文件的第一加密字符串被破解,同样无法获知其它源码文件的文本内容,提升了源码文件的安全性。
可选的,在本发明实施例中,在通过第一函数库获取第一密钥之后,还包括:将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置。具体的,解释器(Interpreter),也即直译器,其能够将高级编程语言转译为可执行的代码行,解释器实际上就是源码文件的执行工具,借助该执行工具运行源码文件中的代码;不同解释型语言编写的源码文件,需要不同的解释器执行,而每个解释器中除了具备记录有配置参数的配置文件以及依赖文件之外,一般都包括一个执行文件(也即主执行文件)。
以PHP语言的为例,其对应的解释器为“php”或“php.exe”,由C语言开发,同时可以通过C语言为其开发扩展,以扩充解释器能力,扩展可以作为动态库(so)形式存在,也可选择编译进主执行文件中,在本发明实施例中,以编译进主执行文件(例如,编译到主执行文件的PHP内核中)为例;PHP扩展骨架代码可以由工具“ext_skel.php”生成,该工具位于对应版本的工具压缩包的“ext”目录下;通过该代码生成工具在相应目录执行生成指令后,即生成了扩展骨架代码文件目录,该代码文件目录中即包括PHP源码文件解密并正常运行所需的源代码文件。
例如,在执行扩展生成工具“ext_skel.php”时,输入目标生成指令“--exti2srcEncryption”,即获取到解密扩展目录“i2srcEncryption”,该目录包括了PHP扩展骨架代码,例如,扩展文件“i2srcEncryption.c”;其中,解密扩展文件目录以及扩展文件的名称均可配置生成。在将第一公钥拆分成多个密钥段落后,将各个密钥段落配置于上述扩展文件的不同位置,并通过将不同密钥段落定义为不同变量或者不同常量的方式,使上述密钥段落在扩展文件中生效,由此不但将第一公钥存储于扩展文件中,避免了第一公钥独立存储及独立传输带来的安全风险,提升了文件传输的便利性,同时,拆分后的第一公钥也提升了源码文件从解释器中逆向还原的难度,确保了加密后源码文件的代码安全。
可选的,在本发明实施例中,所述将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置,包括:根据所述源码文件集的加密等级,获取匹配的密钥段落数量以及密钥段落序列;根据所述密钥段落数量,将所述第一公钥拆分为多个密钥段落,并根据所述密钥段落序列,将各个密钥段落配置于解释器的扩展文件中的不同位置。
具体的,密钥段落数量,是指第一公钥拆分成的密钥段落的数量;密钥段落序列,是指上述拆分后的各个密钥段落在扩展文件中的排列顺序;密钥段落数量越多,那么散落在扩展文件中的密钥段落数量也就越多,查找各个密钥段落并组合为第一公钥的过程也会变得更加繁琐;而密钥段落序列,与各个密钥段落在第一公钥中的原始排列顺序的差别越大,同样使查找各个密钥段落并组合为第一公钥的过程更加繁琐。
例如,第一公钥中依次排列的密钥段落A、密钥段落B和密钥段落C,如果扩展文件中的密钥段落序列同样为密钥段落A、密钥段落B和密钥段落C,那么在解密过程中,该密钥段落序列的还原过程较为简单,如果扩展文件中依次以密钥段落B、密钥段落C和密钥段落A的顺序排列,显然后者在解密过程中,该密钥段落序列的还原过程更加繁琐。
每个源码文件集根据其对应的软件项目的重要程度,可以配置为不同的加密等级,根据当前源码文件集对应的加密等级,可以确定匹配的密钥段落数量以及密钥段落序列,进而根据密钥段落数量,将第一公钥拆分为相应数量的密钥段落,并根据密钥段落序列,将各个密钥段落配置于源代码解释器的扩展文件中的不同位置,由此在将第一公钥存储于扩展文件,避免了第一公钥独立存储及独立传输带来的安全风险的同时,确保了当前软件项目的解密难度与其重要程度相匹配,既确保了重要软件项目较高的解密难度,提高了源码文件的代码安全性,又确保了常规软件项目较低的解密难度,提升了源码文件的解密便利性。
本发明实施例的技术方案,首先通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;然后根据第一私钥和第二密钥,获取第一加密字符串;再通过第二密钥对源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;最后根据第一加密字符串以及第二加密字符串,获取加密后的源码文件。不但实现了源码文件的加密处理,提高了源码文件的代码安全性,而且加密后的源码文件不包含自动解密过程,进一步提升了加密后的源码文件的解密难度。
实施例二
图2为本发明实施例二提供的一种源码文件处理方法的流程图,本实施例与上述实施例之间的关系在于,在获取到加密后的源码文件集之后,对该源码文件集进行解密。如图2所示,该方法包括:
S201、响应于获取到加密后的源码文件集,对解释器的扩展文件的配置文件进行更新,以将所述第一函数库配置为所述解释器的外部依赖。
在传统技术方案中,解释器在获取到源码文件集之后,直接执行各个源码文件的编译操作,所以解释器不需要依赖解密扩展工具,而在本发明实施例中,由于已对源码文件进行了加密,且加密方式与第一函数库相关,因此,需要实现解密以扩充主执行文件能力,且解密扩展功能依赖外部函数库,需要先对扩展文件的配置文件进行更新,也即第一函数库配置为解密扩展功能的外部依赖。
特别的,如上述技术方案所述,如果第一公钥如上述技术方案所述,已被拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中,其表明解密所需的第一公钥可以通过扩展文件获取;通过获取扩展文件解密扩展中的各个密钥段落,并将密钥段落进行组合,即可获取到第一公钥;此外,在解释器中还可以进一步定义并注册解密执行函数、解密扩展初始化函数和解密扩展关闭函数;其中,解密执行函数即执行解密操作并执行解密后源码的函数;解密扩展初始化函数即开启解密操作的函数,其具备劫持解释器的主执行文件中的编译函数的功能;解密扩展关闭函数即结束解密操作的函数。
S202、通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥。
S203、通过所述解释器,基于所述第二密钥继续对加密后的源码文件进行解密,以获取加密前的源码文件。
根据第一公钥的位数(例如,3072位),读取源码文件的指定数位(例如,前3072位)的数据,并通过第一公钥对上述指定数位中的数据进行解密,上述指定数位的数据实际上即为第一加密字符串,第一公钥对第一加密字符串的解密结果即为第二密钥;而加密后的源码文件中除上述指定数据之外的剩余数位的数据,即为第二加密字符串,使用获取到的第二密钥对第二加密字符串进行解密,解密结果即为加密前的源码文件。
可选的,在本发明实施例中,在通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥之前,还包括:获取所述解释器的编译函数的原始指针地址,并将所述编译函数的指针指向预先定义的解密执行函数。
具体的,如上述技术方案所述,由于在本发明实施例中,对源码文件集进行了加密处理,因此可以通过记录编译函数原本的指针地址(即原始指针地址),再劫持该编译函数,使该编译函数指向预先定义的解密执行函数,以此通过劫持编译函数的方式,确保了解密过程的顺利执行。
可选的,在本发明实施例中,在获取加密前的源码文件之后,还包括:调用所述编译函数执行源码文件的编译操作和执行源码操作,以及将所述编译函数的指针配置为所述原始指针地址。具体的,在获取到解密后的源码文件之后,可以通过调用编译函数对解密后的源码文件进行编译和执行源码,并在执行完成后释放编译和执行占用的内存资源;同时,通过解密扩展关闭函数关闭解密操作,并还原编译函数的指针地址,也即将编译函数的指针配置为上述原始指针地址,以确保解释器依照原有顺序执行编译操作,避免解释器误将解密扩展中的解密执行函数作为默认编译执行函数。
本发明实施例的技术方案,响应于获取到加密后的源码文件集,对解释器的配置文件进行更新,以将第一函数库配置为解释器的外部依赖;通过解释器,基于第一公钥对源码文件进行解密,以获取第二密钥;通过解释器,基于第二密钥对源码文件进行解密,以获取加密前的源码文件。非对称加密与对称加密的组合使用,增加了解密复杂度,确保了加密源码文件的安全性,同时,速度较慢的非对称解密方式仅针对第一加密字符串,第二加密字符串对应的源代码部分仍然采用速度较快的对称解密方式,确保了源码文件的解密效率。
实施例三
图3是本发明实施例三所提供的一种源码文件处理装置的结构框图,该装置具体包括:
密钥获取模块301,用于通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;其中,所述第一密钥包括第一公钥和第一私钥;
第一字符串获取模块302,用于根据所述第一私钥和所述第二密钥,获取第一加密字符串;
第二字符串获取模块303,用于通过所述第二密钥对待加密的源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;其中,第二加密字符串与源码文件一一对应;
加密文件获取模块304,用于根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。
本发明实施例的技术方案,首先通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;然后根据第一私钥和第二密钥,获取第一加密字符串;再通过第二密钥对源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;最后根据第一加密字符串以及第二加密字符串,获取加密后的源码文件。不但实现了源码文件的加密处理,提高了源码文件的代码安全性,而且加密后的源码文件不包含自动解密过程,进一步提升了加密后的源码文件的解密难度。
可选的,密钥获取模块301,具体用于通过安全随机函数获取多个第二密钥;其中,第二密钥与源码文件一一对应。
第一字符串获取模块302,具体用于根据所述第一私钥和各个第二密钥,分别获取各个待加密的源码文件对应的第一加密字符串;其中,所述第一加密字符串与所述源码文件一一对应。
可选的,源码文件处理装置,具体还用于将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置。
可选的,源码文件处理装置,具体还用于根据所述源码文件集的加密等级,获取匹配的密钥段落数量以及密钥段落序列;根据所述密钥段落数量,将所述第一公钥拆分为多个密钥段落,并根据所述密钥段落序列,将各个密钥段落配置于解释器的扩展文件中的不同位置。
可选的,源码文件处理装置,具体还用于响应于获取到加密后的源码文件集,对解释器的扩展文件的配置文件进行更新,以将所述第一函数库配置为所述解释器的外部依赖;通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥;通过所述解释器,基于所述第二密钥继续对加密后的源码文件进行解密,以获取加密前的源码文件。
可选的,源码文件处理装置,具体还用于获取所述解释器的编译函数的原始指针地址,并将所述编译函数的指针指向预先定义的解密执行函数。
可选的,源码文件处理装置,具体还用于调用所述编译函数执行源码文件的编译操作和执行源码操作,以及将所述编译函数的指针配置为所述原始指针地址。
上述装置可执行本发明任意实施例所提供的源码文件处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的源码文件处理方法。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、电子设备、刀片式电子设备、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如源码文件处理方法。
在一些实施例中,源码文件处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到异构硬件加速器上。当计算机程序加载到RAM并由处理器执行时,可以执行上文描述的源码文件处理方法的一个或多个步骤。备选地,在其他实施例中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行源码文件处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或电子设备上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在异构硬件加速器上实施此处描述的系统和技术,该异构硬件加速器具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给异构硬件加速器。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据电子设备)、或者包括中间件部件的计算系统(例如,应用电子设备)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和电子设备。客户端和电子设备一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-电子设备关系的计算机程序来产生客户端和电子设备的关系。电子设备可以是云电子设备,又称为云计算电子设备或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种源码文件处理方法,其特征在于,包括:
通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;其中,所述第一密钥包括第一公钥和第一私钥;
根据所述第一私钥和所述第二密钥,获取第一加密字符串;
通过所述第二密钥对待加密的源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;其中,第二加密字符串与源码文件一一对应;
根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。
2.根据权利要求1所述的方法,其特征在于,所述通过安全随机函数获取第二密钥,包括:
通过安全随机函数获取多个第二密钥;其中,第二密钥与源码文件一一对应;
所述根据所述第一私钥和所述第二密钥,获取第一加密字符串,包括:
根据所述第一私钥和各个第二密钥,分别获取各个待加密的源码文件对应的第一加密字符串;其中,所述第一加密字符串与所述源码文件一一对应。
3.根据权利要求1所述的方法,其特征在于,在通过第一函数库获取第一密钥之后,还包括:
将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一公钥拆分成多个密钥段落,并将各个密钥段落配置于解释器的扩展文件中的不同位置,包括:
根据所述源码文件集的加密等级,获取匹配的密钥段落数量以及密钥段落序列;
根据所述密钥段落数量,将所述第一公钥拆分为多个密钥段落,并根据所述密钥段落序列,将各个密钥段落配置于解释器的扩展文件中的不同位置。
5.根据权利要求1所述的方法,其特征在于,所述源码文件处理方法,还包括:
响应于获取到加密后的源码文件集,对解释器的扩展文件的配置文件进行更新,以将所述第一函数库配置为所述解释器的外部依赖;
通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥;
通过所述解释器,基于所述第二密钥继续对加密后的源码文件进行解密,以获取加密前的源码文件。
6.根据权利要求5所述的方法,其特征在于,在通过所述解释器,基于所述第一公钥对加密后的源码文件进行解密,以获取所述第二密钥之前,还包括:
获取所述解释器的编译函数的原始指针地址,并将所述编译函数的指针指向预先定义的解密执行函数。
7.根据权利要求6所述的方法,其特征在于,在获取加密前的源码文件之后,还包括:
调用所述编译函数执行源码文件的编译操作和执行源码操作,以及将所述编译函数的指针配置为所述原始指针地址。
8.一种源码文件处理装置,其特征在于,包括:
密钥获取模块,用于通过第一函数库获取第一密钥,并通过安全随机函数获取第二密钥;其中,所述第一密钥包括第一公钥和第一私钥;
第一字符串获取模块,用于根据所述第一私钥和所述第二密钥,获取第一加密字符串;
第二字符串获取模块,用于通过所述第二密钥对待加密的源码文件集中的各个源码文件分别进行加密,以获取多个第二加密字符串;其中,第二加密字符串与源码文件一一对应;
加密文件获取模块,用于根据第一加密字符串和各个第二加密字符串,获取加密后的源码文件集。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的源码文件处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的源码文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311867680.2A CN117786726A (zh) | 2023-12-29 | 2023-12-29 | 一种源码文件处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311867680.2A CN117786726A (zh) | 2023-12-29 | 2023-12-29 | 一种源码文件处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117786726A true CN117786726A (zh) | 2024-03-29 |
Family
ID=90387103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311867680.2A Pending CN117786726A (zh) | 2023-12-29 | 2023-12-29 | 一种源码文件处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117786726A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118041534A (zh) * | 2024-04-12 | 2024-05-14 | 浙江金网信息产业股份有限公司 | 一种源码动态算子加密方法 |
-
2023
- 2023-12-29 CN CN202311867680.2A patent/CN117786726A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118041534A (zh) * | 2024-04-12 | 2024-05-14 | 浙江金网信息产业股份有限公司 | 一种源码动态算子加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2677451B1 (en) | License verification method and apparatus, and computer readable storage medium storing program therefor | |
WO2019091016A1 (zh) | 数据采集工具包定制方法、装置、终端和存储介质 | |
CN112256275B (zh) | 代码混淆方法、装置、电子设备及介质 | |
US10839103B2 (en) | Privacy annotation from differential analysis of snapshots | |
CN117786726A (zh) | 一种源码文件处理方法、装置、电子设备和存储介质 | |
CN112214653B (zh) | 字符串识别方法、装置、存储介质及电子设备 | |
CN114925338A (zh) | 一种编译方法、装置、设备、介质和产品 | |
CN110086607B (zh) | 快速切换部署密钥的方法、装置、计算机设备和存储介质 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
CN108196906B (zh) | 一种用户指令处理方法及嵌入式设备 | |
US10567157B2 (en) | Virtual enigma cipher | |
CN111400743B (zh) | 基于区块链网络的事务处理方法、装置、电子设备和介质 | |
CN111309963B (zh) | 音频文件处理方法、装置、电子设备及可读存储介质 | |
CN108595973B (zh) | 指令确定方法、设备控制方法、装置和系统 | |
CN114154123B (zh) | 应用于Python项目的加密保护方法 | |
CN116244682A (zh) | 数据库的访问方法、装置、设备以及存储介质 | |
US11138319B2 (en) | Light-weight context tracking and repair for preventing integrity and confidentiality violations | |
CN113741949B (zh) | 一种应用程序安装包的生成方法、装置、设备及存储介质 | |
CN115442164A (zh) | 多用户日志加解密方法、装置、设备及存储介质 | |
CN112506796B (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN112559497B (zh) | 一种数据处理方法、一种信息传输方法、装置及电子设备 | |
CN113609156B (zh) | 数据的查询与写入方法、装置、电子设备及可读存储介质 | |
CN113591040B (zh) | 加密方法及其装置、解密方法及其装置、电子设备和介质 | |
CN115238310A (zh) | 一种数据加密、解密方法、装置、设备及存储介质 | |
CN117640081A (zh) | 一种数据加密方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |