文件处理方法、设备、系统和存储介质与流程

文档序号:25109535发布日期:2021-05-19 00:24阅读:61来源:国知局
文件处理方法、设备、系统和存储介质与流程

1.本申请涉及计算机技术领域,尤其涉及一种文件处理方法、设备、系统和存储介质。


背景技术:

2.现有代码文件的加密技术主要是通过代码混淆工具或可执行程序资源压缩等技术手段,将代码文件按照指定格式存为二进制文件,实现代码文件的加密。但是这些加密技术在将加密后的代码文件部署到其它设备时,常常会因为设备的环境差异,存在部署不便的问题,降低了代码文件部署的效率。


技术实现要素:

3.本申请提供了一种文件处理方法、设备、系统和存储介质,通过基于虚拟环境容器将加密文件添加至基础镜像文件中,得到目标镜像文件,由于目标镜像文件集成运行时需要的虚拟运行环境,因此在部署代码文件时,就可以将代码文件部署在任意的设备中,提高了代码文件部署的效率与安全性。
4.第一方面,本申请提供了一种文件处理方法,应用于加密设备,所述方法包括:
5.获取待加密文件,以及获取基础镜像文件;
6.根据预设的加密策略,对所述待加密文件进行加密,得到加密文件;
7.基于预设的虚拟环境容器,将所述加密文件添加至所述基础镜像文件,获得对应的目标镜像文件,其中,所述目标镜像文件部署于所述虚拟环境容器对应的虚拟运行环境中。
8.第二方面,本申请提供了一种文件处理方法,应用于解密设备,所述方法包括:
9.基于目标镜像文件对应的虚拟运行环境,获取所述目标镜像文件中的至少一个待处理文件与加密文件信息列表;
10.确定所述至少一个待处理文件中的待解密文件;
11.基于所述加密文件信息列表,确定所述待解密文件对应的密钥;
12.根据所述密钥对所述待解密文件进行解密。
13.第三方面,本申请还提供了一种加密设备,所述加密设备包括存储器和处理器;
14.所述存储器,用于存储计算机程序;
15.所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述加密设备对应的文件处理方法。
16.第四方面,本申请还提供了一种解密设备,所述解密设备包括存储器和处理器;
17.所述存储器,用于存储计算机程序;
18.所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述解密设备对应的文件处理方法。
19.第五方面,本申请还提供了一种文件处理系统,所述系统包括加密设备、解密设备
以及云服务器;
20.所述云服务器用于存储所述加密设备发送的权限信息,以及用于接收所述解密设备发送的权限请求消息,并根据所述权限请求消息返回权限信息;
21.所述加密设备为如上述的加密设备;
22.所述解密设备为如上述的解密设备。
23.第六方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述加密设备对应的文件处理方法;或实现如上述解密设备对应的文件处理方法。
24.本申请公开了一种文件处理方法、设备、系统和存储介质,通过获取待加密文件,可以根据预设的加密策略,实现对待加密文件进行加密,得到加密文件;通过获取基础镜像文件,可以基于预设的虚拟环境容器,将加密文件添加至基础镜像文件,获得对应的目标镜像文件;由于目标镜像文件集成运行时需要的虚拟运行环境,因此在部署代码文件时,无需再次配置运行环境,就可以将代码文件部署在任意的设备中,提高了代码文件部署的效率与安全性。
附图说明
25.为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1是本申请实施例提供的一种文件处理系统的结构示意图;
27.图2是本申请实施例提供的一种对文件进行加密与解密的示意性流程图;
28.图3是本申请实施例提供的一种加密设备的结构示意图;
29.图4是本申请实施例提供的一种解密设备的结构示意图;
30.图5为本申请实施例提供的一种文件处理方法的示意性流程图;
31.图6是本申请实施例提供的另一种文件处理方法的示意性流程图;
32.图7是本申请实施例提供的另一种文件处理方法的示意图;
33.图8是本申请实施例提供的另一种文件处理方法的示意性流程图;
34.图9是本申请实施例提供的另一种文件处理方法的示意图;
35.图10是本申请实施例提供的另一种文件处理方法的示意性流程图;
36.图11是本申请实施例提供的另一种文件处理方法的示意图;
37.图12是本申请实施例提供的另一种文件处理方法的示意性流程图;
38.图13是本申请实施例提供的另一种文件处理方法的示意图。
具体实施方式
39.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
40.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不
是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
41.应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
42.还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
43.本申请实施例提供了一种文件处理方法、设备、系统和存储介质。其中,该文件处理方法可以应用于加密设备中,通过基于虚拟环境容器将加密文件添加至基础镜像文件中,得到目标镜像文件,由于目标镜像文件集成运行时需要的虚拟运行环境,因此在部署代码文件时,无需再次配置运行环境,就可以将代码文件部署在任意的设备中,提高了代码文件部署的效率与安全性。
44.示例性的,加密设备可以是服务器或终端。其中,服务器可以为独立的服务器,也可以为服务器集群。终端可以是智能手机、平板电脑、笔记本电脑和台式电脑等电子设备。
45.请参阅图1,图1是本申请实施例提供的一种文件处理系统的结构示意图。该文件处理系统包括加密设备10、解密设备20和云服务器30。
46.其中,云服务器30用于存储加密设备10发送的权限信息,以及用于接收解密设备20发送的权限请求消息,并根据权限请求消息向解密设备20返回权限信息。
47.示例性的,加密设备10与解密设备20可以通过有线/无线的通信方式进行通信连接。例如,解密设备20可以在与加密设备10建立有线/无线的通信连接后,下载加密设备10中的目标镜像文件。
48.此外,解密设备20还可以基于外部存储器的拷贝方式获取加密设备10中的目标镜像文件。其中,外部存储器可以包括但不限于移动硬盘、ukey设备以及usb闪存盘等等,此处不做唯一限定。
49.示例性的,加密设备10与解密设备20可以在同一设备中,也可以在不同的设备中。
50.请参阅图2,图2是本申请实施例提供的一种对文件进行加密与解密的示意性流程图。如图2所示,加密设备10可以获取源码文件,并确定源码文件对应的文件格式,对源码文件的文件读写接口信息进行修改并进行编译,得到基础镜像文件。加密设备10还可以根据密钥对代码文件进行加密,得到加密文件;然后基于预设的虚拟环境容器,将加密文件添加至基础镜像文件,获得对应的目标镜像文件。此外,加密设备10还可以将密钥存储至云服务器30。解密设备20可以从加密设备10中下载目标镜像文件,并运行目标镜像文件,获得至少一个待处理文件;然后判断待处理文件是否为待解密文件。当判定待处理文件不是待解密文件时,直接执行待处理文件;当判定待处理文件是待解密文件时,需要获取待解密文件的授权信息,其中,授权信息用于对待解密文件进行解密。例如,可以发送授权请求消息至云服务器30中,以使云服务器30根据授权请求消息返回授权信息,并根据授权信息对待解密文件进行授权。当授权信息获取失败或授权失败时,可以读取本地的授权信息,例如读取本地数据库存储的授权信息;若失败或授权失败,则退出本次流程。在对待解密文件成功授权之后,可以根据密钥对加密文件信息列表进行解密,得到文件信息列表,并验证待解密文件的哈希值。若待解密文件的哈希值与文件信息列表中的哈希值一致,则根据密钥对待解密
文件进行解密,并执行解密后的代码文件;若待解密文件的哈希值与文件信息列表中的哈希值不一致,则退出本次流程。
51.在代码文件部署场景中,用户可以先将源码文件复制或上传至加密设备10,在加密设备10中根据自定义的文件格式,对源码文件的文件读写接口信息进行修改并进行编译,得到基础镜像文件。然后通过加密设备10根据密钥对代码文件进行加密,得到加密文件;最后基于预设的虚拟环境容器,将加密文件添加至基础镜像文件,获得对应的目标镜像文件。用户还可以通过加密设备10将密钥存储至云服务器30。在得到目标镜像文件之后,用户可以将待部署代码文件的终端确定为解密设备20,通过解密设备20下载加密设备10中的目标镜像文件,并运行目标镜像文件,获得至少一个待处理文件;然后判断待处理文件是否为待解密文件。当判定待处理文件不是待解密文件时,直接执行待处理文件;当判定待处理文件是待解密文件时,需要获取待解密文件的授权信息。例如,用户可以通过解密设备20发送授权请求消息至云服务器中30,以使云服务器30根据授权请求消息返回授权信息,并根据授权信息对待解密文件进行授权。当授权信息获取失败或授权失败时,用户可以通过解密设备20读取本地的授权信息,例如读取本地数据库存储的授权信息;若失败或授权失败,则退出本次代码文件部署流程。在对待解密文件成功授权之后,用户可以根据密钥对加密文件信息列表进行解密,得到文件信息列表,并验证待解密文件的哈希值。若待解密文件的哈希值与文件信息列表中的哈希值一致,用户则根据密钥对待解密文件进行解密,并执行解密后的代码文件,实现将代码文件部署在解密设备20中;若待解密文件的哈希值与文件信息列表中的哈希值不一致,则退出本次代码文件部署流程。
52.请参阅图3,图3是本申请实施例提供的一种加密设备10的结构示意图。加密设备10可以包括处理器11和存储器12,其中,所述处理器11和所述存储器12可以通过总线连接,该总线比如为i2c(inter

integrated circuit)总线等任意适用的总线。
53.其中,所述存储器12可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得所述处理器11执行加密设备10对应的文件处理方法。
54.其中,所述处理器11用于提供计算和控制能力,支撑整个加密设备10的运行。
55.其中,所述处理器11可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
56.其中,在一个实施例中,所述处理器11用于运行存储在存储器12中的计算机程序,以实现如下步骤:
57.获取待加密文件,以及获取基础镜像文件;根据预设的加密策略,对所述待加密文件进行加密,得到加密文件;基于预设的虚拟环境容器,将所述加密文件添加至所述基础镜像文件,获得对应的目标镜像文件,其中,所述目标镜像文件部署于所述虚拟环境容器对应的虚拟运行环境中。
58.在一个实施例中,所述处理器11在实现根据预设的加密策略,对所述待加密文件
进行加密,得到加密文件时,用于实现:
59.确定所述待加密文件对应的第一哈希值,以及确定当前的时间戳;根据所述第一哈希值与所述时间戳,确定所述待加密文件对应的密码信息;生成所述密码信息对应的密钥,根据所述密钥对所述待加密文件进行加密,得到所述加密文件。
60.在一个实施例中,所述处理器11在实现根据预设的加密策略,对所述待加密文件进行加密,得到加密文件之后,还用于实现:
61.确定所述加密文件对应的第二哈希值;将所述加密文件与所述第二哈希值关联存储至预设的文件信息列表;根据所述加密文件对应的密钥对所述文件信息列表进行加密,得到对应的加密文件信息列表。
62.在一个实施例中,所述处理器11还用于实现:
63.确定所述加密文件信息列表对应的识别码;根据所述密钥、所述第二哈希值以及所述识别码,确定所述加密文件信息列表的授权信息;将所述授权信息存储至云服务器,以及将所述授权信息存储至本地数据库和/或外部存储器。
64.在一个实施例中,所述处理器11还用于实现:
65.将所述加密文件信息列表添加至所述目标镜像文件,以及将所述虚拟环境容器运行所需的配置文件添加至所述目标镜像文件。
66.在一个实施例中,所述处理器11在实现获取基础镜像文件时,用于实现:
67.获取源码文件,并确定所述源码文件对应的文件格式;根据所述文件格式,对所述源码文件的文件读写接口信息进行修改,得到修改后的所述源码文件;对修改后的所述源码文件进行编译,得到所述基础镜像文件。
68.请参阅图4,图4是本申请实施例提供的一种解密设备20的结构示意图。解密设备20可以包括处理器21和存储器22,其中,所述处理器21和所述存储器22可以通过总线连接,该总线比如为i2c(inter

integrated circuit)总线等任意适用的总线。
69.其中,所述存储器22可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得所述处理器21执行解密设备20对应的文件处理方法。
70.其中,所述处理器21用于提供计算和控制能力,支撑整个解密设备20的运行。
71.其中,所述处理器21可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
72.其中,在一个实施例中,所述处理器21用于运行存储在存储器22中的计算机程序,以实现如下步骤:
73.基于目标镜像文件对应的虚拟运行环境,获取所述目标镜像文件中的至少一个待处理文件与加密文件信息列表;确定所述至少一个待处理文件中的待解密文件;基于所述加密文件信息列表,确定所述待解密文件对应的密钥;根据所述密钥对所述待解密文件进行解密。
74.在一个实施例中,所述处理器21在实现确定所述至少一个待处理文件中的待解密文件时,用于实现:
75.获取每个所述待处理文件的文件头信息或文件尾信息;若当前的待处理文件的所述文件头信息或所述文件尾信息为预设的字段,则确定所述当前的待处理文件为所述待解密文件。
76.在一个实施例中,所述处理器21在实现基于所述加密文件信息列表,确定所述待解密文件对应的密钥时,用于实现:
77.确定所述加密文件信息列表对应的识别码;根据所述识别码获取所述加密文件信息列表对应的授权信息;对所述授权信息进行解析,得到所述密钥。
78.在一个实施例中,所述处理器21在实现根据所述识别码获取所述加密文件信息列表对应的授权信息时,用于实现:
79.若与云服务器建立网络连接,则根据所述识别码从所述云服务器获取所述授权信息;若与云服务器未建立网络连接,则根据所述识别码从本地数据库或外部存储器获取所述授权信息。
80.在一个实施例中,所述处理器21在实现根据所述识别码从所述云服务器获取所述授权信息时,用于实现:
81.向所述云服务器发送包含所述识别码的授权请求消息;接收所述云服务器根据所述授权请求消息返回的所述识别码对应的所述授权信息。
82.在一个实施例中,所述处理器21在实现向所述云服务器发送包含所述识别码的授权请求消息之后,还用于实现:
83.若未接收到所述云服务器根据所述授权请求消息返回的所述识别码对应的所述授权信息,则根据所述识别码从所述本地数据库或所述外部存储器获取所述授权信息。
84.在一个实施例中,所述处理器21在实现根据所述密钥对所述待解密文件进行解密之前,用于实现:
85.根据所述密钥对所述加密文件信息列表进行解密,得到解密后的文件信息列表;确定所述文件信息列表中是否存在所述待解密文件。
86.在一个实施例中,所述处理器21在实现根据所述密钥对所述待解密文件进行解密时,用于实现:
87.若所述文件信息列表中存在所述待解密文件,则根据所述密钥对所述待解密文件进行解密。
88.在一个实施例中,所述处理器21在实现确定所述文件信息列表中是否存在所述待解密文件时,用于实现:
89.确定所述待解密文件对应的第三哈希值;若所述文件信息列表中存在第二哈希值与所述第三哈希值相同,则确定所述文件信息列表中存在所述待解密文件;若所述文件信息列表中不存在第二哈希值与所述第三哈希值相同,则确定所述文件信息列表中不存在所述待解密文件。
90.下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
91.请参阅图5,图5为本申请实施例提供的一种文件处理方法的示意性流程图。该文
件处理方法可以应用于加密设备中,通过基于虚拟环境容器将加密文件添加至基础镜像文件中,得到目标镜像文件,由于目标镜像文件集成运行时需要的虚拟运行环境,因此在部署代码文件时,无需再次配置运行环境,就可以将代码文件部署在任意的设备中,提高了代码文件部署的效率与安全性。如图5所示,文件处理方法包括步骤s101至步骤s103。
92.步骤s101、获取待加密文件,以及获取基础镜像文件。
93.需要说明的是,待加密文件可以是代码文件。例如,用户修改的、编写的代码文件。
94.示例性的,可以将用户编写好的代码文件,确定为待加密文件;也可以将用户上传或选中的代码文件,确定为待加密文件。在本申请实施例中,通过获取待加密文件以及获取基础镜像文件,后续可以对待加密文件进行加密后添加至基础镜像文件,从而得到目标镜像文件。
95.在一些实施例中,获取基础镜像文件,可以包括:获取源码文件,并确定源码文件对应的文件格式;根据文件格式,对源码文件的文件读写接口信息进行修改,得到修改后的源码文件;对修改后的源码文件进行编译,得到基础镜像文件。
96.示例性的,源码文件可以是采用python语言编写的文件,当然也可以是采用其它类型语言编写的文件,例如,java语言、basic语言等等,此处不做唯一限定。
97.需要说明的是,源码文件对应的文件格式用于表示生成的基础镜像文件可读写的文件对应的格式类型。源码文件对应的文件格式,可以由用户预先自定义或配置,例如,可以将文件格式配置为“.pye”格式类型,当然也可以是其它格式类型,此处不做唯一限定。
98.在本申请实施例中,可以根据文件格式,对源码文件的文件读写接口信息进行修改,得到修改后的源码文件。例如,将对源码文件的文件读写接口信息修改为可以读写文件格式,具体的修改内容在此不作限定。可以理解的是,对文件读写接口信息进行修改,相当于修改了文件读写接口。
99.在本申请实施例中,在得到修改后的源码文件之后,可以通过编译器或编译工具对修改后的源码文件进行编译,打包生成基础镜像文件。
100.通过根据自定义的文件格式,对源码文件的文件读写接口信息进行修改,使得基础镜像文件可以识别、存储自定义的文件格式对应的文件,不需要关心文件是如何解密与加密,只需调用文件读写接口将需要解密的文件或加密的文件通过参数传递,从而可以便捷地读写自定义的文件格式对应的加密或解密的文件。
101.步骤s102、根据预设的加密策略,对所述待加密文件进行加密,得到加密文件。
102.示例性的,预设的加密策略包括生成待加密文件的密码信息,然后根据密码信息生成密钥,进而根据密钥对待加密文件进行加密。
103.请参阅图6,图6是本申请实施例提供的另一种文件处理方法的示意性流程图,该图描述了一种对待加密文件进行加密的子步骤,具体可以包括以下步骤s1021至步骤s1023。
104.步骤s1021、确定所述待加密文件对应的第一哈希值,以及确定当前的时间戳。
105.示例性的,可以根据消息摘要算法或哈希算法,计算出待加密文件对应的第一哈希值。
106.需要说明的是,消息摘要算法(message

digest algorithm)用于将一个字符串或一个文件按照一定的规则生成128位的哈希值。消息摘要算法可以包括但不限于md2算法、
加密文件bh2

2加密文件ch2
‑3124.在表1中,预设的文件信息列表可以包括多个加密文件与各加密文件对应的第二哈希值。例如,加密文件a与加密文件a对应的第二哈希值h2

1。
125.在本申请实施例中,预设的文件信息列表可以是用户预先封装好的类或函数,具有识别、检测以及计算等功能。该文件信息列表还可以存储加密文件的相关信息,例如,加密文件对应的哈希值,用于判断执行的加密文件是否为用户加密的文件,防止外部代码、程序非法调用加密文件。
126.通过将加密文件与第二哈希值关联存储至文件信息列表,后续解密时可以根据文件信息列表判断待解密文件是否存在文件信息列表中,防止待解密文件被篡改。
127.步骤s1026、根据所述加密文件对应的密钥对所述文件信息列表进行加密,得到对应的加密文件信息列表。
128.示例性的,可以通过aes算法,根据加密文件对应的密钥对文件信息列表进行加密,得到对应的加密文件信息列表。
129.需要说明的是,通过对根据加密文件对应的密钥对文件信息列表进行加密,可以保证文件信息列表的安全,进一步提高加密文件的安全性。
130.步骤s103、基于预设的虚拟环境容器,将所述加密文件添加至所述基础镜像文件,获得对应的目标镜像文件,其中,所述目标镜像文件部署于所述虚拟环境容器对应的虚拟运行环境中。
131.示例性的,预设的虚拟环境容器可以包括docker应用容器引擎与vagrant工具,还可以是其它容器,此处不作唯一限定。
132.需要说明的是,docker是一个开源的应用容器引擎,基于go语言并遵从apache2.0协议开源。docker应用容器引擎可以用于将应用以及依赖包打包到一个轻量级、可移植的容器中,然后发布到任一linux机器上,也可以实现虚拟化。vagrant工具是一种用于创建和部署虚拟化开发环境的工具。
133.在本申请实施例中,将以虚拟环境容器为docker应用容器引擎为例进行详细说明。
134.请参阅图9,图9是本申请实施例提供的另一种文件处理方法的示意图,该图描述了将加密文件添加至基础镜像文件的过程。如图9所示,可以基于docker应用容器引擎,将加密文件添加至基础镜像文件,获得对应的目标镜像文件。
135.通过在虚拟环境容器中实现将加密文件添加至基础镜像文件的操作,获得的目标镜像文件为可发布镜像文件,从而目标镜像文件可以部署于虚拟环境容器对应的虚拟运行环境中,进而提高了代码文件部署的效率与灵活性。可以理解的是,由于目标镜像文件包含加密的代码文件,因此部署目标镜像文件,即部署代码文件。
136.在一些实施例中,在得到对应的加密文件信息列表之后,还可以包括:确定加密文件信息列表对应的识别码;根据密钥、第二哈希值以及识别码,确定加密文件信息列表的授权信息;将授权信息存储至云服务器,以及将授权信息存储至本地数据库和/或外部存储器。
137.示例性的,可以根据消息摘要算法或哈希算法,计算加密文件信息列表的哈希值,
将得到的哈希值确定为加密文件信息列表对应的识别码。
138.在本申请实施例中,可以将密钥、第二哈希值以及识别码,确定为加密文件信息列表的授权信息。从而在读取目标镜像文件中的加密文件信息列表时,可以根据授权信息获取相应的权限,提高了文件的安全性。其中,识别码用于确定加密文件信息列表对应的授权信息;密钥用于对加密文件信息列表进行解密以及对加密文件信息列表中的加密文件进行解密;第二哈希值用于验证加密文件信息列表中是否存在需要解密的加密文件。
139.通过根据密钥、第二哈希值以及识别码,确定加密文件信息列表的授权信息,后续在读取目标镜像文件中的加密文件信息列表时,需要根据授权信息获取相应的权限,从而提高了文件的安全性。
140.在一些实施例中,在得到对应的加密文件信息列表之后,还可以包括:将加密文件信息列表添加至目标镜像文件,以及将虚拟环境容器运行所需的配置文件添加至目标镜像文件。
141.示例性的,可以根据docker应用容器引擎运行所需的配置信息生成配置文件;然后将配置文件添加至目标镜像文件中。
142.可以理解的是,将配置文件添加中目标镜像文件中,可以使得目标镜像文件在虚拟环境容器下运行,无需再次配置运行环境。
143.在本申请实施例中,还可以将没加密的代码文件添加至目标镜像文件中。
144.通过将虚拟环境容器运行所需的配置文件添加至目标镜像文件,使得目标镜像文件集成了运行时所需的虚拟运行环境,进而可以将目标镜像文件下载或部署到任意的设备中,提高了代码文件部署的效率。
145.在一些实施例中,在得到加密文件信息列表的授权信息之后,为了保证授权信息的安全,可以将授权信息存储至云服务器。当解密设备在对加密文件信息列表进行解密时,可以向云服务器请求授权信息,以根据授权信息中的密钥对加密文件信息列表进行解密。
146.示例性的,加密设备可以将授权信息发送至云服务器,云服务器将授权信息存储在本地数据库中。
147.示例性的,加密设备还可以将目标镜像文件的属性信息发送至云服务器,以使云服务器将属性信息与授权信息关联存储。其中,属性信息可以包括目标镜像文件的镜像名称、版本号以及授权到期时间等等,此处不做唯一限定。
148.通过将授权信息存储至云服务器,后续在读取目标镜像文件中的加密文件信息列表时,需要向云服务器请求授权信息并进行验证,从而提高了文件的安全性。
149.在一些实施例中,除了将授权信息存储至云服务器,还可以将授权信息存储至本地数据库和/或外部存储器。此外,还可以将授权信息添加到目标镜像文件中。
150.需要说明的是,为避免解密设备因无法与云服务器建立网络连接而导致未能向云服务器请求授权信息的情况出现,可以将授权信息存储至本地数据库和/或外部存储器,可以更加便捷地获得授权信息。
151.示例性的,外部存储器可以包括但不限于移动硬盘、ukey设备以及usb闪存盘等等,此处不做唯一限定。其中,ukey是一种通过usb(通用串行总线接口)接与计算机相连,具有密码验证功能、可靠高速的小型存储设备。
152.通过将授权信息存储至本地数据库和/或外部存储器,可以在云服务器网络异常
时,也可以方便地获得授权信息。
153.上述实施例提供的文件处理方法,通过获取待加密文件以及获取基础镜像文件,后续可以对待加密文件进行加密后添加至基础镜像文件,从而得到目标镜像文件;通过根据自定义的文件格式,对源码文件的文件读写接口信息进行修改,使得基础镜像文件可以识别、存储自定义的文件格式对应的文件,不需要关心文件是如何解密与加密,只需调用文件读写接口将需要解密的文件或加密的文件通过参数传递,从而可以便捷地读写自定义的文件格式对应的加密或解密的文件;通过根据第一哈希值与时间戳,确定待加密文件对应的密码信息,进而可以根据密码信息生成密钥,实现对待加密文件进行加密,提高了文件的安全性;通过将加密文件与第二哈希值关联存储至文件信息列表,后续解密时可以根据文件信息列表判断待解密文件是否存在文件信息列表中,防止待解密文件被篡改;通过对根据加密文件对应的密钥对文件信息列表进行加密,可以保证文件信息列表的安全,进一步提高加密文件的安全性;通过在虚拟环境容器中实现将加密文件添加至基础镜像文件的操作,获得的目标镜像文件为可发布镜像文件,从而目标镜像文件可以部署于虚拟环境容器对应的虚拟运行环境中,进而提高了代码文件部署的效率与灵活性;通过根据密钥、第二哈希值以及识别码,确定加密文件信息列表的授权信息,后续在读取目标镜像文件中的加密文件信息列表时,需要根据授权信息获取相应的权限,从而提高了文件的安全性;通过将虚拟环境容器运行所需的配置文件添加至目标镜像文件,使得目标镜像文件集成了运行时需要的虚拟运行环境,进而可以将目标镜像文件下载或部署到任意的设备中,提高了部署的效率;通过将授权信息存储至本地数据库和/或外部存储器,可以在云服务器网络异常时,也可以方便地获得授权信息。
154.请参阅图10,图10是本申请实施例提供的另一种文件处理方法的示意性流程图。该文件处理方法可以应用于解密设备中,通过基于目标镜像文件对应的虚拟运行环境运行目标镜像文件,由于目标镜像文件集成运行时需要的虚拟运行环境,因此无需再次配置运行环境,可以方便地将代码文件部署到任意设备中并进行解密,提高了代码文件部署的效率与安全性。
155.示例性的,解密设备可以是服务器或终端。其中,服务器可以为独立的服务器,也可以为服务器集群。终端可以是智能手机、平板电脑、笔记本电脑和台式电脑等电子设备。
156.该文件处理方法包括步骤s201至步骤s204。
157.步骤s201、基于目标镜像文件对应的虚拟运行环境,获取所述目标镜像文件中的至少一个待处理文件与加密文件信息列表。
158.需要说明的是,在本申请实施例中,通过基于目标镜像文件对应的虚拟运行环境运行目标镜像文件,由于目标镜像文件集成运行时需要的虚拟运行环境,因此无需再次配置运行环境,可以方便地将目标镜像文件部署到任意设备中并对目标镜像文件中的代码文件进行解密,提高了代码文件部署的效率与安全性。
159.示例性的,解密设备可以从加密设备中下载目标镜像文件,并启动目标镜像文件,使得目标镜像文件根据配置文件建立虚拟运行环境并在虚拟运行环境中运行。可以理解的是,根据配置文件建立虚拟运行环境,相当于目标镜像文件运行在虚拟环境容器中,从而无需再次配置目标镜像文件的运行环境,就可以将代码文件部署在任意的设备中,提高了代码文件部署的灵活性与效率。
160.其中,虚拟运行环境可以是docker应用容器引擎或vagrant工具对应的运行环境。
161.需要说明的是,目标镜像文件可以包括但不限于加密文件、未加密文件、加密文件信息列表、配置文件以及授权信息等等。
162.请参阅图11,图11是本申请实施例提供的另一种文件处理方法的示意图,该图描述了获取待处理文件与加密文件信息列表的过程。示例性的,基于docker应用容器引擎对应的虚拟运行环境,提取目标镜像文件中的至少一个待处理文件以及加密文件信息列表。
163.通过基于目标镜像文件对应的虚拟运行环境,获取目标镜像文件中的至少一个待处理文件与加密文件信息列表,进而可以根据待处理文件确定待解密文件以及根据加密文件信息列表对待解密文件进行解密。
164.步骤s202、确定所述至少一个待处理文件中的待解密文件。
165.需要说明的是,待处理文件是指需要执行的代码文件。其中,待处理文件可以包括加密的代码文件与未加密的代码文件。若待处理文件为加密的代码文件,则需要对待处理文件进行解密。
166.在一些实施例中,确定至少一个待处理文件中的待解密文件,可以包括:获取每个待处理文件的文件头信息或文件尾信息;若当前的待处理文件的文件头信息或文件尾信息为预设的字段,则确定当前的待处理文件为待解密文件。
167.需要说明的是,预设的字段是指加密设备对加密文件添加的字段。示例性的,加密设备可以对加密文件的文件开头或文件末尾添加预设长度的字段;例如,添加“89 50 4e 47 0d 0a 1a 0a”等字段。
168.示例性的,文件头信息与文件尾信息可以包括多个字段。可以读取每个待处理文件的文件头信息或文件尾信息;若当前的待处理文件的文件头信息或文件尾信息包含的字段为预设的字段,则确定当前的待处理文件为待解密文件;若当前的待处理文件的文件头信息或文件尾信息包含的字段不是预设的字段,则确定当前的待处理文件为非待解密文件。
169.通过根据待处理文件的文件头信息或文件尾信息,可以准确、便捷地确定待解密文件,进而提高了文件解密的效率。
170.步骤s203、基于所述加密文件信息列表,确定所述待解密文件对应的密钥。
171.请参阅图12,图12是本申请实施例提供的另一种文件处理方法的示意性流程图,该图是步骤s203中基于加密文件信息列表,确定待解密文件的密钥的子步骤的流程图,具体步骤s203可以包括以下步骤s2031至步骤s2033。
172.步骤s2031、确定所述加密文件信息列表对应的识别码。
173.示例性的,可以根据消息摘要算法或哈希算法,计算加密文件信息列表的哈希值,将得到的哈希值确定为加密文件信息列表对应的识别码。
174.可以理解的是,由于加密文件信息列表在添加至目标镜像文件之后,并未发生变化或被修改,因此当前计算得到识别码与加密文件信息列表在添加至目标镜像文件之前计算得到的识别码是一致的。从而可以根据加密文件信息列表对应的识别码查询加密文件信息列表对应的授权信息。
175.步骤s2032、根据所述识别码获取所述加密文件信息列表对应的授权信息。
176.需要说明的是,由于加密设备在确定加密文件信息列表的授权信息后,将授权信
息存储至云服务器,以及将授权信息存储至本地数据库和/或外部存储器,因此解密设备可以通过不同的获取方式,根据识别码获取加密文件信息列表对应的授权信息。
177.在一些实施例中,若与云服务器建立网络连接,则根据识别码从云服务器获取授权信息。
178.需要说明的是,在本申请实施例中,在解密设备与云服务器建立网络连接时,解密设备可以优先根据识别码从云服务器获取授权信息。
179.在另一些实施例中,若与云服务器未建立网络连接,则根据识别码从本地数据库或外部存储器获取授权信息。
180.示例性的,当网络出现异常时,解密设备无法与云服务器建立网络连接;此时,解密设备可以根据识别码从本地数据库或外部存储器获取授权信息。例如,可以根据识别码在本地数据库或外部存储器查询与该识别码对应的授权信息。需要说明的是,由于授权信息中包含加密文件信息列表对应的识别码,因此可以通过判断两个识别码是否一致,进而获得加密文件信息列表对应的授权信息。
181.通过根据加密文件信息列表对应的识别码获取加密文件信息列表对应的授权信息,进而可以通过授权信息获得密钥。
182.在一些实施方式中,当根据识别码从云服务器获取授权信息时,可以向云服务器发送包含识别码的授权请求消息;接收云服务器根据授权请求消息返回的识别码对应的授权信息。
183.在一些实施例中,向云服务器发送包含识别码的授权请求消息之后,还可以包括:若未接收到云服务器根据授权请求消息返回的识别码对应的授权信息,则根据识别码从本地数据库或外部存储器获取授权信息。
184.示例性的,在向云服务器发送包含识别码的授权请求消息之后,若未在预设时长内接收到云服务器根据授权请求消息返回的识别码对应的授权信息,则根据识别码从本地数据库或外部存储器获取授权信息。其中,预设时长可以根据实际情况设定,具体时长在此不作限定。
185.步骤s2033、对所述授权信息进行解析,得到所述密钥。
186.示例性的,可以通过解析函数或解析工具对授权信息进行解析,得到json格式或xml格式的数据,然后从解析得到的数据中获得密钥。具体的解析方式在此不作限定。
187.步骤s204、根据所述密钥对所述待解密文件进行解密。
188.在一些实施例中,根据密钥对待解密文件进行解密之前,还可以包括:根据密钥对加密文件信息列表进行解密,得到解密后的文件信息列表;确定文件信息列表中是否存在待解密文件。
189.需要说明的是,由于加密文件信息列表中包含加密文件与加密文件对应的第二哈希值,为避免待解密文件被非法篡改,因此需要根据加密文件信息列表中的第二哈希值验证待解密文件是否与加密文件信息列表中的加密文件一致。
190.示例性的,可以采用aes算法中的函数aes_ecb_encrypt或函数aes_cbc_encrypt,根据密钥对加密文件信息列表进行解密,得到解密后的文件信息列表。
191.在一些实施方式中,确定文件信息列表中是否存在待解密文件,可以包括:确定待解密文件对应的第三哈希值;若文件信息列表中存在第二哈希值与第三哈希值相同,则确
定文件信息列表中存在待解密文件;若文件信息列表中不存在第二哈希值与第三哈希值相同,则确定文件信息列表中不存在待解密文件。
192.示例性的,可以根据消息摘要算法或哈希算法,计算出待待解密文件对应的第三哈希值。其中,第三哈希值可以表示为h3。
193.示例性的,若文件信息列表中存在第二哈希值h2与第三哈希值h3相同,则确定文件信息列表中存在待解密文件。此时,可以确定待解密文件未被非法篡改。
194.示例性的,若文件信息列表中存在第二哈希值h2与第三哈希值h3不相同,则确定文件信息列表中不存在待解密文件。此时,可以确定待解密文件可能被非法篡改。
195.通过确定文件信息列表中是否存在待解密文件,可以判断待解密文件是否被非法篡改,提高了代码文件的安全性。
196.在一些实施例中,若文件信息列表中存在待解密文件,则根据密钥对待解密文件进行解密。
197.请参阅图13,图13是本申请实施例提供的另一种文件处理方法的示意图,该图描述了根据密钥对待解密文件进行解密的过程。示例性的,可以采用aes算法中的函数aes_ecb_encrypt或函数aes_cbc_encrypt,根据根据密钥对待解密文件进行解密,得到解密后的代码文件。
198.示例性的,在得到解密后的代码文件时,可以执行代码文件。
199.在另一些实施例中,若文件信息列表中不存在待解密文件,则不对待解密文件进行解密。在本申请实施例中,还可以将文件信息列表中不存在的待解密文件删除。
200.上述实施例提供的文件处理方法,通过基于目标镜像文件对应的虚拟运行环境运行目标镜像文件,由于目标镜像文件集成运行时需要的虚拟运行环境,因此无需再次配置运行环境,可以方便地将代码文件部署到任意设备中并对代码文件进行解密,提高了代码文件部署的效率与安全性;通过基于目标镜像文件对应的虚拟运行环境,获取目标镜像文件中的至少一个待处理文件与加密文件信息列表,进而可以根据待处理文件确定待解密文件以及根据加密文件信息列表对待解密文件进行解密;通过根据待处理文件的文件头信息或文件尾信息,可以准确、便捷地确定待解密文件,进而提高了解密的效率;通过根据加密文件信息列表对应的识别码获取加密文件信息列表对应的授权信息,进而可以通过授权信息获得密钥;通过确定文件信息列表中是否存在待解密文件,可以判断待解密文件是否被非法篡改,提高了代码文件的安全性。
201.本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项文件处理方法。
202.例如,该程序被处理器加载,可以执行如下步骤:
203.获取待加密文件,以及获取基础镜像文件;根据预设的加密策略,对所述待加密文件进行加密,得到加密文件;基于预设的虚拟环境容器,将所述加密文件添加至所述基础镜像文件,获得对应的目标镜像文件,其中,所述目标镜像文件部署于所述虚拟环境容器对应的虚拟运行环境中。
204.又例如,该程序被处理器加载,可以执行如下步骤:
205.基于目标镜像文件对应的虚拟运行环境,获取所述目标镜像文件中的至少一个待
处理文件与加密文件信息列表;确定所述至少一个待处理文件中的待解密文件;基于所述加密文件信息列表,确定所述待解密文件对应的密钥;根据所述密钥对所述待解密文件进行解密。
206.其中,所述计算机可读存储介质可以是前述实施例所述的加密设备或解密设备的内部存储单元,例如所述加密设备或所述解密设备的硬盘或内存。所述计算机可读存储介质也可以是所述加密设备或所述解密设备的外部存储设备,例如所述加密设备或所述解密设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字卡(secure digital card,sd card),闪存卡(flash card)等。
207.以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1