CN117195166A - 组件源码保护方法、装置、计算机设备和存储介质 - Google Patents

组件源码保护方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN117195166A
CN117195166A CN202310912716.8A CN202310912716A CN117195166A CN 117195166 A CN117195166 A CN 117195166A CN 202310912716 A CN202310912716 A CN 202310912716A CN 117195166 A CN117195166 A CN 117195166A
Authority
CN
China
Prior art keywords
component
file
encrypted
signature
source code
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
Application number
CN202310912716.8A
Other languages
English (en)
Inventor
李书源
王英芝
罗璟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202310912716.8A priority Critical patent/CN117195166A/zh
Publication of CN117195166A publication Critical patent/CN117195166A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请涉及一种组件源码保护方法、装置、计算机设备、存储介质和计算机程序产品,涉及网络安全技术领域。所述方法包括:从组件服务器上下载与组件获取请求对应的目标组件包;基于目标组件包携带的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理;在目标组件包验签通过的情况下,对目标组件包携带的第一加密文件进行解密,得到第一解密文件,并将第一加密文件替换为第一解密文件;对第一解密文件进行加密,得到第二加密文件,并将第一解密文件替换为第二加密文件;对第二加密文件进行解密,得到与组件源码对应的目标组件代码文件,将目标组件代码文件加载至内存中。采用本方法,能够提高组件源码的安全性。

Description

组件源码保护方法、装置、计算机设备和存储介质
技术领域
本申请涉及网络安全技术领域,特别是涉及一种组件源码保护方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
近年来,以Webpack(一种代码编译工具)为代表的代码编译工具都开发出了对组件源码的混淆功能,通过混淆功能,可以将组件源码转换成用户不可理解的混淆代码,从而保护组件源码不被泄露和篡改。
然而,混淆代码仍然是可被二次修改的代码,并且伴随着反混淆技术的发展,目前出现了一些反混淆工具,能够实现对混淆代码的逆向混淆,从而得到组件源码。因此,基于代码编译工具的混淆功能的组件源码保护方法,容易导致组件源码的安全性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高组件源码的安全性的组件源码保护方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种组件源码保护方法。所述方法应用于组件申请方使用的第一终端,包括:
响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
在其中一个实施例中,所述对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,包括:
获取所述目标组件包携带的第一密钥;所述第一密钥为得到所述第一加密文件的密钥;
基于所述第一密钥,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件。
在其中一个实施例中,所述对所述第一解密文件进行加密处理,得到第二加密文件,包括:
根据所述签名文件,生成所述组件申请方的第二密钥;
基于所述第二密钥,对所述第一解密文件进行加密处理,得到第二加密文件。
在其中一个实施例中,所述基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理,包括:
从所述目标组件包中,识别出所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥;
基于所述验签公钥,对所述签名文件进行加密处理,得到加密处理后的签名文件;
在所述加密处理后的签名文件,和所述加密签名文件相同的情况下,确认所述目标组件包验签通过。
在其中一个实施例中,所述响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,包括:
响应于所述组件申请方的组件加载请求,确认根据所述目标组件包携带的签名文件生成的第二密钥;
基于所述第二密钥,对所述第二加密文件进行解密处理,得到解密后的第二加密文件;
将所述解密后的第二加密文件,确认为与所述组件源码对应的目标组件代码文件。
第二方面,本申请提供了一种组件源码保护方法。所述方法应用于组件提供方使用的第二终端,包括:
在接收到组件申请方发送的组件获取请求的情况下,基于所述组件获取请求,生成所述组件申请方的签名文件;
基于所述组件提供方的验签私钥,对所述签名文件进行加密处理,得到加密签名文件;
将所述签名文件、所述加密签名文件,以及与所述验签私钥对应的验签公钥,添加至所述组件获取请求对应的组件包中,得到所述组件获取请求对应的目标组件包;所述组件包携带有与组件源码相对应的第一加密文件;所述组件包存储在组件服务器中。
在其中一个实施例中,所述第一加密文件通过以下方式得到:
从所述组件包的组件文件中,识别出待加密的组件源码文件;
基于所述组件提供方的第一密钥,对所述待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件。
在其中一个实施例中,在基于所述组件提供方的第一密钥,对所述待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件之后,还包括:
将所述组件包中的待加密的组件源码文件替换为所述第一加密文件;
将所述第一密钥添加至所述组件包中。
第三方面,本申请还提供了一种组件源码保护装置。所述装置包括:
目标组件下载模块,用于响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
签名文件验签模块,用于基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
加密文件解密模块,用于在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
解密文件加密模块,对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
目标组件加载模块,用于响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
第四方面,本申请还提供了一种组件源码保护装置。所述装置包括:
签名文件生成模块,用于在接收到组件申请方发送的组件获取请求的情况下,基于所述组件获取请求,生成所述组件申请方的签名文件;
签名文件加密模块,用于基于所述组件提供方的验签私钥,对所述签名文件进行加密处理,得到加密签名文件;
签名文件添加模块,用于将所述签名文件、所述加密签名文件,以及与所述验签私钥对应的验签公钥,添加至所述组件获取请求对应的组件包中,得到所述组件获取请求对应的目标组件包;所述组件包携带有与组件源码相对应的第一加密文件;所述组件包存储在组件服务器中。
第五方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
第六方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
第七方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
上述组件源码保护方法、装置、计算机设备、存储介质和计算机程序产品,首先响应于组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与组件获取请求对应的目标组件包;然后基于目标组件包携带的组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理;接着在目标组件包验签通过的情况下,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将目标组件包中的第一加密文件替换为第一解密文件;第一加密文件与组件源码相对应;再接着对第一解密文件进行加密处理,得到第二加密文件,并将目标组件包中的第一解密文件替换为第二加密文件;最后响应于组件申请方的组件加载请求,对第二加密文件进行解密处理,得到与组件源码对应的目标组件代码文件,并将目标组件代码文件加载至内存中。这样,基于对目标组件包的验签处理,能够对下载目标组件包的组件申请方的组件使用权限进行验证;然后,通过对对应于组件源码的第一加密文件的解密和再次加密,能够实现对组件源码的二次加密,保证了组件源码在目标组件包中的加密状态;基于以上过程的组件源码保护方法,使得加密后的组件源码不易被反编译,从而提高了组件源码的安全性。
附图说明
图1为一个实施例中组件源码保护方法的应用环境图;
图2为一个实施例中组件源码保护方法的流程示意图;
图3为一个实施例中对目标组件包进行验签处理的步骤的流程示意图;
图4为一个实施例中得到与组件源码对应的目标组件代码文件的步骤的流程示意图;
图5为另一个实施例中源码保护方法的流程示意图;
图6为又一个实施例中源码保护方法的流程示意图;
图7为一个实施例中源码保护装置的结构框图;
图8为另一个实施例中源码保护装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
还需要说明的是,本申请提供的组件源码保护方法、装置、计算机设备、存储介质和计算机程序产品,可以应用于金融科技领域,比如对银行的前端开发所涉及的组件进行源码保护;还可以用于其他相关领域,比如在网络安全技术领域中,通过本申请提供的组件源码保护方法,对开发过程中涉及的重要代码进行保护。
本申请实施例提供的组件源码保护方法,可以应用于如图1所示的应用环境中。该应用环境包括:组件申请方使用的第一终端102、用于存储已发布的组件包的组件服务器104,以及组件提供方使用的第二终端106;其中,第一终端102和组件服务器104,以及第二终端106和组件服务器104之间均可通过网络进行通信。第一终端102和第二终端106均可以但不限于是各种个人计算机、笔记本电脑、智能手机以及平板电脑等,组件服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体地,组件提供方在发布组件包时,需要通过第二终端106对组件包中的组件源码进行加密,得到第一加密文件;然后第二终端106再把带有第一加密文件的组件包上传至组件服务器104。当组件申请方通过第一终端102向组件提供方发送组件获取请求时,第一终端102会响应于组件获取请求,从组件服务器104上下载与组件获取请求对应的目标组件包,并基于目标组件包携带的组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理;然后,第一终端102在目标组件包验签通过的情况下,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将目标组件包中的第一加密文件替换为第一解密文件;接着,第一终端102对第一解密文件进行加密处理,得到第二加密文件,并将目标组件包中的第一解密文件替换为第二加密文件;最后,当组件申请方通过第一终端102发起组件加载请求时,第一终端102会响应于组件加载请求,对第二加密文件进行解密处理,得到与组件源码对应的目标组件代码文件,并将目标组件代码文件加载至第一终端102的内存中,从而利用目标组件代码文件进行开发。
在一示例性实施例中,如图2所示,提供了一种组件源码保护方法,以该方法应用于图1中的组件申请方使用的第一终端为例进行说明,包括以下步骤:
步骤S202,响应于组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与组件获取请求对应的目标组件包。
其中,组件服务器用于存储组件提供方发布的组件包。
其中,组件获取请求携带有组件申请人的用户标识、组件申请人使用的第一终端的终端标识,以及组件申请人对目标组件包的使用用途等信息。
具体地,组件申请方在需要从组件服务器上下载已经发布的组件包时,通过第一终端向组件提供方发起组件获取请求;第一终端响应于组件申请方向组件提供方发送的组件获取请求,从组件服务器存储的多个组件包中,识别出对应的组件包标识与组件获取请求携带的组件包标识相同的组件包,作为与组件获取请求对应的目标组件包,并将目标组件包从组件服务器上下载到第一终端上。
步骤S204,基于目标组件包携带的组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理。
其中,验签处理用于验证组件申请方对于目标组件包的组件使用权限。
其中,验签公钥与得到加密签名文件的验签私钥不相同。
具体地,第一终端基于目标组件包携带的组件申请方的签名文件和验签公钥,对签名文件进行加密处理,得到加密处理后的签名文件,然后再基于加密处理后的签名文件,和与签名文件对应的加密签名文件之间的对比情况,验证组件申请方对于目标组件包的组件使用权限。
步骤S206,在目标组件包验签通过的情况下,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将目标组件包中的第一加密文件替换为第一解密文件。
其中,第一加密文件与组件源码相对应。
具体地,第一终端在目标组件包验签通过的情况下,基于目标组件包携带的第一密钥,对目标组件包携带的、与组件源码相对应的第一加密文件进行解密处理,得到解密后的第一加密文件,即第一解密文件;然后,第一终端将目标组件包中的第一加密文件替换为第一解密文件。能够理解的是,在替换完成之后,目标组件包中将不存在第一加密文件。
步骤S208,对第一解密文件进行加密处理,得到第二加密文件,并将目标组件包中的第一解密文件替换为第二加密文件。
具体地,第一终端生成组件申请方的第二密钥,并基于第二密钥对第一解密文件进行加密处理,得到加密后的第一解密文件,即第二加密文件;然后,第一终端将目标组件包中的第一解密文件替换为第二加密文件,能够理解的是,在替换完成之后,目标组件包中将不存在第一解密文件。
需要说明的是,第二密钥与第一密钥不相同。
由于第二密钥为与组件申请方对应的密钥,因此通过第二密钥对第一解密文件的加密,能够实现针对不同的组件申请方,对第一解密文件进行不同的加密处理,进而提高了组件源码的安全性。
步骤S210,响应于组件申请方的组件加载请求,对第二加密文件进行解密处理,得到与组件源码对应的目标组件代码文件,并将目标组件代码文件加载至内存中。
具体地,在组件申请方需要加载目标组件包中的组件,进行开发时,通过第一终端发起组件加载请求;第一终端响应于组件加载请求,通过第二密钥对第二加密文件进行解密处理,得到解密后的第二加密文件,即与组件源码对应的目标组件代码文件;然后,第一终端将组件代码文件加载至第一终端的内存中,以通过组件代码文件实现开发。
能够理解的是,由于第一终端没有将目标组件包中的第二加密文件替换为目标组件代码文件,因此,在目标组件包中,组件源码仍然是以密文的形式存在;即,组件申请方可以利用组件代码文件进行开发,但仍然无法查阅组件源码,也无法对组件源码进行篡改。
上述实施例提供的应用于组件申请方使用的第一终端的组件源码保护方法中,第一终端首先响应于组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与组件获取请求对应的目标组件包;然后基于目标组件包携带的组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理;接着在目标组件包验签通过的情况下,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将目标组件包中的第一加密文件替换为第一解密文件;第一加密文件与组件源码相对应;再接着对第一解密文件进行加密处理,得到第二加密文件,并将目标组件包中的第一解密文件替换为第二加密文件;最后响应于组件申请方的组件加载请求,对第二加密文件进行解密处理,得到与组件源码对应的目标组件代码文件,并将目标组件代码文件加载至内存中。这样,基于对目标组件包的验签处理,第一终端能够对下载目标组件包的组件申请方的组件使用权限进行验证;然后,通过对对应于组件源码的第一加密文件的解密和再次加密,能够实现对组件源码的二次加密,保证了组件源码在目标组件包中的加密状态;基于以上过程的组件源码保护方法,使得加密后的组件源码不易被反编译,从而提高了组件源码的安全性。
在一示例性实施例中,上述步骤S206,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,具体包括以下内容:获取目标组件包携带的第一密钥;基于第一密钥,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件。
其中,第一密钥为针对组件提供方的密钥;第一密钥为得到第一加密文件的密钥。
具体地,第一终端首先获取目标组件包携带的、组件提供方的第一密钥;然后,第一终端基于得到第一加密文件的第一密钥,采用对称加密算法,对目标组件包携带的第一加密文件进行解密处理,得到解密后的第一加密文件,即第一解密文件。
对称加密算法是指加密密钥和解密密钥相同的加密算法。
举例说明,假设组件提供方在对组件源码进行加密时,是通过第一密钥得到的第一加密文件,那么第一终端在对第一加密文件进行解密时,同样采用第一密钥进行解密,得到解密后的第一加密文件,即第一解密文件。
本实施例中,第一终端通过目标组件包携带的、组件提供方的第一密钥,能够将密文形式的组件源码(第一加密文件),转为明文形式的组件源码(第一解密文件),便于后续针对不同的组件申请方,对组件源码的再次加密,从而提高了组件源码在传输过程中的安全性。
在一示例性实施例中,上述步骤S208,对第一解密文件进行加密处理,得到第二加密文件,具体包括以下内容:根据签名文件,生成组件申请方的第二密钥;基于第二密钥,对第一解密文件进行加密处理,得到第二加密文件。
具体地,第一终端首先基于目标组件包携带的签名文件,生成针对组件申请方的第二密钥;然后第一终端基于第二密钥,采用对称加密算法,对第一解密文件进行再次加密处理,得到加密后的第一解密文件,即第二加密文件。
本实施例中,第一终端通过组件申请方的签名文件,能够生成针对组件申请方的第二密钥,并根据第二密钥对第一加密文件进行再次加密处理,能够将明文形式的组件源码(第一解密文件),转为密文形式的组件源码(第二加密文件),从而实现了针对不同的组件申请方,对组件源码的再次加密,进一步提高了组件源码在传输过程中的安全性。
如图3所示,在一示例性实施例中,上述步骤S204,基于目标组件包携带的组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理,具体包括以下步骤:
步骤S302,从目标组件包中,识别出组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥。
步骤S306,基于验签公钥,对签名文件进行加密处理,得到加密处理后的签名文件。
步骤S308,在加密处理后的签名文件,和加密签名文件相同的情况下,确认目标组件包验签通过。
其中,签名文件中包括组件申请方的用户标识、组件申请方使用的第一终端的终端标识,以及组件申请方对目标组件包的使用用途等信息。
其中,加密签名文件通过组件提供方基于验签私钥对签名文件的加密处理得到。
具体地,第一终端从目标组件包中,识别出包括组件申请方的签名文件、与签名文件对应的加密签名文件以及验签公钥;然后,第一终端基于验签公钥,采用非对称加密算法,对签名文件进行加密处理,得到加密处理后的签名文件;接着,第一终端对比加密处理后的签名文件和加密签名文件,在二者相同的情况下,确认目标组件包验签通过,即目标组件包在传输过程中没有被篡改,且组件申请方拥有对目标组件方的组件使用权限。能够理解的是,若加密处理后的签名文件和加密签名文件不相同,则说明目标组件包中的签名文件已被篡改,目标组件包极有可能正在被传输给没有组件使用权限的用户,因此验签不通过,无法对第一加密文件进行解密。
非对称加密算法是指加密密钥和解密密钥不同的加密算法。
能够理解的是,组件使用权限,除了包括用户是否有使用组件的用户权限,还包括用户所使用的终端是否有使用组件的终端权限,以及用户对组件的使用用途是否符合该组件的指定用途的用途权限。
举例说明,第一终端从目标组件包中识别出验签脚本,验签脚本中保存有签名文件、加密验签文件以及验签公钥,第一终端通过验签脚本对目标组件包进行验签处理,从而验证组件申请方是否有使用组件的用户权限,组件申请方使用的第一终端是否有使用组件的终端权限,以及用户对组件的使用用途是否符合该组件的指定用途的用途权限,即组件申请方是否拥有对目标组件包的组件使用权限。
本实施例中,第一终端通过目标组件包携带的签名文件、加密签名文件以及验签公钥,能够验证组件申请方是否拥有对目标组件包的组件使用权限,从而保证目标组件包不会被泄露,进而保证了不拥有组件使用权限的用户无法使用目标组件包里的组件,更无法查阅或篡改目标组件包里的组件源码,提高了组件源码的安全性。
如图4所示,在一示例性实施例中,上述步骤S210,响应于组件申请方的组件加载请求,对第二加密文件进行解密处理,得到与组件源码对应的目标组件代码文件,具体包括以下步骤:
步骤S402,响应于组件申请方的组件加载请求,确认根据目标组件包携带的签名文件生成的第二密钥。
步骤S404,基于第二密钥,对第二加密文件进行解密处理,得到解密后的第二加密文件。
步骤S406,将解密后的第二加密文件,确认为与组件源码对应的目标组件代码文件。
其中,与组件源码对应的目标组件代码文件,为能够实现开发,但无法进行查阅与篡改的代码文件。
具体地,组件申请方在需要利用目标组件包中的组件源码进行开发时,通过第一终端发起组件加载请求;第一终端响应于组件申请方的组件加载请求,确认根据目标组件包携带的签名文件生成的第二密钥;然后,第一终端基于第二密钥,采用对称加密算法,对第二加密文件进行解密处理,得到解密后的第二加密文件;最后,第一终端将解密后的第二加密文件确认为与组件源码对应的目标组件代码。组件申请方基于目标组件代码文件,能够实现开发,但无法直接查阅或篡改组件源码。
需要说明的是,对于第二密钥的确认,第一终端可以直接利用将第一解密文件转为第二加密文件时所用的密钥,也可以基于签名文件再次生成密钥。
本实施例中,第一终端通过第二密钥,能够在组件申请方需要利用目标组件包中的组件源码进行开发时,将密文形式的组件源码(第二加密文件),转为明文形式的组件源码(第二解密文件),从而便于组件申请方对组件源码的应用;同时,由于第一终端没有将目标组件包中的第二加密文件替换为第二解密文件,因此组件源码在目标组件包中仍然是以密文形式存在的,组件申请人仍然无法对组件源码进行查阅和篡改,进而在保证组件源码的可利用性的情况下,提高了组件源码的安全性。
在一示例性实施例中,如图5所示,提供了另一种组件源码保护方法,以该方法应用于图1中的组件提供方使用的第二终端为例进行说明,包括以下步骤:
步骤S502,在接收到组件申请方发送的组件获取请求的情况下,基于组件获取请求,生成组件申请方的签名文件。
步骤S504,基于组件提供方的验签私钥,对签名文件进行加密处理,得到加密签名文件。
步骤S506,将签名文件、加密签名文件,以及与验签私钥对应的验签公钥,添加至组件获取请求对应的组件包中,得到组件获取请求对应的目标组件包。
其中,组件包携带有与组件源码相对应的第一加密文件;组件包存储在组件服务器中。
其中,验签私钥与验签公钥不相同。
具体地,组件提供方使用的第二终端在接收到组件申请方通过第一终端发送的组件获取请求的情况下,基于组件获取请求携带的组件申请人的用户标识、组件申请人使用的第一终端的终端标识,以及组件申请人对目标组件包的使用用途等信息,生成针对组件申请人的签名文件;然后,第二终端基于组件提供方的验签私钥,采用非对称加密算法,对签名文件进行加密处理,得到加密签名文件;最后,第二终端将签名文件、加密签名文件以及与验签私钥对应的验签公钥,上传至组件服务器中与组件获取请求对应的组件包中,得到组件获取请求对应的目标组件包。
上述实施例提供的应用于组件提供方使用的第二终端的组件源码保护方法中,第二终端首先在接收到组件申请方发送的组件获取请求的情况下,基于组件获取请求,生成组件申请方的签名文件;然后,基于组件提供方的验签私钥,对签名文件进行加密处理,得到加密签名文件;最后,将签名文件、加密签名文件,以及与验签私钥对应的验签公钥,添加至组件获取请求对应的组件包中,得到组件获取请求对应的目标组件包。这样,第二终端通过对签名文件的加密,能够实现后续组件申请方使用的第一终端对目标组件包的验签处理,从而实现对组件申请方对于目标组件包的组件使用权限的验证,保证了组件源码的安全性。
在一示例性实施例中,上述实施例中的第一加密文件通过以下方式得到:从组件包的组件文件中,识别出待加密的组件源码文件;基于组件提供方的第一密钥,对待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件。
具体地,第二终端从组件包的组件文件中,识别出待加密的组件源码文件;然后,第二终端基于组件提供方的第一密钥,采用对称加密算法,对待加密的组件源码文件进行加密处理,得到加密后的组件源码文件,即与组件源码相对应的第一加密文件。
举例说明,以基于JavaScript(一种编程语言)的组件为例,一般需要加密的组件源码文件为后缀为.vue和.js的文件,因此,第二终端遍历组件包的各个文件,并从组件包中识别出后缀为.vue或.js的文件,作为待加密的组件源码文件,并利用第一密钥,对后缀为.vue或.js的文件进行加密处理,得到第一加密文件。
本实施例中,第二终端通过第一密钥对待加密的组件源码文件的加密处理,能够将明文形式的组件源码(待加密的组件源码文件),转为密文形式的组件源码(第一加密文件),从而保证了组件源码的安全性,使得组件源码不会轻易被泄露或篡改。
在一示例性实施例中,在基于组件提供方的第一密钥,对待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件之后,具体还包括以下内容:将组件包中的待加密的组件源码文件替换为第一加密文件;将第一密钥添加至组件包中。
具体地,第二终端在得到第一加密文件之后,需要将组件包中的待加密的组件源码文件替换为第一加密文件,并将得到第一加密文件的第一密钥,添加至组件包中。
本实施例中,第二终端通过第一加密文件和组件源码文件之间的替换,能够保证组件包中不存在以明文形式存在的组件源码,从而提高了组件源码的安全性。
在一示例性实施例中,如图6所示,提供了又一种组件源码保护方法,以该方法应用于图1中的组件申请方使用的第一终端为例进行说明,包括以下步骤:
步骤S601,响应于组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与组件获取请求对应的目标组件包。
步骤S602,从目标组件包中,识别出组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥。
步骤S603,基于验签公钥,对签名文件进行加密处理,得到加密处理后的签名文件。
步骤S604,在加密处理后的签名文件,和加密签名文件相同的情况下,确认目标组件包验签通过。
步骤S605,在目标组件包验签通过的情况下,获取目标组件包携带的第一密钥。
步骤S606,基于第一密钥,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将目标组件包中的第一加密文件替换为第一解密文件。
步骤S607,根据签名文件,生成组件申请方的第二密钥。
步骤S608,基于第二密钥,对第一解密文件进行加密处理,得到第二加密文件,并将目标组件包中的第一解密文件替换为第二加密文件。
步骤S609,响应于组件申请方的组件加载请求,确认根据目标组件包携带的签名文件生成的第二密钥。
步骤S610,基于第二密钥,对第二加密文件进行解密处理,得到解密后的第二加密文件。
步骤S611,将解密后的第二加密文件,确认为与组件源码对应的目标组件代码文件,并将目标组件代码文件加载至内存中。
本实施例中,第一,第一终端通过目标组件包携带的签名文件、加密签名文件以及验签公钥,能够验证组件申请方是否拥有对目标组件包的组件使用权限,从而保证目标组件包不会被泄露,进而保证了不拥有组件使用权限的用户无法使用目标组件包里的组件,更无法查阅或篡改目标组件包里的组件源码。第二,第一终端通过目标组件包携带的、组件提供方的第一密钥,能够将密文形式的组件源码(第一加密文件),转为明文形式的组件源码(第一解密文件),又通过组件申请方的签名文件,能够生成针对组件申请方的第二密钥,并根据第二密钥对第一加密文件进行再次加密处理,能够将明文形式的组件源码(第一解密文件),再次转为密文形式的组件源码(第二加密文件),从而实现了针对不同的组件申请方,对组件源码的再次加密。第三,第一终端通过第二密钥,能够在组件申请方需要利用目标组件包中的组件源码进行开发时,将密文形式的组件源码(第二加密文件),转为明文形式的组件源码(第二解密文件),从而便于组件申请方对组件源码的应用;同时,由于第一终端没有将目标组件包中的第二加密文件替换为第二解密文件,因此组件源码在目标组件包中仍然是以密文形式存在的,组件申请人仍然无法对组件源码进行查阅和篡改,进而在保证组件源码的可利用性的情况下,提高了组件源码的安全性。
为了更清晰阐明本申请实施例提供的组件源码保护方法,以下以一个具体的实施例对该组件源码保护方法进行具体说明,但应当理解的是,本申请实施例并不限于此。在一示例性实施例中,本申请还提供了一种基于npm(Node Package Manager,一种包管理工具)与webpack的vue(一种基于JavaScript的框架)组件源码保护方法,具体包括以下三个阶段:
第一阶段:组件提供者的组件发布阶段。
1、组件提供者通过使用的第二终端,遍历组件包中后缀为.vue的文件;vue文件中为组件源码;
2、第二终端基于组件提供者的第一密钥,采用对称加密算法,对.vue文件按字符进行加密,得到第一加密文件;
3、第二终端用第一加密文件替换组件包中的.vue文件,并将第一密钥添加到组件包中;
4、第二终端将组件包发布到npm服务器上。
第二阶段:组件申请者的组件安装阶段。
1、组件申请者通过使用的第一终端,向组件提供者发起组件获取请求;
2、组件提供者通过使用的第二终端,基于组件获取请求,生成组件申请者的签名文件,并基于组件提供者的验签私钥,对签名文件进行加密,得到加密签名文件,然后将签名文件、加密签名文件以及与验签私钥对应的验签公钥,上传到npm服务器上、与组件获取请求对应的组件包中,得到与组件获取请求对应的目标组件包;
3、第一终端开始下载目标组件包,并触发验签处理:第一终端基于验签公钥,采用非对称加密算法,对签名文件进行加密,得到加密后的签名文件,并在加密后的签名文件与加密签名文件相同的情况下,确认组件申请者拥有组件使用权限,验签通过;若验签不通过,则终止安装;
4、第一终端根据签名文件,生成第二密钥;
5、第一终端基于第一密钥,采用对称加密算法,对第一加密文件进行解密处理,得到第一解密文件,并用第一解密文件替换目标组件包中的第一加密文件;
6、第一终端基于第二密钥,采用对称加密算法,对第一解密文件进行加密处理,得到第二加密文件,并用第二加密文件替换组件包中的第一解密文件。
第三阶段,组件申请者的组件开发阶段。
1、组件申请者通过第一终端发起组件加载请求,第一终端响应于组件加载请求,通过webpack编写一个文件处理程序,例如webpack中的loader(一种文件处理工具,用于对文件进行处理后再载入内存);
2、第一终端通过文件处理程序,读取组件包的签名文件,生成第二密钥;
3、第一终端通过文件处理程序,基于第二密钥和对称加密算法,对第二加密文件进行解密处理,得到第二解密文件,并将第二解密文件作为目标组件代码文件,载入内存正常执行,而组件包中的组件源码仍然以第二加密文件的形式存在。
能够理解的是,上述各个阶段中的各个步骤均可以使用混淆加密工具对加密过程进行加固处理,以进一步提高安全性。
本实施例中,通过对.vue文件(组件源码)的二次加密,可以实现针对不同的组件申请者的加密过程,并基于签名文件的验签,能够保证没有组件使用权限的用户无法利用组件源码进行开发,更无法查阅、篡改组件源码;基于以上过程的组件源码保护方法,不易被反编译,提高了组件源码的安全性,同时还不会植入与组件源码业务逻辑无关的代码,保证了组件源码的简洁性,保证了组件的加载速度。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的组件源码保护方法的组件源码保护装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个组件源码保护装置实施例中的具体限定可以参见上文中对于组件源码保护方法的限定,在此不再赘述。
在一示例性实施例中,如图7所示,提供了一种组件源码保护装置,包括:目标组件下载模块702、签名文件验签模块704、加密文件解密模块706、解密文件加密模块708和目标组件加载模块710,其中:
目标组件下载模块702,用于响应于组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与组件获取请求对应的目标组件包。
签名文件验签模块704,用于基于目标组件包携带的组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥,对目标组件包进行验签处理。
加密文件解密模块706,用于在目标组件包验签通过的情况下,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将目标组件包中的第一加密文件替换为第一解密文件;第一加密文件与组件源码相对应。
解密文件加密模块708,用于对第一解密文件进行加密处理,得到第二加密文件,并将目标组件包中的第一解密文件替换为第二加密文件。
目标组件加载模块710,用于响应于组件申请方的组件加载请求,对第二加密文件进行解密处理,得到与组件源码对应的目标组件代码文件,并将目标组件代码文件加载至内存中。
在一示例性实施例中,加密文件解密模块706,还用于获取目标组件包携带的第一密钥;第一密钥为得到第一加密文件的密钥;基于第一密钥,对目标组件包携带的第一加密文件进行解密处理,得到第一解密文件。
在一示例性实施例中,解密文件加密模块708,还用于根据签名文件,生成组件申请方的第二密钥;基于第二密钥,对第一解密文件进行加密处理,得到第二加密文件。
在一示例性实施例中,签名文件验签模块704,还用于从目标组件包中,识别出组件申请方的签名文件、与签名文件对应的加密签名文件,以及验签公钥;基于验签公钥,对签名文件进行加密处理,得到加密处理后的签名文件;在加密处理后的签名文件,和加密签名文件相同的情况下,确认目标组件包验签通过。
在一示例性实施例中,目标组件加载模块710,还用于响应于组件申请方的组件加载请求,确认根据目标组件包携带的签名文件生成的第二密钥;基于第二密钥,对第二加密文件进行解密处理,得到解密后的第二加密文件;将解密后的第二加密文件,确认为与组件源码对应的目标组件代码文件。
在一示例性实施例中,如图8所示,提供了另一种组件源码保护装置,包括:签名文件生成模块802、签名文件加密模块804和签名文件添加模块806,其中:
签名文件生成模块802,用于在接收到组件申请方发送的组件获取请求的情况下,基于组件获取请求,生成组件申请方的签名文件。
签名文件加密模块804,用于基于组件提供方的验签私钥,对签名文件进行加密处理,得到加密签名文件。
签名文件添加模块806,用于将签名文件、加密签名文件,以及与验签私钥对应的验签公钥,添加至组件获取请求对应的组件包中,得到组件获取请求对应的目标组件包;组件包携带有与组件源码相对应的第一加密文件;组件包存储在组件服务器中。
在一示例性实施例中,组件源码保护装置还包括源码文件加密模块,用于从组件包的组件文件中,识别出待加密的组件源码文件;基于组件提供方的第一密钥,对待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件。
在一示例性实施例中,源码文件加密模块,还用于将组件包中的待加密的组件源码文件替换为第一加密文件;将第一密钥添加至组件包中。
上述组件源码保护装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一示例性实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种组件源码保护方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一示例性实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一示例性实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一示例性实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (13)

1.一种组件源码保护方法,其特征在于,应用于组件申请方使用的第一终端,所述方法包括:
响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,包括:
获取所述目标组件包携带的第一密钥;所述第一密钥为得到所述第一加密文件的密钥;
基于所述第一密钥,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一解密文件进行加密处理,得到第二加密文件,包括:
根据所述签名文件,生成所述组件申请方的第二密钥;
基于所述第二密钥,对所述第一解密文件进行加密处理,得到第二加密文件。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理,包括:
从所述目标组件包中,识别出所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥;
基于所述验签公钥,对所述签名文件进行加密处理,得到加密处理后的签名文件;
在所述加密处理后的签名文件,和所述加密签名文件相同的情况下,确认所述目标组件包验签通过。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,包括:
响应于所述组件申请方的组件加载请求,确认根据所述目标组件包携带的签名文件生成的第二密钥;
基于所述第二密钥,对所述第二加密文件进行解密处理,得到解密后的第二加密文件;
将所述解密后的第二加密文件,确认为与所述组件源码对应的目标组件代码文件。
6.一种组件源码保护方法,其特征在于,应用于组件提供方使用的第二终端,所述方法包括:
在接收到组件申请方发送的组件获取请求的情况下,基于所述组件获取请求,生成所述组件申请方的签名文件;
基于所述组件提供方的验签私钥,对所述签名文件进行加密处理,得到加密签名文件;
将所述签名文件、所述加密签名文件,以及与所述验签私钥对应的验签公钥,添加至所述组件获取请求对应的组件包中,得到所述组件获取请求对应的目标组件包;所述组件包携带有与组件源码相对应的第一加密文件;所述组件包存储在组件服务器中。
7.根据权利要求6所述的方法,其特征在于,所述第一加密文件通过以下方式得到:
从所述组件包的组件文件中,识别出待加密的组件源码文件;
基于所述组件提供方的第一密钥,对所述待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件。
8.根据权利要求7所述的方法,其特征在于,在基于所述组件提供方的第一密钥,对所述待加密的组件源码文件进行加密处理,得到对应于组件源码的第一加密文件之后,还包括:
将所述组件包中的待加密的组件源码文件替换为所述第一加密文件;
将所述第一密钥添加至所述组件包中。
9.一种组件源码保护装置,其特征在于,所述装置包括:
目标组件下载模块,用于响应于所述组件申请方向组件提供方发送的组件获取请求,从组件服务器上下载与所述组件获取请求对应的目标组件包;
签名文件验签模块,用于基于所述目标组件包携带的所述组件申请方的签名文件、与所述签名文件对应的加密签名文件,以及验签公钥,对所述目标组件包进行验签处理;
加密文件解密模块,用于在所述目标组件包验签通过的情况下,对所述目标组件包携带的第一加密文件进行解密处理,得到第一解密文件,并将所述目标组件包中的第一加密文件替换为所述第一解密文件;所述第一加密文件与组件源码相对应;
解密文件加密模块,用于对所述第一解密文件进行加密处理,得到第二加密文件,并将所述目标组件包中的第一解密文件替换为所述第二加密文件;
目标组件加载模块,用于响应于所述组件申请方的组件加载请求,对所述第二加密文件进行解密处理,得到与所述组件源码对应的目标组件代码文件,并将所述目标组件代码文件加载至内存中。
10.一种组件源码保护装置,其特征在于,所述装置包括:
签名文件生成模块,用于在接收到组件申请方发送的组件获取请求的情况下,基于所述组件获取请求,生成所述组件申请方的签名文件;
签名文件加密模块,用于基于所述组件提供方的验签私钥,对所述签名文件进行加密处理,得到加密签名文件;
签名文件添加模块,用于将所述签名文件、所述加密签名文件,以及与所述验签私钥对应的验签公钥,添加至所述组件获取请求对应的组件包中,得到所述组件获取请求对应的目标组件包;所述组件包携带有与组件源码相对应的第一加密文件;所述组件包存储在组件服务器中。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202310912716.8A 2023-07-24 2023-07-24 组件源码保护方法、装置、计算机设备和存储介质 Pending CN117195166A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310912716.8A CN117195166A (zh) 2023-07-24 2023-07-24 组件源码保护方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310912716.8A CN117195166A (zh) 2023-07-24 2023-07-24 组件源码保护方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN117195166A true CN117195166A (zh) 2023-12-08

Family

ID=88996814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310912716.8A Pending CN117195166A (zh) 2023-07-24 2023-07-24 组件源码保护方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117195166A (zh)

Similar Documents

Publication Publication Date Title
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US10917394B2 (en) Data operations using a proxy encryption key
US9037870B1 (en) Method and system for providing a rotating key encrypted file system
CN112818380A (zh) 业务行为的回溯处理方法、装置、设备及系统
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
CN111656345B (zh) 启用容器文件中加密的软件模块
US20150172044A1 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
CN102821098A (zh) 云环境下即时通讯消息自溶解系统及方法
CN115580413B (zh) 一种零信任的多方数据融合计算方法和装置
US11290277B2 (en) Data processing system
KR101699176B1 (ko) Hdfs 데이터 암호화 및 복호화 방법
JP2016111440A (ja) 情報処理装置、及びコンピュータプログラム
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
CN113569265B (zh) 一种数据处理方法、系统及装置
CN116132065A (zh) 密钥确定方法、装置、计算机设备和存储介质
CN117195166A (zh) 组件源码保护方法、装置、计算机设备和存储介质
CN114788221A (zh) 带访问控制谓词的包装密钥
JP2020155801A (ja) 情報管理システム及びその方法
CN110516468A (zh) 一种虚拟机内存快照加密的方法和装置
CN114896621B (zh) 应用服务的获取方法、加密方法、装置、计算机设备
CN115470525B (zh) 一种文件保护方法、系统、计算设备及存储介质
Rawat et al. Enhanced Security Mechanism for Cryptographic File Systems Using Trusted Computing
CN114301710A (zh) 确定报文是否被篡改的方法、密管平台和密管系统
CN115952519A (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