一种数据处理方法、装置、设备及存储介质与流程

文档序号:32253270发布日期:2022-11-19 02:41阅读:53来源:国知局
一种数据处理方法、装置、设备及存储介质与流程

1.本技术涉及数据安全技术领域,具体地涉及一种数据处理方法、装置、设备及存储介质。


背景技术:

2.在智能制造、自动化工厂等领域中,会使用很多电子设备,如检测设备、数据采集设备、工控设备等。电子设备在使用过程中会产生海量数据,这些数据在存储时是以文件的形式存储在硬盘、磁盘或其他存储介质中。
3.在现有技术中,为保证文件的安全性,通常采用des(data encryption standard,数据加密标准)或aes(advanced encryption standard,高级加密标准)等常见的加密算法对文件进行加密。但当待加密的文件较大时,会引起内存消耗高、加密速度慢等问题,从而影响数据处理的效率。并且,由于des算法及aes算法容易被破解,可能会导致文件安全性不高,容易被篡改。


技术实现要素:

4.有鉴于此,本技术提供一种数据处理方法、装置、设备及存储介质,以利于解决现有技术中当待加密的文件较大时,数据处理效率低且安全性差的问题。
5.第一方面,本技术提供了一种数据处理方法,所述方法包括:
6.获取待加密的第一文件;
7.根据预设数据块大小,将所述第一文件拆分为n个第一数据块,n为正整数;
8.根据所述第一文件及所述预设数据块大小,在预设种子数据范围内确定出n个种子数据;其中,所述预设种子数据范围内包含有至少一个种子数据,且每个种子数据对应一种预设第一加密算法,不同种子数据对应的预设第一加密算法不同;
9.根据所述n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,所述n个待使用第一加密算法与所述n个种子数据相对应;
10.根据所述n个待使用第一加密算法对所述n个第一数据块分别进行加密处理,得到加密后的第一文件。
11.优选地,所述n个种子数据均相同;或者,所述n个种子数据中的至少两个种子数据不相同;
12.在所述n个种子数据均相同时,所述n个待使用第一加密算法相同;
13.在所述n个种子数据中的至少两个种子数据不相同时,所述n个待使用第一加密算法中的至少两个待使用第一加密算法不相同。
14.优选地,所述根据预设数据块大小,将所述第一文件拆分为n个第一数据块包括:
15.根据预设数据块大小,将所述第一文件按照预设顺序拆分为n个第一数据块。
16.优选地,所述根据所述n个待使用第一加密算法对所述n个第一数据块分别进行加密处理,得到加密后的第一文件包括:
17.根据所述n个待使用第一加密算法对所述n个第一数据块分别进行加密处理,得到n个加密后的第一数据块;
18.将所述n个加密后的第一数据块按照预设顺序合成为加密后的第一文件。
19.优选地,所述方法还包括:
20.将所述n个种子数据及所述加密后的第一文件存储至第一存储设备。
21.优选地,所述方法还包括:
22.根据预设第二加密算法,对所述n个种子数据进行加密处理,得到n个加密后的种子数据;
23.将所述n个加密后的种子数据及所述加密后的第一文件存储至所述第一存储设备。
24.优选地,所述方法还包括:
25.将所述n个加密后的第一数据块存储至第二存储设备;
26.根据所述n个加密后的第一数据块,生成所述n个加密后的第一数据块所用的第一校验值;
27.将所述n个加密后的第一数据块所用的第一校验值存储至所述第一存储设备。
28.优选地,还包括:
29.从所述第一存储设备中读取所述n个加密后的第一数据块所用的第一校验值及所述加密后的第一文件;
30.根据所述预设数据块大小,将读取的所述加密后的第一文件拆分为n个第二数据块;
31.根据所述n个第二数据块,生成所述n个第二数据块所用的第二校验值;
32.根据所述n个第二数据块所用的第二校验值与所述n个加密后的第一数据块所用的第一校验值检测存储的所述加密后的第一文件是否损坏;
33.若损坏,则获取所述第二存储设备中存储的n个加密后的第一数据块,并根据获取的所述第二存储设备中存储的n个加密后的第一数据块更新所述第一存储设备中存储的加密后的第一文件。
34.优选地,所述若损坏,则获取所述第二存储设备中存储的n个加密后的第一数据块,并根据获取的所述第二存储设备中存储的n个加密后的第一数据块更新所述第一存储设备中存储的加密后的第一文件包括:
35.若损坏,则根据所述n个第二数据块所用的第二校验值与所述n个加密后的第一数据块所用的第一校验值确定损坏的第一数据块;
36.在所述第二存储设备中获取目标第一数据块,并根据获取的目标第一数据块更新第一存储设备中存储的目标第一数据块,所述目标第一数据块是所述损坏的第一数据块对应的未损坏数据块。
37.优选地,所述获取待加密的第一文件包括:
38.接收第一设备发送的第一文件加密请求消息,所述第一文件加密请求信息中携带有第一文件的存储位置信息,其中,所述第一文件存储于所述第一存储设备中;
39.根据所述第一文件的存储位置信息,利用内存映射的方式获取所述第一存储设备中存储的待加密的第一文件;
40.所述将所述n个种子数据及所述加密后的第一文件存储至第一存储设备包括:
41.利用内存映射的方式,将所述n个种子数据及所述加密后的第一文件存储至所述第一存储设备。
42.第二方面,本技术提供了一种数据处理方法,所述方法包括:
43.获取加密后的第二文件及所述第二文件对应的n个种子数据,n为正整数;
44.根据预设数据块大小,将所述加密后的第二文件拆分为n个第三数据块;
45.根据所述n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,所述n个待使用第一加密算法与所述n个种子数据相对应;
46.根据所述n个待使用第一加密算法确定n个待使用第一解密算法,并根据所述n个待使用第一解密算法对
47.所述n个第三数据块分别进行解密处理,得到解密后的第二文件。
48.优选地,所述获取加密后的第二文件及所述第二文件对应的n个种子数据包括:
49.接收第二设备发送的用于读取第二文件的请求消息,所述用于读取第二文件的请求消息中携带有第二文件的标识信息;
50.根据所述用于读取第二文件的请求消息中携带的第二文件的标识信息,从第一存储设备中获取加密后的第二文件及所述第二文件对应的n个种子数据。
51.优选地,所述从第一存储设备中获取加密后的第二文件及所述第二文件对应的n个种子数据包括:
52.利用内存映射的方式,从所述第一存储设备中获取加密后的第二文件及所述第二文件对应的n个种子数据。
53.优选地,还包括:
54.向所述第二设备发送所述解密后的第二文件。
55.优选地,所述根据所述n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法包括:
56.在获取的所述第二文件对应的n个种子数据为n个加密后的种子数据时,根据预设第二解密算法,对所述n个加密后的种子数据进行解密处理,得到n个解密后的种子数据;
57.根据所述n个解密后的种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
58.优选地,所述根据预设数据块大小,将所述加密后的第二文件拆分为n个第三数据块包括:
59.根据预设数据块大小,将所述加密后的第二文件按照预设顺序拆分为n个第三数据块。
60.优选地,所述根据所述n个待使用第一加密算法确定n个待使用第一解密算法,并根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理,得到解密后的第二文件包括:
61.根据所述n个待使用第一加密算法确定n个待使用第一解密算法,并根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理,得到n个解密后的第三数据块;
62.将所述n个解密后的第三数据块按照预设顺序合成为解密后的第二文件。
63.优选地,还包括:
64.获取第一存储设备中存储的所述第二文件的n个第三数据块所用的第一校验值。
65.优选地,在所述根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理之前还包括:
66.根据所述n个第三数据块,生成所述n个第三数据块所用的第二校验值;
67.根据所述n个第三数据块所用的第二校验值与获取的所述n个第三数据块所用的第一校验值,检测读取的所述第二文件是否损坏;
68.所述根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理包括:
69.若检测到读取的所述第二文件未损坏,则根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理。
70.优选地,还包括:
71.若检测到读取的所述第二文件已损坏,则根据第二存储设备中存储的所述第二文件对应的n个第三数据块,更新已获取的所述n个第三数据块;
72.根据所述n个待使用第一解密算法对更新后的所述n个第三数据块分别进行解密处理。
73.优选地,所述若检测到读取的所述第二文件已损坏,则根据第二存储设备中存储的所述第二文件对应的n个第三数据块,更新已获取的所述n个第三数据块包括:
74.若检测到读取的所述第二文件已损坏,则根据所述n个第三数据块所用的第二校验值及所述n个第三数据块所用的第一校验值确定已损坏的第三数据块;
75.根据所述已损坏的第三数据块在所述第二存储设备中获取目标第三数据块,并根据所述目标第三数据块,更新已获取的所述n个第三数据块中的已损坏的第三数据块,所述目标第三数据块是所述已损坏的第三数据块对应的未损坏数据块。
76.第三方面,本技术提供了一种数据处理装置,包括:
77.获取单元,用于获取待加密的第一文件;
78.处理单元,用于:
79.根据预设数据块大小,将所述第一文件拆分为n个第一数据块,n为正整数;
80.根据所述第一文件及所述预设数据块大小,在预设种子数据范围内确定出n个种子数据;其中,所述预设种子数据范围内包含有至少一个种子数据,且每个种子数据对应一种预设第一加密算法,不同种子数据对应的预设第一加密算法不同;
81.根据所述n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,所述n个待使用第一加密算法与所述n个种子数据相对应;
82.根据所述n个待使用第一加密算法对所述n个第一数据块分别进行加密处理,得到加密后的第一文件。
83.优选地,所述处理单元,具体用于根据预设数据块大小,将所述第一文件按照预设顺序拆分为n个第一数据块。
84.优选地,所述处理单元,具体用于根据所述n个待使用第一加密算法对所述n个第一数据块分别进行加密处理,得到n个加密后的第一数据块;
85.将所述n个加密后的第一数据块按照预设顺序合成为加密后的第一文件。
86.优选地,所述处理单元,还用于将所述n个种子数据及所述加密后的第一文件存储至第一存储设备。
87.优选地,所述处理单元,还用于根据预设第二加密算法,对所述n个种子数据进行加密处理,得到n个加密后的种子数据;
88.将所述n个加密后的种子数据及所述加密后的第一文件存储至所述第一存储设备。
89.优选地,所述处理单元,还用于将所述n个加密后的第一数据块存储至第二存储设备;
90.根据所述n个加密后的第一数据块,生成所述n个加密后的第一数据块所用的第一校验值;
91.将所述n个加密后的第一数据块所用的第一校验值存储至所述第一存储设备。
92.优选地,所述处理单元,还用于从所述第一存储设备中读取所述n个加密后的第一数据块所用的第一校验值及所述加密后的第一文件;
93.根据所述预设数据块大小,将读取的所述加密后的第一文件拆分为n个第二数据块;
94.根据所述n个第二数据块,生成所述n个第二数据块所用的第二校验值;
95.根据所述n个第二数据块所用的第二校验值与所述n个加密后的第一数据块所用的第一校验值检测存储的所述加密后的第一文件是否损坏;
96.若损坏,则获取所述第二存储设备中存储的n个加密后的第一数据块,并根据获取的所述第二存储设备中存储的n个加密后的第一数据块更新所述第一存储设备中存储的加密后的第一文件。
97.优选地,所述处理单元,具体用于若损坏,则根据所述n个第二数据块所用的第二校验值与所述n个加密后的第一数据块所用的第一校验值确定损坏的第一数据块;
98.在所述第二存储设备中获取目标第一数据块,并根据获取的目标第一数据块更新第一存储设备中存储的目标第一数据块,所述目标第一数据块是所述损坏的第一数据块对应的未损坏数据块。
99.优选地,所述获取单元,具体用于接收第一设备发送的第一文件加密请求消息,所述第一文件加密请求信息中携带有第一文件的存储位置信息,其中,所述第一文件存储于所述第一存储设备中;
100.根据所述第一文件的存储位置信息,利用内存映射的方式获取所述第一存储设备中存储的待加密的第一文件;
101.所述处理单元,具体用于利用内存映射的方式,将所述n个种子数据及所述加密后的第一文件存储至所述第一存储设备。
102.第四方面,本技术提供了一种数据处理装置,包括:
103.获取单元,用于获取加密后的第二文件及所述第二文件对应的n个种子数据,n为正整数;
104.处理单元,用于:
105.根据预设数据块大小,将所述加密后的第二文件拆分为n个第三数据块;
106.根据所述n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算
法,所述n个待使用加密算法与所述n个种子数据相对应;
107.根据所述n个待使用第一加密算法确定n个待使用第一解密算法,并根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理,得到解密后的第二文件。
108.优选地,所述获取单元,具体用于接收第二设备发送的用于读取第二文件的请求消息,所述用于读取第二文件的请求消息中携带有第二文件的标识信息;
109.根据所述用于读取第二文件的请求消息中携带的第二文件的标识信息,从第一存储设备中获取加密后的第二文件及所述第二文件对应的n个种子数据。
110.优选地,所述获取单元,具体用于利用内存映射的方式,从所述第一存储设备中获取加密后的第二文件及所述第二文件对应的n个种子数据。
111.优选地,所述处理单元,还用于向所述第二设备发送所述解密后的第二文件。
112.优选地,所述处理单元,具体用于在获取的所述第二文件对应的n个种子数据为n个加密后的种子数据时,根据预设第二解密算法,对所述n个加密后的种子数据进行解密处理,得到n个解密后的种子数据;
113.根据所述n个解密后的种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
114.优选地,所述处理单元,具体用于根据预设数据块大小,将所述加密后的第二文件按照预设顺序拆分为n个第三数据块。
115.优选地,所述处理单元,具体用于根据所述n个待使用第一加密算法确定n个待使用第一解密算法,并根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理,得到n个解密后的第三数据块;
116.将所述n个解密后的第三数据块按照预设顺序合成为解密后的第二文件。
117.优选地,所述获取单元,还用于获取第一存储设备中存储的所述第二文件的n个第三数据块所用的第一校验值。
118.优选地,所述处理单元,还用于根据所述n个第三数据块,生成所述n个第三数据块所用的第二校验值;
119.根据所述n个第三数据块所用的第二校验值与获取的所述n个第三数据块所用的第一校验值,检测读取的所述第二文件是否损坏;
120.所述处理单元,具体用于若检测到读取的所述第二文件未损坏,则根据所述n个待使用第一解密算法对所述n个第三数据块分别进行解密处理。
121.优选地,所述处理单元,还用于若检测到读取的所述第二文件已损坏,则根据第二存储设备中存储的所述第二文件对应的n个第三数据块,更新已获取的所述n个第三数据块;
122.根据所述n个待使用第一解密算法对更新后的所述n个第三数据块分别进行解密处理。
123.优选地,所述处理单元,具体用于若检测到读取的所述第二文件已损坏,则根据所述n个第三数据块所用的第二校验值及所述n个第三数据块所用的第一校验值确定已损坏的第三数据块;
124.根据所述已损坏的第三数据块在所述第二存储设备中获取目标第三数据块,并根据所述目标第三数据块,更新已获取的所述n个第三数据块中的已损坏的第三数据块,所述
目标第三数据块是所述已损坏的第三数据块对应的未损坏数据块。
125.第五方面,本技术提供了一种电子设备,包括处理器和电连接于所述处理器的存储器,所述存储器存储有计算机程序,当所述计算机程序被执行时,使得所述处理器执行上述第一方面任一项或第二方面任一项所述的方法。
126.第六方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述第一方面任一项或第二方面任一项所述的方法。
127.采用本技术实施例提供的方案,包括:获取待加密的第一文件;根据预设数据块大小,将第一文件拆分为n个第一数据块,n为正整数;根据第一文件及预设数据块大小,在预设种子数据范围内确定出n个种子数据;其中,预设种子数据范围内包含有至少一个种子数据,且每个种子数据对应一种预设第一加密算法,不同种子数据对应的预设第一加密算法不同;根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,n个待使用第一加密算法与n个种子数据相对应;根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到加密后的第一文件。
128.也就是说,数据处理装置在确定需要对第一文件进行加密时,先获取待加密的第一文件,然后按照预设数据块大小,将第一文件拆分为n个第一数据块。由于数据处理装置预先设置了多个预设第一加密算法,因此可以在多个预设加密算法中为n个第一数据块中的每个第一数据块确定其对应的待使用第一加密算法。首先,数据处理装置会预先设置种子数据范围,种子数据范围中的每个种子数据对应一种预设第一加密算法,数据处理装置可以根据第一文件及预设数据块大小,确定第一文件拆分后的第一数据块的数量n,在预设种子数据范围中确定出n个种子数据,可以是随机选取,或者按一定的选取规则选取,本技术对此不作限制。由于每个种子数据都对应一种预设第一加密算法,因此可以根据n个种子数据,确定出n个待使用第一加密算法,并根据n个待使用第一加密算法对n个第一数据块进行加密。这样一来,无需使用固定的加密算法对第一文件进行加密,并且对第一文件拆分后的n个第一数据块使用的加密算法可能相同,也可能不同,提高了文件的安全性。同时,假设待加密的第一文件为大文件,如果直接进行加密,会导致内存消耗较大、加密速度慢的问题,在本技术中,先将待加密的第一文件拆分为n个第一数据块,再对n个第一数据块进行加密,由于第一数据块的大小相对于第一文件的大小来说较小,因此能够提高加密的效率。
附图说明
129.图1为本技术实施例提供的一种数据处理方法的流程示意图;
130.图2为本技术实施例提供的一种数据处理方法的应用场景示意图;
131.图3为本技术实施例提供的另一种数据处理方法的应用场景示意图;
132.图4为本技术实施例提供的另一种数据处理方法的应用场景示意图;
133.图5为本技术实施例提供的另一种数据处理方法的流程示意图;
134.图6为本技术实施例提供的另一种数据处理方法的流程示意图;
135.图7为本技术实施例提供的另一种数据处理方法的应用场景示意图;
136.图8为本技术实施例提供的另一种数据处理方法的流程示意图;
137.图9为本技术实施例提供的一种数据处理装置的结构示意图;
138.图10为本技术实施例提供的另一种数据处理装置的结构示意图;
139.图11为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
140.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
141.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
142.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
143.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
144.在对本技术实施例进行具体介绍之前,首先对本技术实施例应用或可能应用的术语进行解释。
145.内存映射文件:是由一个文件到一块内存的映射。win32提供了允许应用程序把文件映射到一个进程的函数(create file mapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行i/o操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。
146.中央处理器(cpu,central processing unit):cpu作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
147.字节流:传输过程中,传输数据的最基本单位是字节的流。
148.相关技术中,在智能制造、自动化工厂等领域中,会使用很多电子设备,如检测设备、数据采集设备、工控设备等。电子设备在使用过程中会产生海量数据,这些数据在存储时是以文件的形式存储在硬盘、磁盘或其他存储介质中。
149.在现有技术中,为保证文件的安全性,通常采用des(data encryption standard,数据加密标准)或aes(advanced encryption standard,高级加密标准)等常见的加密算法对文件进行加密。但当待加密的文件较大时,会引起内存消耗高、加密速度慢等问题,从而影响数据处理的效率。并且,由于des算法及aes算法容易被破解,可能会导致文件安全性不高,容易被篡改。
150.针对上述问题,本技术实施例提供了一种数据处理方法、装置、设备及存储介质。所述方法包括:包括:获取待加密的第一文件;根据预设数据块大小,将第一文件拆分为n个第一数据块,n为正整数;根据第一文件及预设数据块大小,在预设种子数据范围内确定出n个种子数据;其中,预设种子数据范围内包含有至少一个种子数据,且每个种子数据对应一种预设第一加密算法,不同种子数据对应的预设第一加密算法不同;根据n个种子数据,在
多个预设第一加密算法中确定出n个待使用第一加密算法,n个待使用第一加密算法与n个种子数据相对应;根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到加密后的第一文件。也就是说,数据处理装置在确定需要对第一文件进行加密时,先获取待加密的第一文件,然后按照预设数据块大小,将第一文件拆分为n个第一数据块。由于数据处理装置预先设置了多个预设第一加密算法,因此可以在多个预设加密算法中为n个第一数据块中的每个第一数据块确定其对应的待使用第一加密算法。首先,数据处理装置会预先设置种子数据范围,种子数据范围中的每个种子数据对应一种预设第一加密算法,数据处理装置可以根据第一文件及预设数据块大小,确定第一文件拆分后的第一数据块的数量n,在预设种子数据范围中确定出n个种子数据,可以是随机选取,或者按一定的选取规则选取,本技术对此不作限制。由于每个种子数据都对应一种预设第一加密算法,因此可以根据n个种子数据,确定出n个待使用第一加密算法,并根据n个待使用第一加密算法对n个第一数据块进行加密。这样一来,无需使用固定的加密算法对第一文件进行加密,并且对第一文件拆分后的n个第一数据块使用的加密算法可能相同,也可能不同,提高了文件的安全性。同时,假设待加密的第一文件为大文件,如果直接进行加密,会导致内存消耗较大、加密速度慢的问题,在本技术中,先将待加密的第一文件拆分为n个第一数据块,再对n个第一数据块进行加密,由于第一数据块的大小相对于第一文件的大小来说较小,因此能够提高加密的效率。以下进行详细说明。
151.参见图1,为本技术实施例提供的一种数据处理方法的流程示意图。
152.步骤s101、获取待加密的第一文件。
153.在本技术实施例中,当第一设备需要对第一文件进行加密时,第一文件可能是新生成的文件,也可能是已存储在存储设备中的文件。在第一文件为新生成的文件时,第一设备可以直接向数据处理装置发送第一文件,数据处理装置获取待加密的第一文件;在第一文件为已存储的文件时,第一设备可以向数据处理装置发送第一文件的存储位置信息,数据处理装置接收到第一文件的存储位置信息后,确定需要对第一文件执行加密操作。此时,数据处理装置可以根据第一文件的存储位置信息获取待加密的第一文件。
154.作为一种可能的实现方式,所述获取待加密的第一文件包括:
155.接收第一设备发送的第一文件加密请求消息。第一文件加密请求信息中携带有第一文件的存储位置信息,其中,第一文件存储于第一存储设备中。
156.根据第一文件的存储位置信息,利用内存映射的方式获取第一存储设备中存储的待加密的第一文件。
157.具体的,当第一设备需要对第一文件进行加密处理时,可以向数据处理装置发送第一文件加密请求消息,并将第一文件的存储位置信息添加至第一文件加密请求消息中,以便数据处理装置可以根据第一文件的存储位置信息获取待加密的第一文件。其中,第一文件存储于第一存储设备中,第一存储设备为磁盘、硬盘等非易失性存储设备。数据处理装置接收到第一文件加密请求消息之后,通过解析第一文件加密请求消息,可以获知第一文件的存储位置信息。由于内存映射技术是将硬盘或者其他非易失性存储介质中存储的文件映射到内存映射文件中,然后数据处理装置可以直接对内存映射文件中的文件进行处理,无需再对文件执行i/o(input/output,写入/读取)操作,从而可以节省数据读取的时间。基于此,数据处理装置可以根据第一文件的存储位置信息,利用内存映射的方式获取第一存
储设备中存储的待加密的第一文件。即为,数据处理装置可以创建内存映射文件,根据第一文件的存储位置信息,确定第一文件在第一存储设备中的存储位置,然后将第一存储设备中存储的第一文件映射至内存映射文件中,无需对文件执行i/o操作,后续可以直接对内存映射文件中映射的第一文件执行相应的操作。
158.这样一来,在第一文件为大文件时,如果直接从第一存储设备中读取第一文件,会耗费较长的时间,而本技术采用内存映射的方式获取第一文件,无需从第一存储设备中直接将第一文件的数据读取出来,减少对文件执行i/o(input/output,写入/读取)操作,大大节省了获取第一文件的时间。并且,现有技术中,在第一文件的大小大于内存大小时,无法将第一文件加载到内存中,从而导致加密失败,而在本技术中,采用内存映射的方式,可以按照数据处理装置的处理能力分页映射第一存储设备中的第一文件,能够将第一文件全部映射至内存映射文件中,避免因第一文件较大无法加载导致加密失败的问题。例如,假设第一文件大小为20gb,数据处理装置每次只能处理4gb大小的数据,此时,数据处理装置可以将第一存储设备中存储的第一文件分为5页映射至内存映射文件,数据处理装置处理完第一页的数据后自动查找分页表,处理下一页的数据。
159.步骤s102、根据预设数据块大小,将第一文件拆分为n个第一数据块。
160.其中,n为正整数。
161.具体的,若待加密的第一文件为大文件,此时若直接对其执行加密操作,加密速度会很慢,因此,数据处理装置在获取到待加密的第一文件之后,根据预设数据块大小,将第一文件拆分为n个第一数据块,以便后续对n个第一数据块进行加密。
162.作为一种可能的实现方式,根据预设数据块大小,将第一文件按照预设顺序拆分为n个第一数据块。
163.具体的,数据处理装置在拆分第一文件时,可以按照预设顺序将第一文件拆分为n个第一数据块,以便后续在将n个第一数据块合成为第一文件时,可以按照预设顺序合成完整的第一文件。例如,假设预设数据块大小为1gb,第一文件为4gb,那么可以确定将第一文件拆分为4个第一数据块,如图2所示,将第一文件按照其内的数据在第一文件中的位置顺序拆分为4个第一数据块:第一数据块a、第一数据块b、第一数据块c、第一数据块d。
164.需要说明的是,预设数据块大小可以按照实际需求设定,本技术对此不作限制。
165.需要说明的是,预设顺序可以按照实际需求设定,本技术对此不作限制。
166.步骤s103、根据第一文件及预设数据块大小,在预设种子数据范围内确定出n个种子数据。
167.其中,预设种子数据范围内包含有至少一个种子数据,且每个种子数据对应一种预设第一加密算法,不同种子数据对应的预设第一加密算法不同。
168.具体的,数据处理装置预先设置了多个预设第一加密算法,每种预设第一加密算法对应一个种子数据,数据处理装置根据预先设置的至少一种预设第一加密算法对应的种子数据,可以确定出预设种子数据范围。例如,假设数据处理装置设置了n个预设第一加密算法:算法1、算法2、算法3、

、算法n,那么可以将预设种子数据范围确定为1、2、3、

、n。当然,还可以通过其他方式确定预设种子数据范围,只需确保不同的预设第一加密算法对应不同的种子数据即可,本技术对此不作限制。那么,数据处理装置在获取到待加密的第一文件之后,可以根据第一文件及预设数据块大小,确定出需要将第一文件拆分为n个第一数据
块,然后在预设种子数据范围内确定出n个种子数据。例如,可以在预设种子数据范围内随机选取n个种子数据,还可以在预设种子数据范围内按照一定的规则选取n个种子数据,本技术对此不作限制。
169.作为一种可能的实现方式,n个种子数据均相同;或者,n个种子数据中的至少两个种子数据不相同。
170.具体的,数据处理装置确定出的n个种子数据可能都相同,也可能存在至少两个种子数据不相同。
171.步骤s104、根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
172.其中,n个待使用第一加密算法与n个种子数据相对应。
173.具体的,由于每个种子数据对应一种预设第一加密算法,因此,数据处理装置根据n个种子数据中的每个种子数据,可以确定出该种子数据对应的预设第一加密算法,并将其确定为待使用第一加密算法。这样一来,数据处理装置根据n个种子数据,可以在多个预设第一加密算法中确定出n个待使用第一加密算法。
174.作为一种可能的实现方式,在n个种子数据均相同时,n个待使用第一加密算法相同;
175.在n个种子数据中的至少两个种子数据不相同时,n个待使用第一加密算法中的至少两个待使用第一加密算法不相同。
176.具体的,由于不同种子数据对应的预设第一加密算法不同,因此在n个种子数据均相同时,确定出的n个待使用第一加密算法相同;在n个种子数据中的至少两个种子数据不相同时,确定出的n个待使用第一加密算法中的至少两个待使用第一加密算法不相同。
177.需要说明的是,数据处理装置在获取到待加密的第一文件之后,可以先执行上述步骤s102,再执行上述步骤s103至步骤s104;也可以先执行上述步骤s103至步骤s104,再执行上述步骤s102,本技术对此不作限制。
178.步骤s105、根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到加密后的第一文件。
179.具体的,数据处理装置在确定出n个待使用第一加密算法之后,可以根据n个待使用第一加密算法,对n个第一数据块分别进行加密处理。例如,假设数据处理装置将第一文件拆分为3个第一数据块,并且确定出3个待使用第一加密算法分别为加密算法a、加密算法b及加密算法c,数据处理装置可以对第一个第一数据块采用加密算法a加密,对第二个第一数据块采用加密算法b加密,对第三个第一数据块采用加密算法c加密,最终得到加密后的第一文件。由于数据处理装置可以对n个第一数据块同时进行加密处理得到加密后的第一文件,因此相比于直接对第一文件进行加密处理,可以大幅度提高第一文件的加密速度。并且,数据处理装置确定出的n个待使用第一加密算法中每两个待使用第一加密算法可能相同,也可能不同,相比于对整个第一文件采用固定的加密算法加密,本技术所采用的加密方案更能保证第一文件的安全性。
180.需要说明的是,多个预设第一加密算法可以按照实际需求设置,本技术对此不作限制。例如,以针对单个字节进行加密操作为例,位、字节是计算机数据存储的单位,每一个位存储一个1位的二进制码,一个字节由八位组成,多个预设第一加密算法包括但不限于移
位算法、按位镜像算法、按位翻转算法。其中,移位算法包括向左循环移动算法及向右循环移动算法,例如,向右循环移动1位即为第八位移动到第一位,依次类推;向左循环移动1位即为第一位移动到第八位,依次类推;按位翻转即为字节内的八位数字,第一位和第五位、第二位和第六位、第三位和第七位、第四位和第八位互换;按位镜像即为一个字节内的八位数字,前四位与后四位镜像交换,第一位和第八位、第二位和第七位、第三位和第六位、第四位和第五位互换。示例性的,如图3所示,假设待加密数据为两个字节,两个字节均为0000 0001,若采用向右循环移动1位算法对其加密,加密后的两个字节均为1000 0000;若采用向左循环移动1位算法对其加密,加密后的两个字节均为0000 0010;若采用按位翻转算法对其加密,加密后的两个字节均为0001 0000;若采用按位镜像算法对其加密,加密后的两个字节均为1000 0000。从图3可以看出,在采用上述4种算法对单字节数据加密之后,不会增加数据的大小,并且加密操作仅是简单的位置交换,不涉及复杂操作,加密速度较快。
181.当然,多个预设第一加密算法还可以包括其它加密算法,本技术对此不作限制,例如,一个字由8个字节组成,可以针对待加密数据中的单个字进行加密操作,预设第一加密算法包括但不限于按字节移位算法、按字节翻转算法、按字节镜像算法等,具体可参考上述针对单个字节的加密算法。
182.需要说明的是,多个预设第一加密算法需要满足加密后的数据与原数据大小一致,也就是说,加密的过程不能增加原数据的数据大小。多个预设第一加密算法还需满足加密可逆,即为根据第一加密算法可以确定出其对应的第一解密算法,例如,在使用按位镜像加密算法对数据进行加密时,会将数据中每个单字节中的前四位与后四位镜像交换,那么,在解密时,将加密数据中的每个单字节中的前四位与后四位镜像交换即可解密该数据。
183.作为一种可能的实现方式,所述根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到加密后的第一文件包括:
184.根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到n个加密后的第一数据块;
185.将n个加密后的第一数据块按照预设顺序合成为加密后的第一文件。
186.具体的,数据处理装置在根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到n个加密后的第一数据块。由于在拆分第一文件时,将第一文件按照预设顺序拆分成n个第一数据块,因此,在得到n个加密后的第一数据块后,数据处理装置可以将n个加密后的第一数据块按照预设顺序合成为加密后的第一文件。
187.示例性的,假设第一文件存储于第一存储设备中,第一文件大小为1gb。数据处理装置预先设置了6种预设第一加密算法,算法1为向左按位移动算法,对应的种子数据为1;算法2为向右循环移动1位算法,对应的种子数据为2;算法3为按位翻转算法,对应的种子数据为3;算法4为按位镜像算法,对应的种子数据为4;算法5为按字节翻转算法,对应的种子数据为5;算法6位按字节镜像算法,对应的种子数据为6,因此,预设种子数据范围为1至6,即为[1,6]。第一设备向数据处理装置发送第一文件加密请求消息,第一文件加密请求消息中携带有第一文件的存储位置信息。数据处理装置接收第一文件加密请求消息,通过解析第一文件加密请求消息,可以获取第一文件的存储位置信息。然后数据处理装置利用内存映射的方式,从第一存储设备中获取第一文件。如图4所示,假设数据处理装置预先设置的预设数据块大小为256mb,由于数据处理装置获取到的第一文件大小为1gb,因此数据处理
装置可以将第一文件按照预设顺序拆分为4个第一数据块,即为第一数据块a、第一数据块b、第一数据块c及第一数据块d,其中,每个第一数据块大小为256mb。然后,由于第一文件的大小为1gb,预设数据块大小为256mb,因此,可以确定第一文件可以拆分为4个第一数据块,因此数据处理装置可以在预设种子范围[1,6]中,随机选择4个种子数据,假设4个种子数据为2、4、3、2。在确定出4个种子数据后,根据4个种子数据可以确定4个待使用第一加密算法分别为算法2、算法4、算法3、算法2。在确定出4个待使用第一加密算法之后,数据处理装置可以确定需使用算法2对第一数据块a进行加密,使用算法4对第一数据块b进行加密,使用算法3对第一数据块c进行加密,使用算法2对第一数据块d进行加密,最终得到加密后的第一数据块a、第一数据块b、第一数据块c及第一数据块d,然后将加密后的第一数据块a、第一数据块b、第一数据块c及第一数据块d按照预设顺序合成为加密后的第一文件。
[0188]
这样一来,数据处理装置在对待加密的第一文件进行加密时,可以将待加密的第一文件拆分为n个第一数据块,同时对n个第一数据块进行加密,从而提高第一文件的加密速度。并且,在确定对第一文件加密需使用的加密算法时,数据处理装置可以在预设种子数据范围内确定出n个种子数据,然后根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,根据n个待使用第一加密算法对n个第一数据块进行加密,无需使用固定的加密算法对n个第一数据块进行加密,从而提高文件的安全性。也就是说,由于n个待使用第一加密算法可能相同,也可能不同,并且第一加密算法是数据处理装置预先设置的,外界无法获知数据处理装置预先设置的多个第一加密算法的内容,从而使得加密算法不易被破解,能够保证文件的安全性。同时,由于使用多个预设第一加密算法中的任意预设第一加密算法对文件进行加密,都不会增加加密后的文件的大小,因此不会导致加密后的文件会占用更多存储空间的问题。
[0189]
参见图5,为本技术实施例提供的另一种数据处理方法的流程示意图。本技术实施例与上述实施例的区别是:增加了对存储的加密后的第一文件执行存储校验的步骤,具体如下:
[0190]
步骤s501、获取待加密的第一文件。
[0191]
具体可参考步骤s101,在此不再赘述。
[0192]
步骤s502、根据预设数据块大小,将第一文件拆分为n个第一数据块。
[0193]
具体可参考步骤s102,在此不再赘述。
[0194]
步骤s503、根据第一文件及所述预设数据块大小,在预设种子数据范围内确定出n个种子数据。
[0195]
具体可参考步骤s103,在此不再赘述。
[0196]
步骤s504、根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
[0197]
具体可参考步骤s104,在此不再赘述。
[0198]
步骤s505、根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到加密后的第一文件。
[0199]
具体可参考步骤s105,在此不再赘述。
[0200]
需要说明的是,在本技术实施例中,对第一文件加密完成之后,可以将n个种子数据及加密后的第一文件存储至第一存储设备。此时,可以直接将第一文件对应的n个种子数
据存储至第一存储设备,为了进一步提高安全性,也可以将n个种子数据加密后再存储至第一存储设备。在直接存储n个种子数据时,执行下述步骤s506a;在将n个种子数据加密后再存储时,执行下述步骤s506b至步骤s507b。
[0201]
步骤s506a、将n个种子数据及加密后的第一文件存储至第一存储设备。
[0202]
在本技术实施例中,数据处理装置可以将加密后的第一文件存储至第一存储设备,以使得第一存储设备中存储的是加密后的第一文件。并且,由于在读取加密后的第一文件时需要对加密后的第一文件进行解密才能得到第一文件的具体内容,在解密时需先确定在加密第一文件时所使用的加密算法,因此数据处理装置需要记录加密第一文件所使用的第一加密算法。那么,在对待加密第一文件进行加密时,数据处理装置可以将n个种子数据存储至第一存储设备,这样一来,根据n个种子数据,数据处理装置便可以获知加密第一文件所使用的加密算法。
[0203]
作为一种可能的实现方式,所述将n个种子数据及加密后的第一文件存储至第一存储设备包括:
[0204]
利用内存映射的方式,将n个种子数据及加密后的第一文件存储至第一存储设备。
[0205]
具体的,在获取待加密的第一文件时,数据处理装置可以根据第一文件的存储位置信息,采用内存映射的方式映射第一存储设备中存储的第一文件,无需执行从第一存储设备中读取第一文件的操作。那么,在对第一文件加密完成后,数据处理装置同样可以采用内存映射的方式,将n个种子数据及加密后的第一文件存储至第一存储设备,即为,根据第一文件的存储位置信息,将n个种子数据及加密后的第一文件映射至第一文件的原存储位置,以使得第一存储设备中存储的是加密后的第一文件。这样一来,在对第一文件加密完成后,无需执行数据写入操作,直接将n个种子数据及加密后的第一文件映射至第一存储设备即可完成存储操作,节省数据写入的时间,特别是在第一文件为大文件时,能够大幅度提高第一文件的存储效率。
[0206]
步骤s506b、根据预设第二加密算法,对n个种子数据进行加密处理,得到n个加密后的种子数据。
[0207]
具体的,为了进一步提高加密算法的安全性,在存储n个种子数据之前,数据处理装置可以根据预设第二加密算法,对n个种子数据进行加密处理,得到n个加密后的种子数据。
[0208]
需要说明的是,预设第二加密算法可以根据实际需求设置,例如,可以是数据加密标准(data encryption standard,des)算法,还可以是高级加密标准(advanced encryption standard,aes)算法,当然,还可以是其他加密算法,本技术对此不作限制。
[0209]
步骤s507b、将n个加密后的种子数据及加密后的第一文件存储至第一存储设备。
[0210]
具体的,在得到n个加密后的种子数据后,可以将n个加密后的种子数据及加密后的第一文件存储至第一存储设备。
[0211]
具体可参考步骤s506a,在此不再赘述。
[0212]
步骤s508、将n个加密后的第一数据块存储至第二存储设备。
[0213]
具体的,由于存储过程的复杂性,在存储第一文件时可能会损坏第一文件,因此,数据处理装置可以将n个加密后的第一数据块存储至第二存储设备,作为第一文件的备份。这样一来,假设第一设备需获取第一文件,当数据处理装置获取到加密后的第一文件之后,
若确定在第一存储设备中存储的加密后的第一文件损坏,则可以从第二存储设备中获取备份的第一文件,从而避免第一文件发生损坏时影响第一设备的使用。
[0214]
步骤s509、根据n个加密后的第一数据块,生成n个加密后的第一数据块所用的第一校验值。
[0215]
具体的,针对n个加密后的第一数据块中的每个第一数据块,数据处理装置可以利用预设校验算法,生成每个第一数据块对应的第一校验值,得到n个加密后的第一数据块所用的第一校验值。也就是说,n个加密后的第一数据块所用的第一校验值中包括每个加密后的第一数据块对应的第一校验值。
[0216]
需要说明的是,预设校验算法可以是信息-摘要算法(message-digest algorithm5,md5),或者安全散列算法1(secure hash algorithm1,sha-1),当然,还可以是其他校验算法,本技术对此不作限制。
[0217]
步骤s510、将n个加密后的第一数据块所用的第一校验值存储至第一存储设备。
[0218]
具体的,数据处理装置在生成n个加密后的第一数据块所用的第一校验值后,可以将n个加密后的第一数据块所用的第一校验值存储至第一存储设备。
[0219]
步骤s511、从第一存储设备中读取n个加密后的第一数据块所用的第一校验值及加密后的第一文件。
[0220]
具体的,在将n个加密后的第一数据块所用的第一校验值存储至第一存储设备之后,数据处理装置可以验证加密后的第一文件在存储过程中是否发生损坏。此时,数据处理装置可以从第一存储设备中读取n个加密后的第一数据块所用的第一校验值及加密后的第一文件。
[0221]
步骤s512、根据预设数据块大小,将读取的加密后的第一文件拆分为n个第二数据块。
[0222]
具体的,在读取到加密后的第一文件之后,根据预设数据块大小,将读取的加密后的第一文件拆分为n个第二数据块,具体可参考步骤s102,在此不再赘述。
[0223]
步骤s513、根据n个第二数据块,生成n个第二数据块所用的第二校验值。
[0224]
具体的,在将加密后的第一文件之后,针对n个第二数据块中的每个第二数据块,数据处理装置利用预设校验算法,生成每个第二数据块对应的第二校验值,最终得到n个第二数据块所用的第二校验值。即为n个第二数据块所用的第二校验值中包括每个第二数据块中的每个第二数据块对应的第二校验值。
[0225]
步骤s514、根据n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值检测存储的加密后的第一文件是否损坏。
[0226]
具体的,在生成n个第二数据块所用的第二校验值后,由于n个第二数据块所用的第二校验值中包括每个第二数据块对应的第二校验值,n个第一数据块所用的第一校验值中包括每个第一数据块对应的第一校验值,因此可以将n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值进行一一比对,以检测存储的加密后的第一文件是否损坏。若n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值一致,则确定存储的加密后的第一文件未损坏;若n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值不一致,则确定存储的加密后的第一文件损坏,执行步骤s415。
[0227]
步骤s515、若损坏,则获取第二存储设备中存储的n个加密后的第一数据块,并根据获取的第二存储设备中存储的n个加密后的第一数据块更新第一存储设备中存储的加密后的第一文件。
[0228]
在本技术实施例中,若数据处理装置检测到存储的加密后的第一文件损坏,则需要对第一存储设备中存储的已损坏的加密后的第一文件进行恢复。此时,数据处理装置可以获取第二存储设备中存储的n个加密后的第一数据块,并根据获取的第二存储设备中存储的n个加密后的第一数据块更新第一存储设备中存储的加密后的第一文件,即为,将第一存储设备中存储的加密后的第一文件替换为获取的第二存储设备中存储的n个加密后的第一数据块。
[0229]
进一步地,所述若损坏,则获取第二存储设备中存储的n个加密后的第一数据块,并根据获取的第二存储设备中存储的n个加密后的第一数据块更新第一存储设备中存储的加密后的第一文件包括:
[0230]
若损坏,则根据n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值确定损坏的第一数据块;
[0231]
在第二存储设备中获取目标第一数据块,并根据获取的目标第一数据块更新第一存储设备中存储的目标第一数据块,目标第一数据块是损坏的第一数据块对应的未损坏数据块。
[0232]
具体的,由于第一存储设备中存储的n个加密后的第一数据块中可能只有部分数据块被损坏,因此可以只更新第一存储设备中存储的损坏的第一数据块。此时,数据处理装置可以先确定出损坏的第一数据块。即为,在n个加密后的第一数据块所用的第一校验值中,确定出与n个第二数据块所用的第二校验值不一致的第一校验值,将该第一校验值对应的第一数据块确定为损坏的第一数据块。根据损坏的第一数据块的标识信息,在第二存储设备中获取损坏的第一数据块对应的未损坏数据块,即为目标第一数据块。然后根据获取的目标第一数据块,将第一存储设备中存储的损坏的第一数据块替换为获取的目标第一数据块。这样一来,可以只从第二存储设备中获取目标第一数据块,然后将第一存储设备中存储的损坏的第一数据块更新为目标第一数据块,无需从第二存储设备中获取全部n个加密后的第一数据块,将第一存储设备中存储的完整的加密后的第一文件全部更新,从而提高写入校验的效率。
[0233]
需要说明的是,上述步骤s509至步骤s515为第一文件的存储校验过程,通过执行上述存储校验步骤,可以确保第一存储设备中存储的加密后的第一文件的完整性,在加密后的第一文件在存储过程中发生损坏时,及时将损坏的第一数据块更新为未损坏的第一数据块。
[0234]
参见图6,为本技术实施例提供的另一种数据处理方法的流程示意图。在本技术实施例中,数据处理装置获取加密后的第二文件并对其进行解密的过程具体如下。
[0235]
步骤s601、获取加密后的第二文件及第二文件对应的n个种子数据。
[0236]
其中,n为正整数。
[0237]
具体的,数据处理装置在确定需获取第二文件时,可以从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据。例如,第二设备向数据处理装置发送读取第二文件的请求消息,数据处理装置接收读取第二文件的请求消息,确定需获取第二文件。
此时,数据处理装置根据读取第二文件的请求消息获取该请求消息中携带的第二文件的标识信息,然后根据第二文件的标识信息,从第一存储设备中读取加密后的第二文件及第二文件对应的n个种子数据。还可以是,数据处理装置可以向第一存储设备发送获取请求消息,获取请求消息用于获取第二文件及第二文件对应的n个种子数据。第一存储设备在接收到获取请求消息之后将加密后的第二文件及第二文件对应的n个种子数据返回给数据处理装置,数据处理装置接收加密后的第二文件及第二文件对应的n个种子数据。数据处理装置还可以通过其他方式从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据,本技术对此不作限制。
[0238]
作为一种可能的实现方式,所述获取加密后的第二文件及第二文件对应的n个种子数据包括:
[0239]
接收第二设备发送的用于读取第二文件的请求消息。其中,用于读取第二文件的请求消息中携带有第二文件的标识信息。
[0240]
根据所述用于读取第二文件的请求消息中携带的第二文件的标识信息,从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据。
[0241]
具体的,第二设备在需要读取第二文件时,会向数据处理装置发送用于读取第二文件的请求消息,以告知数据处理装置需要读取第二文件。数据处理装置接收到第二设备发送的用于读取第二文件的请求消息,通过解析该请求消息,获知第二文件的标识信息。根据第二文件的标识信息,从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据。
[0242]
进一步地,所述从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据包括:
[0243]
利用内存映射的方式,从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据。
[0244]
具体的,在第二文件为大文件时,从第一存储设备中读取加密后的第二文件及第二文件对应的n个种子数据的速度较慢,并且由于第二文件较大,可能会存在读取失败的问题。因此,在本技术实施例中,数据处理装置可以利用内存映射的方式获取加密后的第二文件及第二文件对应的n个种子数据,首先,根据第二文件的标识信息,确定第二文件在第一存储设备中的存储位置,然后将第一存储设备中存储的加密后的第二文件及第二文件对应的n个种子数据映射至内存映射文件中,数据处理装置便可以直接对内存映射文件中的数据执行相关操作。由于通过内存映射方式从第一存储设备中获取第二文件时,无需对第二文件执行i/o操作,可以节省数据读取的时间,从而提高数据处理效率。
[0245]
步骤s602、根据预设数据块大小,将加密后的第二文件拆分为n个第三数据块。
[0246]
具体的,数据处理装置在获取到加密后的第二文件之后,由于第二文件在加密时是拆分之后进行加密的,因此在获取到加密后的第二文件之后,需要先拆分第二文件,再针对拆分后的n个第三数据块进行解密。也就是说,数据处理装置需要根据预设数据块大小,将加密后的第二文件拆分为n个第三数据块。
[0247]
作为一种可能的实现方式,所述根据预设数据块大小,将加密后的第二文件拆分为n个第三数据块包括:
[0248]
根据预设数据块大小,将加密后的第二文件按照预设顺序拆分为n个第三数据块。
[0249]
具体的,在对第二文件进行加密时,数据处理装置按照预设顺序将第二文件拆分为n个数据块之后再分别进行加密,因此,数据处理装置在拆分加密后的第二文件时,也按照预设顺序将第二文件拆分为n个第三数据块,才能保证拆分后的n个第三数据块中的数据内容与加密时拆分成的n个数据块中的数据内容相对应。
[0250]
步骤s603、根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
[0251]
其中,n个待使用第一加密算法与n个种子数据相对应。
[0252]
具体的,在获取到n个种子数据之后,由于每个种子数据对应一种待使用第一加密算法,因此,根据n个种子数据,在多个预设第一加密算法中,可以确定出n个待使用第一加密算法。
[0253]
作为一种可能的实现方式,所述根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法包括:
[0254]
在获取的第二文件对应的n个种子数据为n个加密后的种子数据时,根据预设第二解密算法,对n个加密后的种子数据进行解密处理,得到n个解密后的种子数据;
[0255]
根据n个解密后的种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
[0256]
具体的,若数据处理装置在存储第二文件对应的n个种子数据时,将第二文件对应的n个种子数据根据预设第二加密算法加密之后再存储至第一存储设备,那么,数据处理装置此时获取到的第二文件对应的n个种子数据为n个加密后的种子数据。数据处理装置可以根据预设第二解密算法,对n个加密后的种子数据进行解密处理,得到n个解密后的种子数据。然后根据n个解密后的种子数据,确定出n个待使用第一加密算法。
[0257]
步骤s604、根据n个待使用第一加密算法确定n个待使用第一解密算法,并根据n个待使用第一解密算法对n个第三数据块分别进行解密处理,得到解密后的第二文件。
[0258]
在本技术实施例中,数据处理装置预先设置的多个预设第一加密算法都满足可逆性,也就是说,根据n个待使用第一加密算法,可以确定出n个待使用第一解密算法。例如,假设待使用第一加密算法为向右按位移动1位算法,那么其对应的待使用第一解密算法为向左按位移动1位算法。然后根据n个待使用第一解密算法,对n个第三数据块分别进行解密处理,即为,利用第一个待使用第一解密算法对第一个第三数据块解密处理,利用第二个待使用第一解密算法对第二个第三数据块进行解密处理,依次类推,最终得到n个解密后的第三数据块。并将n个解密后的第三数据块合成为解密后的第二文件,这样一来,数据处理装置可以完成对加密后的第二文件的解密操作。
[0259]
作为一种可能的实现方式,所述根据n个待使用第一加密算法确定n个待使用第一解密算法,并根据n个待使用第一解密算法对n个第三数据块分别进行解密处理,得到解密后的第二文件包括:
[0260]
根据n个待使用第一加密算法确定n个待使用第一解密算法,并根据n个待使用第一解密算法对n个第三数据块分别进行解密处理,得到n个解密后的第三数据块。
[0261]
将n个解密后的第三数据块按照预设顺序合成为解密后的第二文件。
[0262]
具体的,数据处理装置根据n个待使用第一加密算法确定n个待使用第一解密算法,然后根据n个待使用第一解密算法,对n个第三数据块分别进行解密处理,利用第一个待
使用第一解密算法对第一个第三数据块解密处理,利用第二个待使用第一解密算法对第二个第三数据块进行解密处理,依次类推,最终得到n个解密后的第三数据块。由于在拆分时按照预设顺序将加密后的第二文件拆分为n个第三数据块,因此需要将n个解密后的第三数据块按照预设顺序合成为解密后的第二文件。
[0263]
示例性的,假设第二设备需要读取第二文件,第二设备向数据处理装置发送用于读取第二文件的请求消息。数据处理装置接收用于读取第二文件的请求消息,通过解析该请求消息,得到第二文件的标识信息。根据第二文件的标识信息,采用内存映射的方式,获取加密后的第二文件及第二文件对应的4个种子数据。即为,根据第二文件的标识信息,确定加密后的第二文件及第二文件对应的4个种子数据在第一存储设备中的存储位置,根据加密后的第二文件及第二文件对应的4个种子数据在第一存储设备中的存储位置,将加密后的第二文件及第二文件对应的4个种子数据映射至内存映射文件中。如图7所示,在获取到加密后的第二文件及第二文件对应的4个种子数据之后,根据预设数据块大小,将加密后的第二文件安预设顺序拆分为4个第三数据块,即第三数据块e、第三数据块f、第三数据块g、第三数据块h。
[0264]
由于第二文件对应的4个种子数据为加密后的种子数据,因此,数据处理装置根据预设第二解密算法,对4个解密后的种子数据进行解密处理,得到4个解密后的种子数据。假设第二文件对应的4个种子数据分别为2、8、13、2。由于每个种子数据都对应一种待使用第一加密算法,因此,根据第二文件对应的4个种子数据,可以确定出4个待使用第一加密算法(算法2、算法8、算法13、算法2),假设算法2为向左按位移动1位算法,算法8为按位翻转算法,算法13为向右按字节移动2位算法。由于4个待使用第一加密算法都是可逆的,因此根据4个待使用第一加密算法,可以确定出对应的4个待使用第一解密算法。其中,算法2对应的待使用第一解密算法为向右按位移动1位算法,算法8对应的待使用第一解密算法为按位翻转算法,算法13对应的待使用第一解密算法为向左按字节移动2位算法。根据4个待使用第一解密算法对4个第三数据块进行解密处理,其中,对第三数据块e采用向右按位移动1位算法解密、对第三数据块f采用按位翻转算法解密、第三数据块g采用向左按字节移动2位算法解密、对第三数据块h采用向右按位移动1位算法解密。最终得到4个解密后的第三数据块,将解密后的4个第三数据块按照预设顺序合成为解密后的第二文件。
[0265]
参考图8,为本技术实施例提供的另一种数据处理方法的流程示意图。
[0266]
步骤s801、获取加密后的第二文件及第二文件对应的n个种子数据。
[0267]
其中,n为正整数。
[0268]
具体可参考步骤s601,在此不再赘述。
[0269]
步骤s802、根据预设数据块大小,将加密后的第二文件拆分为n个第三数据块。
[0270]
具体可参考步骤s602,在此不再赘述。
[0271]
步骤s803、根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,并根据n个待使用第一加密算法确定n个待使用第一解密算法。
[0272]
其中,n个待使用第一加密算法与n个种子数据相对应。
[0273]
具体可参考步骤s603,在此不再赘述。
[0274]
步骤s804、获取第一存储设备中存储的第二文件的n个第三数据块所用的第一校验值。
[0275]
具体的,在对第二文件的n个第三数据块进行解密之前,可以先确定读取的第二文件是否存在损坏。由于数据处理装置在对第二文件进行加密时,会生成第二文件的n个第三数据块所用的第一校验值,并将其存储至第一存储设备,因此数据处理装置可以从第一存储设备中获取第二文件的n个第三数据块所用的第一校验值。例如,数据处理装置可以向第一存储设备发送用于读取第二文件的n个第三数据块所用的第一校验值的请求消息,第一存储设备接收到该请求消息之后将第二文件的n个第三数据块所用的第一校验值返回给数据处理装置。当然,数据处理装置还可以根据第二文件的标识信息,确定第二文件的n个第三数据块所用的第一校验值的存储位置信息,从第一存储设备中读取第二文件的n个第三数据块所用的第一校验值。当然,还可以通过其它方式获取第一存储设备中存储的第二文件的n个第三数据块所用的第一校验值,本技术对此不作限制。
[0276]
步骤s805、根据n个第三数据块,生成n个第三数据块所用的第二校验值。
[0277]
具体的,数据处理装置根据n个第三数据块,利用预设校验算法,生成n个第三数据块所用的第二校验值,以便后续可以将n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值进行比对,以检测n个第三数据块是否发生损坏。
[0278]
步骤s806、根据n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值,检测读取的第二文件是否损坏。
[0279]
具体的,n个第三数据块所用的第二校验值中包括每个第三数据块对应的第二校验值,n个第三数据块所用的第一校验值中包括每个第三数据块对应的第一校验值,数据处理装置可以将n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值进行一一比对,检测读取的第二文件是否损坏。若n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值完全一致,则确定检测到读取的第二文件未损坏,执行步骤s707a;若n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值不完全一致,说明存在损坏的第三数据块,则确定读取的第二文件已损坏,此时执行步骤s707b至步骤s408b。
[0280]
步骤s807a、若检测到读取的第二文件未损坏,则根据n个待使用第一解密算法对n个第三数据块分别进行解密处理,得到解密后的第二文件。
[0281]
具体可参考步骤s604,在此不再赘述。
[0282]
步骤s807b、若检测到读取的第二文件已损坏,则根据第二存储设备中存储的第二文件对应的n个第三数据块,更新已获取的n个第三数据块。
[0283]
在本技术实施例中,若检测到读取的第二文件已损坏,则说明第二文件的n个第三数据块中存在损坏的第三数据块。由于第二存储设备中备份有第二文件对应的n个第三数据块,因此数据处理装置可以从第二存储设备中获取第二文件对应的n个第三数据块,将已获取的n个第三数据块更新为从第二存储设备中获取的第二文件对应的n个第三数据块,这样一来,可以保证已获取的n个第三数据块为未损坏的第三数据块。
[0284]
所述若检测到读取的第二文件已损坏,则根据第二存储设备中存储的第二文件对应的n个第三数据块,更新已获取的n个第三数据块包括:
[0285]
若检测到读取的第二文件已损坏,则根据n个第三数据块所用的第二校验值及n个第三数据块所用的第一校验值确定已损坏的第三数据块;
[0286]
根据已损坏的第三数据块在第二存储设备中获取目标第三数据块,并根据目标第
三数据块,更新已获取的n个第三数据块中的已损坏的第三数据块。
[0287]
其中,目标第三数据块是已损坏的第三数据块对应的未损坏数据块。
[0288]
具体的,若检测到读取的第二文件已损坏,则将n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值进行一一比对,在n个第三数据块所用的第一校验值中,确定出与n个第三数据块所用的第二校验值不一致的第一校验值,将该第一校验值对应的第三数据块确定为已损坏的第三数据块。根据已损坏的第三数据块,数据处理装置可以在第二存储设备中获取已损坏的第三数据块对应的未损坏数据块,即为目标第三数据块。然后数据处理装置可以将已获取的n个第三数据块中的已损坏的第三数据块更新为目标第三数据块。这样一来,便可以恢复已获取的n个第三数据块中的已损坏的第三数据块。
[0289]
步骤s808b、根据n个待使用第一解密算法对更新后的n个第三数据块分别进行解密处理,得到解密后的第二文件。
[0290]
具体可参考步骤s604,在此不再赘述。
[0291]
步骤s809、向第二设备发送解密后的第二文件。
[0292]
具体的,在得到解密后的第二文件之后,向第二设备发送解密后的第二文件。
[0293]
图9为本技术实施例提供的一种数据处理装置的结构示意图。如图8所示,该装置包括:
[0294]
获取单元901,用于获取待加密的第一文件;
[0295]
处理单元902,用于:根据预设数据块大小,将第一文件拆分为n个第一数据块,n为正整数;根据第一文件及所述预设数据块大小,在预设种子数据范围内确定出n个种子数据;其中,预设种子数据范围内包含有至少一个种子数据,且每个种子数据对应一种预设第一加密算法,不同种子数据对应的预设第一加密算法不同;根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,n个待使用第一加密算法与n个种子数据相对应;根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到加密后的第一文件。
[0296]
作为一种可能的实现方式,处理单元902,具体用于根据预设数据块大小,将第一文件按照预设顺序拆分为n个第一数据块。
[0297]
作为一种可能的实现方式,处理单元902,具体用于根据n个待使用第一加密算法对n个第一数据块分别进行加密处理,得到n个加密后的第一数据块;将n个加密后的第一数据块按照预设顺序合成为加密后的第一文件。
[0298]
作为一种可能的实现方式,处理单元902,还用于将n个种子数据及加密后的第一文件存储至第一存储设备。
[0299]
作为一种可能的实现方式,处理单元902,还用于根据预设第二加密算法,对n个种子数据进行加密处理,得到n个加密后的种子数据;将n个加密后的种子数据及加密后的第一文件存储至第一存储设备。
[0300]
作为一种可能的实现方式,处理单元902,还用于将n个加密后的第一数据块存储至第二存储设备;根据n个加密后的第一数据块,生成n个加密后的第一数据块所用的第一校验值;将n个加密后的第一数据块所用的第一校验值存储至第一存储设备。
[0301]
作为一种可能的实现方式,处理单元902,还用于从第一存储设备中读取n个加密后的第一数据块所用的第一校验值及加密后的第一文件;根据预设数据块大小,将读取的
加密后的第一文件拆分为n个第二数据块;根据n个第二数据块,生成n个第二数据块所用的第二校验值;根据n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值检测存储的加密后的第一文件是否损坏;若损坏,则获取第二存储设备中存储的n个加密后的第一数据块,并根据获取的第二存储设备中存储的n个加密后的第一数据块更新第一存储设备中存储的加密后的第一文件。
[0302]
作为一种可能的实现方式,处理单元902,具体用于若损坏,则根据n个第二数据块所用的第二校验值与n个加密后的第一数据块所用的第一校验值确定损坏的第一数据块;在第二存储设备中获取目标第一数据块,并根据获取的目标第一数据块更新第一存储设备中存储的目标第一数据块,目标第一数据块是损坏的第一数据块对应的未损坏数据块。
[0303]
作为一种可能的实现方式,获取单元901,具体用于接收第一设备发送的第一文件加密请求消息,第一文件加密请求信息中携带有第一文件的存储位置信息,其中,第一文件存储于所述第一存储设备中;根据第一文件的存储位置信息,利用内存映射的方式获取第一存储设备中存储的待加密的第一文件;
[0304]
处理单元902,具体用于利用内存映射的方式,将n个种子数据及加密后的第一文件存储至第一存储设备。
[0305]
参见图10,本技术提供了一种数据处理装置,包括:
[0306]
获取单元1001,用于获取加密后的第二文件及第二文件对应的n个种子数据,n为正整数;
[0307]
处理单元1002,用于:根据预设数据块大小,将加密后的第二文件拆分为n个第三数据块;根据n个种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法,n个待使用加密算法与n个种子数据相对应;根据n个待使用第一加密算法确定n个待使用第一解密算法,并根据n个待使用第一解密算法对n个第三数据块分别进行解密处理,得到解密后的第二文件。
[0308]
作为一种可能的实现方式,获取单元单元1001,具体用于接收第二设备发送的用于读取第二文件的请求消息,用于读取第二文件的请求消息中携带有第二文件的标识信息;根据用于读取第二文件的请求消息中携带的第二文件的标识信息,从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据。
[0309]
作为一种可能的实现方式,获取单元单元1001,具体用于利用内存映射的方式,从第一存储设备中获取加密后的第二文件及第二文件对应的n个种子数据。
[0310]
作为一种可能的实现方式,处理单元1002,还用于向第二设备发送解密后的第二文件。
[0311]
作为一种可能的实现方式,处理单元1002,具体用于在获取的第二文件对应的n个种子数据为n个加密后的种子数据时,根据预设第二解密算法,对n个加密后的种子数据进行解密处理,得到n个解密后的种子数据;根据n个解密后的种子数据,在多个预设第一加密算法中确定出n个待使用第一加密算法。
[0312]
作为一种可能的实现方式,处理单元1002,具体用于根据预设数据块大小,将加密后的第二文件按照预设顺序拆分为n个第三数据块。
[0313]
作为一种可能的实现方式,处理单元1002,具体用于根据n个待使用第一加密算法确定n个待使用第一解密算法,并根据n个待使用第一解密算法对n个第三数据块分别进行
解密处理,得到n个解密后的第三数据块;将n个解密后的第三数据块按照预设顺序合成为解密后的第二文件。
[0314]
作为一种可能的实现方式,获取单元单元1001,还用于获取第一存储设备中存储的第二文件的n个第三数据块所用的第一校验值。
[0315]
作为一种可能的实现方式,处理单元1002,还用于根据n个第三数据块,生成n个第三数据块所用的第二校验值;根据n个第三数据块所用的第二校验值与获取的n个第三数据块所用的第一校验值,检测读取的第二文件是否损坏;
[0316]
处理单元1002,具体用于若检测到读取的第二文件未损坏,则根据n个待使用第一解密算法对n个第三数据块分别进行解密处理。
[0317]
作为一种可能的实现方式,处理单元1002,还用于若检测到读取的第二文件已损坏,则根据第二存储设备中存储的第二文件对应的n个第三数据块,更新已获取的n个第三数据块;根据n个待使用第一解密算法对更新后的n个第三数据块分别进行解密处理。
[0318]
作为一种可能的实现方式,处理单元1002,具体用于若检测到读取的第二文件已损坏,则根据n个第三数据块所用的第二校验值及n个第三数据块所用的第一校验值确定已损坏的第三数据块;根据已损坏的第三数据块在第二存储设备中获取目标第三数据块,并根据目标第三数据块,更新已获取的n个第三数据块中的已损坏的第三数据块,目标第三数据块是已损坏的第三数据块对应的未损坏数据块。
[0319]
与上述实施例相对应,本技术还提供了一种电子设备。图11为本发明实施例提供的一种电子设备的结构示意图,所述电子设备1100可以包括:处理器1101、存储器1102及通信单元1103。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0320]
其中,所述通信单元1103,用于建立通信信道,从而使所述电子设备可以与其它设备进行通信。接收其他设备发送的用户数据或者向其他设备发送用户数据。
[0321]
所述处理器1101,为电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器1101可以仅包括中央处理器(central processing unit,cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
[0322]
所述存储器1102,用于存储处理器1101的执行指令,存储器1102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0323]
当存储器1102中的执行指令由处理器1101执行时,使得电子设备1000能够执行图5或图8所示实施例中的部分或全部步骤。
[0324]
具体实现中,本发明还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序执行时可包括本发明提供的数据处理方法的各实施例中的部分或
全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0325]
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0326]
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例和终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1