一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据文件加密方法、装置、计算设备及存储介质与流程

2023-02-01 14:53:21 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,具体涉及一种数据文件加密方法、装置、计算设备及存储介质。


背景技术:

2.为了确保文件上传到分布式存储系统后数据没有错误或者被篡改,通常需要经过加密算法对文件进行加密。目前,业内通常采取存算分离的方式进行数据加密,存算分离是指存储节点和计算节点相互独立,存储节点专用于存储数据,计算节点专用于加密计算,因此首先需要从存储系统中拉取数据,再通过存储系统的网关发送到计算节点上,由计算节点对拉取的数据进行加密,存算分离方式的优点是业务解耦。但是,存算分离的方式还存在许多不足,包括加密处理效率较低、网络带宽资源消耗大、数据节点的吞吐加重等问题。


技术实现要素:

3.本技术实施例的目的是提供一种数据文件加密方法、装置、计算设备及存储介质,以解决上述存算分离的方式所导致的加密处理效率低、网络带宽消耗大、数据节点的吞吐量加重等问题。
4.根据本技术的一个方面,提供了一种数据文件加密方法,包括:
5.接收数据文件的文件上传请求,将数据文件的多个数据分片分别存入分布式存储系统中的多个数据节点中;
6.获取数据文件的任一数据分片所存入的数据节点的负载信息;
7.根据该数据分片所存入的数据节点的负载信息,确定执行加密处理的对象;
8.若确定执行加密处理的对象为该数据分片所存入的数据节点,控制数据节点对该数据分片进行加密处理。
9.可选地,在确定执行加密处理的对象之后,方法进一步包括:
10.若确定执行加密处理的对象为计算节点,控制计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
11.可选地,接收数据文件的文件上传请求之前,方法还包括:
12.接收通过断点续传的方式所上传的数据文件的多个数据分片;
13.其中,多个数据分片是按照第一预定大小对数据文件分割而生成。
14.可选地,负载信息包括:cpu负载信息和/或磁盘负载信息;
15.根据该数据分片所存入的数据节点的负载信息,确定执行加密处理的对象进一步包括:
16.在该数据分片所存入的数据节点的cpu负载信息低于第一预设值和/或磁盘负载信息低于第二预设值的情况下,确定执行加密处理的对象为数据节点;
17.在该数据分片所存入的数据节点的cpu负载信息高于第一预设值和/或磁盘负载信息高于第二预设值的情况下,确定执行加密处理的对象为计算节点。
18.可选地,控制数据节点对该数据分片进行加密处理进一步包括:
19.创建第一计算任务,将第一计算任务发送给数据节点,以供数据节点运行第一计算任务;其中,第一计算任务用于对该数据分片进行加密处理。
20.可选地,控制计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理进一步包括:
21.创建第二计算任务,将第二计算任务发送给计算节点,以供计算节点运行第二计算任务;其中,第二计算任务用于从数据节点读取该数据分片并加载到计算节点本地并对该数据分片进行加密处理。
22.可选地,对该数据分片进行加密处理进一步包括:
23.根据该数据分片的数据以及该数据分片的前一数据分片的加密处理结果进行加密处理,得到该数据分片的加密处理结果;
24.其中,若该数据分片为数据文件中的第1个数据分片,该数据分片的前一数据分片的加密处理结果为预设加密处理结果。
25.可选地,若该数据分片为数据文件中的第1个数据分片,根据该数据分片的数据以及该数据分片的前一数据分片的加密处理结果进行加密处理,得到该数据分片的加密处理结果进一步包括:
26.若该数据分片的数据的大小是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组;若该数据分片的数据的大小不是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组和尾部数据;
27.根据多个分组以及预设加密处理结果进行加密运算,得到散列中间结果。
28.可选地,若该数据分片为除了第1个数据分片之外的其他任一数据分片,根据该数据分片的数据以及该数据分片的前一数据分片的加密处理结果进行加密处理进一步包括:
29.在前一数据分片的加密处理结果包括散列中间结果以及尾部数据的情况下,将前一数据分片对应的尾部数据与该数据分片的数据进行拼接;根据拼接得到的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果;
30.在前一数据分片的加密处理结果包括散列中间结果但不包括尾部数据的情况下,根据该数据分片的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果。
31.可选地,方法还包括:
32.提取数据文件的最后一个数据分片的加密处理结果中包含的散列中间结果,将提取的散列中间结果保存为数据文件的加密处理结果。
33.可选地,在确定执行加密处理的对象为计算节点之后,方法还包括:
34.根据计算节点集群中各个计算节点的负载信息,从计算节点集群中筛选出目标计算节点;
35.控制计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理进一步包括:
36.控制目标计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
37.根据本技术的另一方面,提供了一种数据文件加密装置,包括:
38.获取模块,适于接收数据文件的文件上传请求,将数据文件的多个数据分片分别存入分布式存储系统中的多个数据节点中;
39.决策模块,适于获取数据文件的任一数据分片所存入的数据节点的负载信息;根据该数据分片所存入的数据节点的负载信息,确定执行加密处理的对象;
40.处理模块,适于若确定执行加密处理的对象为该数据分片所存入的数据节点,控制数据节点对该数据分片进行加密处理。
41.可选地,处理模块进一步适于:若确定执行加密处理的对象为计算节点,控制计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
42.可选地,装置还包括:文件接收模块,适于接收通过断点续传的方式所上传的数据文件的多个数据分片;其中,多个数据分片是按照第一预定大小对数据文件分割而生成。
43.可选地,负载信息包括:cpu负载信息和/或磁盘负载信息;决策模块进一步适于:
44.在该数据分片所存入的数据节点的cpu负载信息低于第一预设值和/或磁盘负载信息低于第二预设值的情况下,确定执行加密处理的对象为数据节点;在该数据分片所存入的数据节点的cpu负载信息高于第一预设值和/或磁盘负载信息高于第二预设值的情况下,确定执行加密处理的对象为计算节点。
45.可选地,处理模块进一步适于:创建第一计算任务,将第一计算任务发送给数据节点,以供数据节点运行第一计算任务;其中,第一计算任务用于对该数据分片进行加密处理。
46.可选地,处理模块进一步适于:创建第二计算任务,将第二计算任务发送给计算节点,以供计算节点运行第二计算任务;其中,第二计算任务用于从数据节点读取该数据分片并加载到计算节点本地并对该数据分片进行加密处理。
47.可选地,对该数据分片进行加密处理具体包括如下步骤:根据该数据分片的数据以及该数据分片的前一数据分片的加密处理结果进行加密处理,得到该数据分片的加密处理结果;其中,若该数据分片为数据文件中的第1个数据分片,该数据分片的前一数据分片的加密处理结果为预设加密处理结果。
48.可选地,若该数据分片为数据文件中的第1个数据分片,若该数据分片的数据的大小是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组;若该数据分片的数据的大小不是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组和尾部数据;根据多个分组以及预设加密处理结果进行加密运算,得到散列中间结果。
49.可选地,若该数据分片为除了第1个数据分片之外的其他任一数据分片,在前一数据分片的加密处理结果包括散列中间结果以及尾部数据的情况下,将前一数据分片对应的尾部数据与该数据分片的数据进行拼接;根据拼接得到的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果;在前一数据分片的加密处理结果包括散列中间结果但不包括尾部数据的情况下,根据该数据分片的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果。
50.可选地,处理模块进一步适于:提取数据文件的最后一个数据分片的加密处理结果中包含的散列中间结果,将提取的散列中间结果保存为数据文件的加密处理结果。
51.可选地,决策模块进一步适于:根据计算节点集群中各个计算节点的负载信息,从
计算节点集群中筛选出目标计算节点;处理模块进一步适于:控制目标计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
52.根据本技术的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
53.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据文件加密方法对应的操作。
54.根据本技术的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述数据文件加密方法对应的操作。
55.根据本技术的数据文件加密方法、装置、计算设备及存储介质,在数据文件分布式存储的场景下,只需要数据节点动态地预留一部分计算资源,在数据节点负载较低的情况下,数据节点完成数据分片的加密处理,而无需将数据分片加载到外部计算节点进行加密处理,从而能够节省网络带宽资源,能够提升数据加密处理的效率,能够避免数据节点吞吐量过大的情况,提升数据文件加密处理的性能,并且还可以减少计算节点的部署;进一步地,通过创建用于加密计算的离线任务,控制数据节点或者计算节点运行计算任务即可完成加密处理,提升了数据加密的效率;进一步地,对数据文件的各个数据分片依次进行加密处理,根据前一个数据分片的加密处理结果以及当前数据分片的数据进行加密处理,得到当前数据分片的加密处理结果,并提取最后一个数据分片的加密处理结果中的散列中间值作为数据文件的加密结果,能够获得数据文件的准确的加密结果,解决了现有技术无法计算分布式存储模式下数据文件的加密结果的问题。
56.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
57.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
58.图1示出了本技术实施例提供的数据文件加密方法的流程图;
59.图2示出了本技术另一实施例提供的数据文件加密方法的流程图;
60.图3示出了本技术实施例的数据文件加密方法的交互流程图;
61.图4示出了本技术实施例提供的数据文件加密装置的结构示意图;
62.图5示出了本技术实施例提供的计算设备的结构示意图。
具体实施方式
63.下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
64.首先,对本技术一个或多个实施例涉及的名词术语进行解释。
65.对象存储系统:综合了nas和san的优点,同时具有san的高速直接访问和nas的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。
66.数据节点:分布式存储系统中用于存储数据的节点。
67.计算节点:执行加密计算工作的节点。
68.元数据集群:用于存储元数据的节点集群,元数据又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
69.断点续传:将文件上传到对象存储系统时,将文件按照固定的大小,拆分为多个分片并发地进行文件的上传,每个请求只上传文件的一部分。不同分片的上传进程相互之间是独立的,某些分片上传失败不会影响其他已经上传的分片。
70.md5信息摘要算法:md5 message-digest algorithm,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。
71.分布式存储系统:是将数据分散存储在多台独立的设备上的系统,具有高可靠性、高可用性、高存取效率、易于扩展等优点。
72.数据分片:按照预定大小对数据文件进行分割而得到的分片。
73.图1示出了本技术实施例提供的种数据文件加密方法的流程图,如图1所示,该方法包括以下步骤:
74.步骤s110,接收数据文件的文件上传请求,将数据文件的多个数据分片分别存入分布式存储系统中的多个数据节点中。
75.其中,数据文件被分割成多个数据分片,多个数据分片被上传到存储系统中,具体使用upload part上传所有数据分片,当所有数据分片上传成功后,必须调用completemultipartupload接口来完成整个文件的分片上传,当接收到该文件上传请求时,将多个数据分片分别存入分布式存储系统的数据节点集群中的多个数据节点中。
76.步骤s120,获取数据文件的任一数据分片所存入的数据节点的负载信息。
77.当需要进行加密处理时,对于数据文件的任一数据分片,获取该数据分片所存入的数据节点的负载情况,例如包括cpu负载和/或磁盘负载,用于评估该数据节点是否还能够承载计算任务。
78.步骤s130,根据该数据分片所存入的数据节点的负载信息,确定执行加密处理的对象。
79.根据存储该数据分片的数据节点的负载情况,评估该数据节点是否还能够承载计算任务,若是,则确定执行加密处理的对象为该数据节点。
80.步骤s140,若确定执行加密处理的对象为数据节点,控制数据节点对该数据分片进行加密处理。
81.如果评估出数据节点还能够承载计算任务,则确定执行加密处理的对象为数据节点,在数据节点中对数据分片进行加密处理,由于数据分片就存储在数据节点中,因此不需要消耗网络带宽,还能够提升加密处理的效率。
82.根据本实施例的数据文件加密方法,接收数据文件的文件上传请求,将数据文件的多个数据分片分别存入分布式存储系统中的多个数据节点中;获取数据文件的任一数据分片所存入的数据节点的负载信息;根据该数据分片所存入的数据节点的负载信息,确定
执行加密处理的对象;若确定执行加密处理的对象为该数据分片所存入的数据节点,控制数据节点对该数据分片进行加密处理。通过上述方式,在数据文件分布式存储的场景下,只需要数据节点动态地预留一部分计算资源,在数据节点负载情况符合条件的情况下,在数据节点完成数据分片的加密处理,而无需将数据分片加载到外部计算节点进行加密处理,从而能够节省网络资源,能够提升数据加密处理的效率,能够避免数据节点吞吐量过大的情况,提升数据文件加密处理的性能。
83.图2示出了本技术另一实施例提供的数据文件加密方法的流程图,如图2所示,该方法包括以下步骤:
84.步骤s210,接收通过断点续传的方式所上传的数据文件的多个数据分片;其中,多个数据分片是按照第一预定大小对数据文件分割而生成。
85.其中,第一预定大小可以是固定设置的,也可以是业务方自定义的,在断点续传模式下,数据文件被分割为多个数据分片,例如,假设数据文件的大小为35mb,业务方自定义断点续传分片的大小为10mb,则数据文件在上传过程中被分割为4个数据分片,第1个到第3个数据分片的大小均为10mb,第4个数据分片的大小为5mb。
86.步骤s220,接收数据文件的文件上传请求,将数据文件的多个数据分片分别存入分布式存储系统中的多个数据节点中。
87.在数据文件的各个数据分片上传到分布式存储系统后,业务方调用completemultipartupload,分布式存储系统接收这个调用请求后,将数据文件的多个数据分片分别存入多个数据节点中。其中,本实施例中的分布式存储系统基于对象存储系统而构建。
88.步骤s230,获取数据文件的任一数据分片所存入的数据节点的负载信息。
89.对于数据文件的任一数据分片,获取存储该数据分片的数据节点的负载信息,具体包括cpu负载信息和/或磁盘负载信息。
90.步骤s240,根据该数据分片所存入的数据节点的负载信息,确定执行加密处理的对象。
91.根据数据分片所存入的数据节点的负载信息评估该数据节点是否还能够承载计算任务。具体地,将数据分片所存入的数据节点的cpu负载信息与第一预设值进行比较,和/或,将数据分片所存储的数据节点的磁盘负载信息与第二预设值进行比较,根据比较结果确定执行加密处理的对象。
92.在数据分片所存入的数据节点的cpu负载信息低于第一预设值或者磁盘负载信息低于第二预设值的情况下,确定执行加密处理的对象为该数据节点,也即,在数据分片所存入的数据节点的负载较低时,数据节点还可以承接数据加密的计算任务,则确定执行加密处理的对象为该数据节点。
93.反之,在数据分片所存入的数据节点的cpu负载信息高于第一预设值或者磁盘负载信息高于第二预设值的情况下,也即,在数据分片所存入的数据节点的负载较高时,该数据节点无法再额外承接数据加密的计算工作,则确定执行加密处理的对象为计算节点,计算节点可以是分布式存储系统外部的用于执行计算任务的节点。
94.若执行加密处理的对象为数据节点,执行步骤s250;若执行加密处理的对象为计算节点,执行步骤s260。
95.步骤s250,创建第一计算任务,将第一计算任务发送给数据节点,以供数据节点运行第一计算任务。
96.如果确定出执行加密处理的对象为数据节点,则创建一个加密计算的离线任务,即第一计算任务,该第一计算任务可以是用于执行加密处理的脚本或者代码,将第一计算任务发送给数据分片所存入的数据节点,数据节点运行该第一计算任务能够对数据分片进行加密处理。由于数据分片就存储在数据节点中,数据节点可以直接从本地存储的文件中读取出数据分片,因此不需要消耗网络带宽,而只是需要额外的计算资源,能够提升加密处理的速度。并且,通过创建用于加密计算的离线任务,控制数据节点运行计算任务即可完成加密处理,提升了数据加密的效率。
97.步骤s260,控制计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
98.如果确定执行加密处理的对象为计算节点,则使计算节点从数据节点中读取出数据分片加载到计算节点的本地,之后对加载到本地的数据分片进行加密处理。
99.在一种可选的方式中,创建第二计算任务,将第二计算任务发送给计算节点,以供计算节点运行第二计算任务,第二计算任务也是加密计算的离线任务,该第二计算任务可以是用于执行加密处理的脚本或者代码,将第二计算任务发送给计算节点,计算节点运行该第二计算任务能够执行如下操作:从数据节点读取数据分片并加载到计算节点本地,对加载到本地的数据分片进行加密处理。也即,当数据节点不足以承接加密计算任务的情况下,才将加密计算任务发送到外部计算节点执行,能够减少计算节点的部署。
100.在一种可选的方式中,在对数据分片进行加密处理后,将加密处理所得到的加密信息记录到分布式存储系统的元数据集群中,便于后续对数据分片的加密信息进行读取和管理。
101.在一种可选的方式中,部署有计算节点集群,则在确定执行加密处理的对象为计算节点之后,根据计算节点集群中各个计算节点的负载信息,从计算节点集群中筛选出目标计算节点,则控制目标计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。该方式中,通过负载均衡在计算节点集群中筛选出一个计算节点用于执行加密处理,能够确定出性能最优的计算节点执行数据加密处理,能够提升数据加密处理的性能。
102.需要说明的是,计算节点对数据分片进行加密处理的方式与数据节点对数据分片进行加密处理的方式是一致的,区别在于计算节点需要将数据分片加载到本地之后才能够进行加密处理。
103.具体地,对该数据分片进行加密处理包括如下步骤:根据该数据分片的数据以及该数据分片的前一数据分片的加密处理结果进行加密处理,得到该数据分片的加密处理结果;其中,若该数据分片为数据文件中的第1个数据分片,该数据分片的前一数据分片的加密处理结果为预设加密处理结果。也即,假设数据文件总共有n个数据分片,根据第i-1个数据分片的加密处理结果以及第i个数据分片的数据进行加密处理,得到第i个数据分片对应的加密处理结果,其中,1≤i≤n。
104.需要说明的是,第1个数据分片的前一数据分片的加密处理结果为预设加密处理结果,该预设加密处理结果包含散列中间结果但不包含其他尾部数据。具体地,对于数据文
件中的第1个数据分片,若该数据分片的数据的大小是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组;若该数据分片的数据的大小第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组和尾部数据;根据多个分组以及预设加密处理结果进行加密处理,得到散列中间结果。第1个数据分片的加密处理结果有两种情况,一种是包含散列中间结果而不包含尾部数据,另一种是包含散列中间结果以及尾部数据。
105.另外,若该数据分片为除了第1个数据分片之外的其他任一数据分片,在前一数据分片的加密处理结果包括散列中间结果以及尾部数据的情况下,将前一数据分片对应的尾部数据与该数据分片的数据进行拼接;根据拼接得到的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果;在前一数据分片的加密处理结果包括散列中间结果但不包括尾部数据的情况下,根据该数据分片的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果。
106.基于前一数据分片的加密处理结果的不同,对当前数据分片的加密处理有所不同。如果前一数据分片的加密处理结果包含散列中间结果以及尾部数据,则将前一数据分片的尾部数据与当前数据分片的数据进行拼接,根据拼接后的数据以及前一数据分片的加密处理结果所包含的散列中间结果进行加密处理;如果前一数据分片的加密处理结果包含散列中间结果而不包含尾部数据,则直接根据前一数据分片的加密处理结果所包含的散列中间结果以及当前数据分片的数据进行加密计算。也即,参与加密处理的数据包含两个部分,其一是上一数据分片的散列中间结果,其二是当前数据分片的数据或者当前数据分片的数据与前一数据分片的尾部数据的拼接结果,以下简称为加密基础数据。
107.具体地,按照第二预定大小对加密基础数据进行分组,如果加密基础数据是第二预定大小的整数倍,则加密处理结果包含对各个分组进行加密处理得到的散列中间结果,如果加密基础数据不是第二预定大小的整数倍,则加密处理结果包含对多个分组进行加密处理得到的散列中间结果以及大小不足第二预定大小的尾部数据。
108.按照上述加密处理方式逐个处理各个数据分片,直至处理完最后一个数据分片。在一种可选的方式中,提取数据文件的最后一个数据分片的加密处理结果中包含的散列中间结果,将提取的散列中间结果保存为数据文件的加密处理结果。另外,将该数据文件的加密处理结果记录在分布式存储系统的元数据集群中。
109.实际应用中,md5算法被经常用于对象存储系统中,对象存储系统需要能够实现文件md5值的计算,并记录到对象存储系统文件的元数据中。目前,业内使用的文件验证方法是:计算每一个数据分片的md5,然后再完成分片上传时,对所有的分片md5摘要值在此进行md5计算,得到一个散列值作为整个文件的校验,该散列值通常被称为etag,在业务方调用completemultipartupload的时候能够快速返回etag,从而避免了因为断点上传各个分片的并发、乱序上传等等而导致的md5值无法快速计算的问题。但是,在很多应用场景下,仍然需要md5摘要值来验证整个文件的正确性,因此对于断点续传的文件,在文件上传完毕之后,还是需要进行整个文件的获取并计算md5值。
110.本技术实施例的文件加密方法可应用于断点续传模式下计算数据文件的md5散列值,图3示出了本技术实施例的数据文件加密方法的交互流程图,整个流程包括如下步骤:
111.首先,对象存储系统接收到数据文件的4个分片,分别为:分片1、分片2、分片3以及
分片4,业务方调用completemultipartupload,后端接收这个请求后完成文件的上传,对业务方返回上传成功,这4个分片分别存储在数据节点1、数据节点2、数据节点3、数据节点4中。通知调度服务,产生一个md5计算的离线任务。其次,调度服务即将运行文件计算md5的任务,首先,从对象存储系统的元数据集群中,解析出分片存储节点的位置信息。
112.md5算法需要将待加密的数据以512位进行划分,每次的运算都由前一轮的128位结果值和当前的512位数据进行运算。因此,如果待加密数据的大小是512位的整数倍,则待加密数据经md5加密处理后结果仅包含128位散列中间结果;如果待加密数据的大小不是512位的整数倍,对待加密数据按512位进行分组后会存在不足512位的尾部数据,本技术实施例中保留该尾部数据不进行计算,而对其他的数据进行md5加密处理得到128位散列中间结果,也即如果待加密数据的大小不是512位的整数倍,则待加密数据经过md5加密处理的结果包含不足512位的尾部数据以及128位散列中间结果。
113.具体地,执行如下步骤计算数据文件的md5散列值:
114.步骤1:调度服务确定数据节点1的负载较低,向数据节点1下发加密指令;
115.步骤2:数据节点1根据分片1进行md5加密处理,得到二元组结果{尾部数据,散列中间结果};
116.步骤3:数据节点1向调度服务返回加密处理结果;
117.步骤4:调度服务确定数据节点2的负载较低,向数据节点2下发加密指令;
118.步骤5:数据节点2从调度服务中读取分片1的二元组结果{尾部数据,散列中间结果};
119.步骤6:数据节点2根据分片1的二元组结果以及分片2进行md5加密计算,得到二元组结果{尾部数据,散列中间结果};
120.步骤7:数据节点2向调度服务返回加密处理结果;
121.步骤8:调度服务确定数据节点3的负载较低,向数据节点3下发加密指令;
122.步骤9:数据节点3从调度服务中读取分片2的二元组结果{尾部数据,散列中间结果};
123.步骤10:数据节点3根据分片2的二元组结果以及分片3进行md5加密计算,得到二元组结果{尾部数据,散列中间结果};
124.步骤11:数据节点3向调度服务返回加密处理结果;
125.步骤12:调度服务确定数据节点4的负载较低,向数据节点4下发加密指令;
126.步骤13:数据节点4从调度服务读取分片3的二元组结果{尾部数据,散列中间结果};
127.步骤14:数据节点4根据分片3的二元组结果以及分片4进行md5加密计算,得到二元组结果{尾部数据,散列中间结果};
128.步骤15,数据节点4向调度服务返回加密处理结果。
129.最后,调度服务向对象存储系统的元数据集群发送更新数据文件的md5值的请求,文件的md5值将被设置,文件的md5值也就是数据节点4所返回的加密处理结果中包含的散列中间结果。经过对比验证,相比于现有技术中通过外部计算集群计算分布式存储的数据文件的md5值的方式,采用本技术实施例的方式计算分布式存储的数据文件的md5值的时间消耗要降低50%以上。
130.根据本技术实施例的数据文件加密方法,在数据文件分布式存储的场景下,只需要数据节点动态地预留一部分计算资源,在数据节点负载较低的情况下,数据节点完成数据分片的加密处理,而无需将数据分片加载到外部计算节点进行加密处理,从而能够节省网络带宽资源,能够提升数据加密处理的效率,能够避免数据节点吞吐量过大的情况,提升数据文件加密处理的性能,并且还可以减少计算节点的部署;进一步地,通过创建用于加密计算的离线任务,控制数据节点或者计算节点运行计算任务即可完成加密处理,提升了数据加密的效率;进一步地,对数据文件的各个数据分片依次进行加密处理,根据前一个数据分片的加密处理结果以及当前数据分片的数据进行加密处理,得到当前数据分片的加密处理结果,并提取最后一个数据分片的加密处理结果中的散列中间值作为数据文件的加密结果,能够获得数据文件的准确的加密结果,解决了现有技术无法计算分布式存储模式下数据文件的加密结果的问题。
131.图4示出了本技术实施例提供的数据文件加密装置的结构示意图如图4所示,该装置包括以下各个模块:
132.获取模块41,适于接收数据文件的文件上传请求,将所述数据文件的多个数据分片分别存入分布式存储系统中的多个数据节点中;
133.决策模块42,适于获取所述数据文件的任一数据分片所存入的数据节点的负载信息;根据该数据分片所存入的数据节点的负载信息,确定执行加密处理的对象;
134.处理模块43,适于若确定执行加密处理的对象为该数据分片所存入的数据节点,控制所述数据节点对该数据分片进行加密处理。
135.在一种可选的方式中,处理模块43进一步适于:若确定执行加密处理的对象为计算节点,控制计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
136.在一种可选的方式中,装置还包括:文件接收模块,适于接收通过断点续传的方式所上传的数据文件的多个数据分片;其中,多个数据分片是按照第一预定大小对数据文件分割而生成。
137.在一种可选的方式中,负载信息包括:cpu负载信息和/或磁盘负载信息;决策模块42进一步适于:
138.在该数据分片所存入的数据节点的cpu负载信息低于第一预设值和/或磁盘负载信息低于第二预设值的情况下,确定执行加密处理的对象为数据节点;在该数据分片所存入的数据节点的cpu负载信息高于第一预设值和/或磁盘负载信息高于第二预设值的情况下,确定执行加密处理的对象为计算节点。
139.在一种可选的方式中,处理模块43进一步适于:创建第一计算任务,将第一计算任务发送给数据节点,以供数据节点运行第一计算任务;其中,第一计算任务用于对该数据分片进行加密处理。
140.在一种可选的方式中,处理模块43进一步适于:创建第二计算任务,将第二计算任务发送给计算节点,以供计算节点运行第二计算任务;其中,第二计算任务用于从数据节点读取该数据分片并加载到计算节点本地并对该数据分片进行加密处理。
141.在一种可选的方式中,对该数据分片进行加密处理具体包括如下步骤:根据该数据分片的数据以及该数据分片的前一数据分片的加密处理结果进行加密处理,得到该数据
分片的加密处理结果;其中,若该数据分片为所述数据文件中的第1个数据分片,该数据分片的前一数据分片的加密处理结果为预设加密处理结果。
142.在一种可选的方式中,若该数据分片为所述数据文件中的第1个数据分片,若该数据分片的数据的大小是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组;若该数据分片的数据的大小不是第二预定大小的整数倍,按照第二预定大小对该数据分片进行分组,得到多个分组和尾部数据;根据多个分组以及预设加密处理结果进行加密运算,得到散列中间结果。
143.在一种可选的方式中,若该数据分片为除了第1个数据分片之外的其他任一数据分片,在前一数据分片的加密处理结果包括散列中间结果以及尾部数据的情况下,将前一数据分片对应的尾部数据与该数据分片的数据进行拼接;根据拼接得到的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果;在前一数据分片的加密处理结果包括散列中间结果但不包括尾部数据的情况下,根据该数据分片的数据以及前一数据分片对应的散列中间结果进行加密处理,得到该数据分片的加密处理结果。
144.在一种可选的方式中,处理模块43进一步适于:提取数据文件的最后一个数据分片的加密处理结果中包含的散列中间结果,将提取的散列中间结果保存为数据文件的加密处理结果。
145.在一种可选的方式中,决策模块42进一步适于:根据计算节点集群中各个计算节点的负载信息,从计算节点集群中筛选出目标计算节点;处理模块43进一步适于:控制目标计算节点从数据节点读取该数据分片并加载到计算节点本地以对该数据分片进行加密处理。
146.本技术实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据文件加密方法。
147.图5示出了本技术计算设备实施例的结构示意图,本技术具体实施例并不对计算设备的具体实现做限定。
148.如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(communications interface)504、存储器(memory)506、以及通信总线508。
149.其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。处理器502,用于执行程序510,具体可以执行上述用于计算设备的数据文件加密方法实施例中的相关步骤。
150.具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
151.处理器502可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
152.存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
153.在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本技术实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本技术的最佳实施方式。
154.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
155.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
156.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
157.此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
158.本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
159.应该注意的是上述实施例对本技术进行说明而不是对本技术进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实
现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献