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

数据存储方法和数据存储装置与流程

2022-03-05 08:19:53 来源:中国专利 TAG:


1.本技术涉及数据存储领域,尤其涉及一种数据存储方法和数据存储装置。


背景技术:

2.在数据存储领域,去重技术在网盘和内容分发网络(content delivery network,cdn)中被广泛应用。在数据存储时,若没有使用去重技术,需要将相同的数据多次存储、多次传输,若使用了去重技术,可以将相同的数据只存储一次、传输一次,大大降低数据存储成本和数据传输效率。
3.目前的数据存储方式可以包括明文、统一密钥加密以及用户自定义加密的方式。其中,明文和统一密钥加密方式,数据中心的运维人员可以查看所有数据,可以将对重复的数据进行去重,但安全性较低。用户自定义加密的方式,不同的用户对数据使用不同的密钥进行加密,得到不同的密文,可以提高安全性,但会增加数据去重的难度。因此,目前的数据存储方式无法兼顾数据安全和数据去重。


技术实现要素:

4.本技术提供了一种数据存储方法和数据存储装置,有利于在数据存储时兼顾数据安全和数据去重。
5.第一方面,本技术提供了一种数据存储方法,包括:客户端获取第一文件的多个数据块、多个数据块中每个数据块的标识和每个数据块的收敛密钥;客户端向服务器发送每个数据块的标识;客户端接收服务器根据每个数据块的标识发送的待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传数据块为多个数据块中的全部或部分数据块;客户端通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密,得到至少一个待上传数据块的密文;客户端向服务器发送至少一个待上传数据块的密文和至少一个待上传数据块的收敛密钥密文,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
6.本技术提供的数据存储方法,根据数据来块的标识,确定服务器中未存储的数据块,进而确定待上传数据块列表,实现数据去重,有利于提高数据传输效率,降低数据存储成本,另外,客户端通过收敛密钥对待上传的数据块进行加密,并通过第一公钥对收敛密钥进行加密,通过加密的方式有利于提高数据传输的安全性。因此,该方法可以同时兼顾数据安全和数据去重,有利于降低数据存储成本和数据传输效率。
7.结合第一方面,在第一方面的某些实现方式中,上述客户端向服务器发送每个数据块的标识,包括:客户端基于每个数据块的标识构建哈希树,并向服务器发送哈希树的信息,哈希树的叶节点为每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;客户端接收服务器根据每个数据块的标识发送的待上传数据块列表,包括:客户端接收服务器根据哈希树的信息发送的待上传数据块列表。
8.本技术提供的数据存储方法,服务器可以根据客户端发送的哈希树信息进行自检验,验证数据块的完整性,有利于保证接收到的数据块不被遗漏和篡改,同时,服务器可以根据客户端发送的哈希树的叶节点的信息,确定服务器中未存储的数据块,进而确定待上传数据块列表,实现数据去重,有利于提高数据传输效率,降低数据存储成本。
9.结合第一方面,在第一方面的某些实现方式中,上述方法还包括:客户端通过第一密钥对中的第一私钥对第一元组进行签名,得到签名后的第一元组,第一元组包括根节点的信息、第一文件的文件名以及第一文件的版本号;客户端向服务器发送签名后的第一元组。
10.本技术提供的数据存储方法,客户端通过第一私钥对第一元组进行签名,有利于后续服务器根据第一元组的信息和哈希树的信息再次验证数据的完整性,进一步提高数据的安全性。
11.结合第一方面,在第一方面的某些实现方式中,上述方法还包括:客户端向服务器发送下载第一文件的请求;客户端接收来自服务器的多个数据块的密文和多个数据块的收敛密钥密文;客户端通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥;客户端通过多个数据块的收敛密钥对多个数据块的密文进行解密,得到多个数据块。
12.本技术提供的数据存储方法,客户端下载服务器存储的第一文件,通过两次解密的方式,得到第一文件的多个数据块,有利于提高数据传输的安全性。
13.结合第一方面,在第一方面的某些实现方式中,上述方法还包括:客户端接收来自服务器的签名后的第一元组;客户端利用第一公钥对签名后的第一元组进行完整性验证。
14.本技术提供的数据存储方法,利用第一公钥对签名后的第一元组进行完整性验证,有利于保证数据的完整,进一步提高数据传输的安全性。
15.结合第一方面,在第一方面的某些实现方式中,上述方法还包括:客户端向服务器发送与另一客户端共享第一文件的请求;客户端接收来自服务器的另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文;客户端通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥;客户端通过第二公钥分别对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文;客户端向服务器发送多个数据块的新收敛密钥密文。
16.本技术提供的数据存储方法,客户端与另一客户端共享文件时,客户端可以先通过服务器获取另一客户端的第二公钥,并基于第二公钥对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文,另一客户端通过服务器获取多个数据块的新收敛密钥密文和多个数据块的密钥密文,可以通过自己生成的第二公钥对多个数据块的新收敛密钥密文进行解密,得到可以解密多个数据块的密钥密文的收敛密钥,进而得到多个数据块。该方法中,客户端与另一客户端之间无需暴露自己的公钥即可实现共享文件,可以提供数据传输的安全性。
17.第二方面,本技术提供了一种数据存储方法,包括:服务器接收来自客户端的多个数据块中每个数据块的标识;服务器将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传
数据块为多个数据块中的全部或部分数据块;服务器向客户端发送待上传数据块列表;服务器接收来自客户端的至少一个待上传数据块的密文和及至少一个待上传数据块的收敛密钥密文,其中,至少一个待上传数据块的密文是通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密得到的,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
18.结合第二方面,在第二方面的某些实现方式中,服务器接收来自客户端的多个数据块中每个数据块的标识,包括:服务器接收来自客户端的哈希树的信息,哈希树是基于第一文件的多个数据块的标识构建的,哈希树的叶节点为多个数据块中每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;在服务器接收来自客户端的多个数据块中每个数据块的标识之后,方法还包括:服务器利用根节点的信息和叶节点的信息进行完整性校验;服务器将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表,包括:在通过完整性校验的情况下,服务器将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表。
19.结合第二方面,在第二方面的某些实现方式中,方法还包括:服务器接收来自客户端的签名后的第一元组,第一元组包括根节点信息、第一文件的文件名以及第一文件的版本号,签名后的第一元组是通过第一密钥对中的第一私钥对第一元组进行签名得到的;服务器利用第一公钥对签名后的第一元组再次进行完整性验证。
20.结合第二方面,在第二方面的某些实现方式中,上述方法包括:服务器接收来自客户端的下载第一文件的请求;服务器基于下载第一文件的请求,向客户端发送多个数据块的密文以及多个数据块的收敛密钥密文。
21.结合第二方面,在第二方面的某些实现方式中,上述方法还包括:服务器接收来自客户端的与另一客户端共享第一文件的请求;服务器基于与另一客户端共享第一文件的请求,向客户端发送另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文;服务器接收来自客户端的多个数据块的新收敛密钥密文,多个数据块的新收敛密钥密文是通过第二公钥对多个数据块的收敛密钥进行加密得到的;服务器向另一客户端发送多个数据块的新收敛密钥密文和多个数据块的密文。
22.第三方面,本技术提供了一种数据存储装置,包括:处理模块和收发模块。其中,处理模块,用于获取第一文件的多个数据块、多个数据块中每个数据块的标识和每个数据块的收敛密钥;基于每个数据块的标识构建哈希树;收发模块,用于向服务器发送哈希树的信息,哈希树的叶节点为每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;接收服务器根据哈希树的信息发送的待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传数据块为多个数据块中的全部或部分数据块;处理模块还用于:通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密,得到至少一个待上传数据块的密文;通过第一密钥对中的第一私钥对第一元组进行签名,得到签名后的第一元组,第一元组包括根节点的信息、第一文件的文件名以及第一文件的版本号;收发模块还用于:向服务器发送签名后的第一元组、至少一个待上传数据块的密文以及至少一个待上传数据块的收敛密钥密文,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
23.结合第三方面,在第三方面的某些实现方式中,上述收发模块还用于:向服务器发送下载第一文件的请求;接收来自服务器的多个数据块的密文和多个数据块的收敛密钥密文;上述处理模块还用于:通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥;通过多个数据块的收敛密钥对多个数据块的密文进行解密,得到多个数据块。
24.结合第三方面,在第三方面的某些实现方式中,上述收发模块用于:接收来自服务器的签名后的第一元组;利用第一公钥对签名后的第一元组进行完整性验证。
25.结合第三方面,在第三方面的某些实现方式中,上述收发模块还用于:向服务器发送与另一客户端共享第一文件的请求;接收来自服务器的另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文;上述处理模块用于:通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥;通过第二公钥分别对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文;收发模块还用于:向服务器发送多个数据块的新收敛密钥密文。
26.第四方面,本技术提供了一种数据存储装置,该装置包括:收发模块和处理模块。其中,收发模块,用于接收来自客户端的哈希树的信息,哈希树是基于第一文件的多个数据块的标识构建的,哈希树的叶节点为多个数据块中每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;处理模块,用于利用根节点的信息和叶节点的信息进行完整性校验;在通过完整性校验的情况下,服务器将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传数据块为多个数据块中的全部或部分数据块;收发模块还用于:向客户端发送待上传数据块列表;接收来自客户端的签名后的第一元组、至少一个待上传数据块的密文以及至少一个待上传数据块的收敛密钥密文,其中,第一元组包括根节点信息、第一文件的文件名以及第一文件的版本号,签名后的第一元组是通过第一密钥对中的第一私钥对第一元组进行签名得到的,至少一个待上传数据块的密文是通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密得到的,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
27.结合第四方面,在第四方面的某些实现方式中,上述收发模块用于:接收来自客户端的下载第一文件的请求;基于下载第一文件的请求,向客户端发送多个数据块的密文以及多个数据块的收敛密钥密文。
28.结合第四方面,在第四方面的某些实现方式中,上述收发模块用于:接收来自客户端的与另一客户端共享第一文件的请求;基于与另一客户端共享第一文件的请求,向客户端发送另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文;接收来自客户端的多个数据块的新收敛密钥密文,多个数据块的新收敛密钥密文是通过第二公钥对多个数据块的收敛密钥进行加密得到的;以及,向另一客户端发送多个数据块的新收敛密钥密文和多个数据块的密文。
29.第五方面,本技术提供了一种数据存储装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,以执行上述任一方面中任一种可能实现方式中的方法。
30.可选地,处理器为一个或多个,存储器为一个或多个。
31.可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
32.在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
33.上述第五方面中的数据存储装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
34.第六方面,本技术提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述任一方面中任一种可能实现方式中的方法。
35.第七方面,本技术提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述任一方面中任一种可能实现方式中的方法。
附图说明
36.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
37.图1为本技术实施例适用的一种通信系统的示意图;
38.图2为本技术实施例提供的一种数据存储方法的示意性流程图;
39.图3为本技术实施例提供的另一种数据存储方法的示意性流程图;
40.图4为本技术实施例提供的又一种数据存储方法的示意性流程图;
41.图5为本技术实施例提供的一种数据存储装置的示意性框图;
42.图6为本技术实施例提供的另一种数据存储装置的示意性框图。
43.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
44.下面将结合附图,对本技术中的技术方案进行描述。
45.为了便于理解本技术实施例,首先对本技术实施例中的相关术语进行介绍。
46.1、明文和密文
47.明文是加密之前的文字。密文是加了密的文字。
48.密文和明文之间的关系可以是:密文是对明文进行加密后的报文。
49.2、密钥
50.密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。
51.密钥可以分为对称密钥与非对称密钥。其中,对称密钥,即加密和解密的密钥相
同。非对称密钥,即加密和解密的密钥不同。
52.3、对称密钥加密
53.对称密钥加密,也称私钥密钥加密,即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。
54.4、非对称密钥加密
55.非对称密钥加密,也称公钥密钥加密,发送和接收数据的双方使用不同的密钥对明文进行加密和解密运算。
56.非对称密钥加密中,用于加密的密钥可以为称为非对称加密公钥,用于解密的密钥可以为称为非对称加密私钥。
57.5、收敛加密
58.收敛加密是根据数据内容生成密钥的加密方式。其中,根据数据内容生成的密钥可以称为收敛密钥。
59.在收敛加密的方式中,相同的数据生成的收敛密钥具有唯一性,即相同的数据生成的收敛密钥相同。
60.6、哈希树(hash tree)
61.哈希树通常也被称作默克尔树(merkle tree),哈希树在密码学及计算机科学中是一种树形数据结构,每个叶节点均以数据块的哈希作为标签,而除了叶节点以外的节点则以其子节点标签的加密哈希作为标签。
62.哈希树能够高效、安全地验证大型数据结构的内容。
63.7、安全散列算法256
64.安全散列算法256(secure hash algorithm-256,sha-256)是哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。
65.哈希函数可以把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来,然后将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。其中,散列值通常用一个短的随机字母和数字组成的字符串来代表。
66.对于任意长度的消息,sha256都会产生一个256比特(bit)长的哈希值,称作消息摘要,这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示。
67.8、安全散列算法1(secure hash algorithm-1,sha-1)
68.sha-1是一种密码散列函数,可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
69.在sha-1方法中,输入信息不同,输出的消息摘要不同。
70.在数据存储领域,去重是一项非常关键的技术。数据存储系统中若没有使用去重技术,需要将相同的数据多次存储、多次传输。数据存储系统中若使用了去重技术,可以将相同的数据只存储一次、传输一次,可以大大降低数据存储成本和数据传输效率。因此,去重技术在网盘和内容分发网络(content delivery network,cdn)中被广泛应用。
71.目前的数据存储方式可以包括明文、统一密钥加密以及用户自定义加密的方式。其中,明文和统一密钥加密方式,数据中心的运维人员可以查看所有数据,可以将对重复的数据进行去重,但安全性较低,不满足企业用户、金融用户等对数据安全有较高敏感性的用
户的需求。用户自定义加密的方式,不同的用户对数据使用不同的密钥进行加密,得到不同的密文,可以提高安全性,但密文不同会增加数据去重的难度。因此,目前的数据存储方式无法兼顾数据安全和数据去重。
72.另外,用户自定义加密的方式,用户之间共享数据时,用户需要将自己的密钥告知对方,对方才可以根据密钥获得共享的数据,即用户之间共享数据时,需要在暴露用户密钥的情况下实现共享,安全性较低。
73.有鉴于此,本技术实施例提供的数据存储方法和数据存储装置,有利于在数据存储时兼顾数据安全和数据去重。
74.为了便于理解本技术实施例,首先对本技术实施例适用的通信系统进行介绍。
75.图1为本技术实施例提供的一种通信系统100的示意图,如图1所示,通信系统100包括客户端101、客户端102以及服务器103。其中,通信系统100中客户端和服务器的个数仅仅为一个示例,本技术实施例对客户端和服务器的个数不做限定。
76.客户端101和客户端102均可以向服务器102发送数据,服务器102可以向客户端101和客户端102中的至少一个发送数据。
77.其中,客户端101和/或客户端102可以通过本技术实施例提供的方法,将数据发送到服务器103,服务器103接收到数据后,可以通过本技术实施例提供的方法进行存储和/或发送,可以在数据存储时兼顾数据安全和数据去重。
78.在介绍本技术实施例提供的数据存储方法和数据存储装置之前,先做出以下说明:
79.第一,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围。例如,区分不同的密钥对,区分不同的公钥等。
80.第二,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
81.图2为本技术实施例提供的一种数据存储方法200的示意性流程图,可以应用于上述通信系统100。该方法200可以包括以下步骤:
82.s201、客户端获取第一文件的多个数据块、多个数据块中每个数据块的标识和每个数据块的收敛密钥。
83.客户端可以为上述通信系统100中的客户端101或者客户端102。
84.客户端可以以预设固定大小将第一文件中的数据分成多个数据块。例如,预设固定大小可以为512千字节(kilobyte,kb)或者2兆比特(mebibyte,mb)。本技术实施例对预设固定大小的具体值不做限定。
85.多个数据块可以包括一个数据块、两个数据块或者两个以上的数据块,本技术实施例对数据块的个数不做限定。
86.数据块可以用符号block表示。
87.多个数据块的数量为n,具体可以表示为[block1,block2,

,blocki,

,blockn],
其中,blocki可以用于表示第i个数据块,i为大于或等于1、且小于或等于n的整数。
[0088]
数据块的标识用于区分不同的数据块,可以用符号tag表示。
[0089]
多个数据块的标识可以表示为[tag1,tag2,

,tagi,

,tagn],其中,tagi可以用于表示第i个数据块的标识。
[0090]
可选地,数据块的标识可以通过sha-256根据数据块生成。
[0091]
每个数据块的收敛密钥可以是客户端根据每个数据块的数据内容生成的,数据块的收敛密钥可以用符号ck表示。
[0092]
多个数据块的收敛密钥可以标识为[ck1,ck2,

,cki,

,ckn],其中,cki可以用于表示第i个数据块的收敛密钥。
[0093]
可选地,每个数据块的收敛密钥可以通过sha-1根据数据块生成。
[0094]
s202、客户端向服务器发送每个数据块的标识,对应地,服务器接收每个数据块的标识。
[0095]
s203、服务器将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传数据块为多个数据块中的全部或部分数据块。
[0096]
服务器中已经存储的数据块可以是上述客户端上传的,也可以是其他客户端上传的,本技术实施例对服务器中已经存储的数据块的来源不做限定。
[0097]
可选地,服务器中已经存储的数据块的大小全部可以与上述预设固定大小相同。或者,服务器中已经存储的数据块的大小部分与预设固定大小相同,部分与预设固定大小不同。
[0098]
在服务器中已经存储的数据块的大小全部与上述预设固定大小相同时,服务器可以将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,将与服务器中已经存储的、数据块的标识不同的数据块的标识添加至待上传数据块列表中。
[0099]
在服务器中已经存储的数据块的大小部分与预设固定大小相同,部分与预设固定大小不同时,服务器可以将多个数据块的标识分别与服务器中已经存储的、大小与预设固定大小相同的数据块的标识进行对比,将不同的数据块的标识添加至待上传数据块列表中。
[0100]
换句话说,在服务器中已经存储的数据块采用与第一文件的多个数据块相同的划分规则和标识规则的情况下(例如,划分数据块时保证数据块的大小相同、且相同数据对应的数据块的标识相同等等),服务器可以采用上述标识进行对比,从而确定出服务器未存储的数据块。
[0101]
在本技术实施例中,待上传数据块的个数可以为一个,也可以是两个或两个以上,本技术实施例对此不做限定。
[0102]
应理解,当服务器中已存储第一文件的多个数据块时,即服务器中已存储第一文件中所有的数据块,待上传数据块的个数为0,客户端不需要向服务器上传数据块。
[0103]
还应理解,当多个数据块的个数与待上传数据块的个数相同时,客户端需要向服务器发送第一文件中全部的数据块,即服务器中未存储第一文件中的任一数据块。
[0104]
至少一个待上传数据块的标识可以以上述待上传数据块列表的形式发送,也可以
是其他形式发送,例如,以报文或者消息的形式发送,本技术实施例对此不做限定。
[0105]
s204、服务器向客户端发送待上传数据块列表,对应地,客户端接收服务器根据每个数据块的标识发送的待上传数据块列表。
[0106]
客户端接收待上传数据块列表,并可以根据该待上传数据块列表中的至少一个待上传数据块的标识,确定待上传数据块。s205、客户端通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密,得到至少一个待上传数据块的密文。
[0107]
待上传数据块的密文可以用符号c表示。
[0108]
多个待上传数据块的密文可以表示为[c1,c2,

,ci,

,cn],其中,ci可以用于表示第i个待上传数据块的密文。
[0109]
客户端可以通过第i个待上传数据块的收敛密钥cki对第i个待上传数据块blocki进行加密,得到第i个待上传数据块的密文ci。
[0110]
应理解,不同待上传数据块的收敛密钥不同,客户端通过待上传数据块的收敛密钥对待上传数据块的进行加密,得到待上传数据块的密文。
[0111]
s206、客户端向服务器发送至少一个待上传数据块的密文和至少一个待上传数据块的收敛密钥密文,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
[0112]
第一密钥对是客户端在用户注册时自动生成的。第一私钥可以用符号akprv表示。
[0113]
可选地,第一密钥对可以为非对称密钥。第一私钥可以为非对称加密私钥。
[0114]
当第一密钥对为非对称密钥时,第一公钥可以为非对称加密公钥。
[0115]
第一公钥可以用符号akpub表示。待上传数据块的收敛密钥密文可以用符号ack表示。
[0116]
多个待上传数据块的收敛密钥密文可以表示为[ack1,ack2,

,acki,

,ackn],其中,acki可以用于表示第i个待上传数据块的收敛密钥密文。
[0117]
客户端可以通过第一公钥对至少一个待上传数据块的收敛密钥进行加密得到至少一个待上传数据块的收敛密钥密文。
[0118]
示例性地,客户端可以通过第一公钥akpub对第i个待上传数据块的收敛密钥cki进行加密得到第i个待上传数据块的收敛密钥密文acki。
[0119]
本技术提供的数据存储方法,根据数据来块的标识,确定服务器中未存储的数据块,进而确定待上传数据块列表,实现数据去重,有利于提高数据传输效率,降低数据存储成本,另外,客户端通过收敛密钥对待上传的数据块进行加密,并通过第一公钥对收敛密钥进行加密,通过加密的方式有利于提高数据传输的安全性。因此,该方法可以同时兼顾数据安全和数据去重,有利于降低数据存储成本和数据传输效率。
[0120]
作为一个可选的实施例,上述s202、客户端向服务器发送每个数据块的标识,包括:客户端基于每个数据块的标识构建哈希树,并向服务器发送哈希树的信息,哈希树的叶节点为每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;对应地,服务器接收来自客户端的多个数据块中每个数据块的标识,包括:服务器接收来自客户端的哈希树的信息,服务器利用根节点的信息和叶节点的信息进行完整性校验,在通过完整性校验的情况下,服务器将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表。上述s204、客户端接收服务器根据每个数据块的标识发送的待
上传数据块列表,包括:客户端接收服务器根据哈希树的信息发送的待上传数据块列表。
[0121]
客户端可以将每个数据块的标识的哈希值作为叶节点,将叶节点的哈希校验值作为根节点构建哈希树。
[0122]
服务器可以为上述通信系统100中的服务器103。
[0123]
哈希树的信息包括哈希树的根节点的信息和叶节点的信息。
[0124]
服务器可以利用根节点的信息和叶节点的信息,利用哈希树的自校验,确定多个数据块的标识是否完整。
[0125]
签名后的第一元组可以包括签名后的根节点的信息、签名后的第一文件的文件名以及签名后的第一文件的版本号。
[0126]
第一文件的版本号例如可以为3.8.1.6102。
[0127]
签名后的第一元组可以用符号sign表示。
[0128]
服务器接收到签名后的第一元组、该至少一个待上传数据块的密文以及该至少一个待上传数据块的收敛密钥密文后,服务器可以通过第一公钥对签名后的第一元组进行解签名,得到哈希树的根节点信息,将哈希树的根节点信息与哈希树进行对比,再次检验数据的完整性。在通过完整性检验的情况下,服务器可以将该至少一个待上传数据块的密文保存至存储介质(即落盘),即服务器保存经去重后的第一文件。服务器还可以生成描述该第一文件的描述性数据,即签名后的第一元组和待上传数据块的收敛密钥密文。
[0129]
本技术提供的数据存储方法,客户端通过第一私钥对第一元组进行签名,有利于后续服务器根据第一元组的信息和哈希树的信息再次验证数据的完整性,进一步提高数据的安全性。
[0130]
可选地,上述服务器可以通过第一公钥对签名后的第一元组进行解签名,得到哈希树的根节点信息。其中,第一公钥可以是客户端向服务器发送的。
[0131]
客户端可以在用户注册时自动生成上述第一密钥对中的第一公钥和第一私钥。客户端可以向服务器发送第一公钥和第一私钥,服务器接收第一公钥和第一私钥后,可以保存第一公钥和第一私钥。
[0132]
在服务器接收到签名后的第一元组的情况下,服务器可以通过第一公钥对签名后的第一元组进行解签名,得到第一元组。
[0133]
可选地,上述客户端可以不保存第一公钥和第一私钥,也可以保存第一公钥和第一私钥,本技术实施例对此不做限定。
[0134]
在客户端不保存或者保存后丢失第一公钥和第一私钥的情况下,客户端可以自动从服务器下载第一公钥和第一私钥。
[0135]
可选地,用户在客户端注册时,可以在客户端自定义密钥,用于防止其他用户查看或者窃取数据。其中,用户在客户端自定义的密钥可以称为用户密钥或者用户自定义密钥,本技术实施例对密钥的名称不做限定。
[0136]
示例性地,用户密钥可以为对称加密密钥,可以用符号pk表示。
[0137]
用户在客户端注册时,可以直接在客户端填写密钥,也可以在客户端导入已经存储在客户端的密钥。本技术实施例对用户密钥的来源不做限定。
[0138]
可选地,客户端可以通过用户密钥pk对第一私钥akprv进行加密,得到加密后的第一私钥。其中,加密后的第一私钥可以用符号c(akprv)表示。
[0139]
客户端可以向服务器发送用户名、加密后的第一私钥c(akprv)以及第一公钥,对应地,服务器接收用户名、加密后的第一私钥c(akprv)以及第一公钥后,保存该用户名、加密后的第一私钥c(akprv)以及第一公钥,即用户创建成功。
[0140]
在客户端不保存或者保存后丢失第一公钥和第一私钥的情况下,客户端可以从服务器下载加密后的第一私钥以及第一公钥,并通过第一公钥对加密后的第一私钥进行解密,得到第一私钥。
[0141]
本技术实施例提供的数据存储方法,客户端通过用户密钥对第一私钥进行加密,可以提高传输第一私钥的安全性,同时可以将第一私钥和用户绑定,有利于服务器管理数据。
[0142]
上述方法200介绍了客户端向服务器发送第一文件的过程,在服务器存储了第一文件的相关数据之后,客户端可以从服务器下载该第一文件。因此,本技术实施例还提供一种数据存储方法300,用于介绍客户端从服务器下载第一文件的过程。
[0143]
图3为本技术实施例提供的另一种数据存储方法300的示意性流程图,该方法300可以应用于上述通信系统100。
[0144]
该方法300可以包括以下步骤:
[0145]
s301、客户端向服务器发送下载第一文件的请求,对应地,服务器接收该下载第一文件的请求。
[0146]
客户端可以为上述通信系统100中的客户端101或者客户端102。服务器可以为上述通信系统100中的服务器103。
[0147]
可选地,下载第一文件的请求中可以包括第一文件的文件名。
[0148]
s302、服务器基于下载第一文件的请求,向客户端发送多个数据块的密文以及多个数据块的收敛密钥密文,对应地,客户端接收该多个数据块的密文和多个数据块的收敛密钥密文。
[0149]
服务器基于下载第一文件的请求,可以确定第一文件的多个数据块。其中,该多个数据块中可以包括上述方法200中的至少一个待上传数据块和与服务器中已经存在的数据块相同的数据块。
[0150]
示例性地,服务器可以建立多个数据块与第一文件的文件名的对应关系,当服务器接收到下载第一文件的请求时,服务器可以基于下载第一文件的请求中的第一文件的文件名,确定多个数据块。
[0151]
多个数据块的密文包括上述方法200中的至少一个待上传数据块的密文和与服务器中已经存在数据块相同的数据块的密文。
[0152]
在与服务器中已经存在的数据块相同的数据块是上述客户端上传到服务器的情况下,服务器存储有与服务器中已经存在数据块相同的数据块的密文,可以直接将多个数据块的密文发送到客户端。
[0153]
在与服务器中已经存在数据块相同的数据块是除上述客户端之外的客户端上传到服务器的情况下,服务器需要先通过与服务器中已经存在数据块相同的数据块的收敛密钥对与服务器中已经存在数据块相同的数据块进行加密,得到与服务器中已经存在数据块相同的数据块的密文,然后将多个数据块的密文发送到客户端。
[0154]
多个数据块的收敛密钥密文包括上述方法200中的至少一个待上传数据块的收敛
密钥密文和与服务器中已经存在数据块相同的数据块的收敛密钥密文。
[0155]
在与服务器中已经存在的数据块相同的数据块是上述客户端上传到服务器的情况下,服务器存储有与服务器中已经存在数据块相同的数据块的收敛密钥密文,可以直接将多个数据块的收敛密钥密文发送到客户端。
[0156]
在与服务器中已经存在数据块相同的数据块是除上述客户端之外的客户端上传到服务器的情况下,服务器需要先通过第一私钥对与服务器中已经存在数据块相同的数据块的收敛密钥进行加密,得到与服务器中已经存在数据块相同的数据块的收敛密钥密文,然后将多个数据块的收敛密钥密文发送到客户端。
[0157]
应理解,第一私钥与上述方法200中的第一私钥相同。
[0158]
s303、客户端通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥。
[0159]
第一私钥与上述方法200中的第一私钥相同。
[0160]
s304、客户端通过多个数据块的收敛密钥对多个数据块的密文进行解密,得到多个数据块。
[0161]
多个数据块的收敛密钥与上述方法200中的多个数据块的收敛密钥相同,此处不再赘述。
[0162]
本技术实施例提供的数据存储方法,客户端下载服务器存储的第一文件,通过两次解密的方式,得到第一文件的多个数据块,有利于提高数据传输的安全性。
[0163]
作为一个可选的实施例,上述方法300还包括:服务器还可以向客户端发送签名后的第一元组,对应地,客户端接收该签名后的第一元组;客户端利用第一公钥对签名后的第一元组进行完整性验证。
[0164]
签名后的第一元组、第一公钥以及第一元组分别与上述方法200中的签名后的第一元组、第一公钥以及第一元组相同。
[0165]
示例性地,客户端利用第一公钥对签名后的第一元组进行解签名,若解签名成功,则可以说明数据完整;若解签名不成功,则可以说明数据遗漏或被篡改。
[0166]
本技术实施例提供的数据存储方法,利用第一公钥对签名后的第一元组进行完整性验证,有利于保证数据的完整,进一步提高数据传输的安全性。
[0167]
本技术实施例还提供一种数据存储方法400,用于介绍客户端之间进行文件共享的过程。
[0168]
图4为本技术实施例提供的又一种数据存储方法400的示意性流程图,该方法400可以应用于上述通信系统100。
[0169]
该方法400可以包括以下步骤:
[0170]
s401、客户端向服务器发送与另一客户端共享第一文件的请求,对应地,服务器接收该与另一客户端共享第一文件的请求。
[0171]
客户端可以为上述通信系统100中的客户端101。另一客户端可以为通信系统100中的客户端102。
[0172]
应理解,为便于描述,本实施例以上述方法200和方法300中的第一文件为例进行说明,在其他可能的实现方式中,客户端之间共享的可以是其他任意文件,本技术实施例对此不作限定。
[0173]
在本技术实施例中,客户端与另一客户端共享第一文件,即另一客户端也可以获取第一文件中的数据,即上述方法200和方法300中的多个数据块。
[0174]
客户端的用户可以称为用户a,另一客户端的用户可以称为用户b,用户a和用户b之间共享第一文件。
[0175]
示例性地,与另一客户端共享第一文件的请求可以用《用户b,文件名》二元组描述。
[0176]
s402、服务器基于与另一客户端共享第一文件的请求,向客户端发送另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文,客户端接收另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文。
[0177]
另一客户端在用户注册时可以自动生成第二公钥和第二私钥,即第二密钥对。应理解,第二密钥对与上述第一密钥对不同。
[0178]
可选地,第二密钥对可以为非对称密钥。第二私钥可以为非对称加密私钥,第二公钥可以为非对称加密公钥。
[0179]
多个数据块的收敛密钥密文为第一文件中的多个数据块的收敛密钥密文。
[0180]
示例性地,第二公钥以及多个数据块的收敛密钥密文可以用《第二公钥,多个数据块的收敛密钥密文》二元组描述。
[0181]
s403、客户端通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥。
[0182]
第一私钥与上述方法200和方法300中的第一私钥相同。
[0183]
客户端通过上述客户端的第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥
[0184]
s404、客户端通过第二公钥分别对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文。
[0185]
客户端通过上述另一客户端的第二公钥分别对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文。
[0186]
s405、客户端向服务器发送多个数据块的新收敛密钥密文,对应地,服务器接收该多个数据块的新收敛密钥密文。
[0187]
服务器接收该多个数据块的新收敛密钥密文后,可以建立第一文件的描述性文件,即多个数据块的新收敛密钥密文。
[0188]
s406、服务器向另一客户端发送多个数据块的新收敛密钥密文和多个数据块的密文,对应地,另一客户端可以接收该多个数据块的新收敛密钥密文和多个数据块的密文。
[0189]
当另一客户端查看是第一文件的数据时,可以通过第二私钥分别对多个数据块的新收敛密钥密文进行解密,得到多个数据块的收敛密钥,并通过该多个数据块的收敛密钥对多个数据块的密文进行解密,得到多个数据块,即第一文件中的数据。
[0190]
可选地,在上述s406之前,上述方法400还包括:另一客户端向服务器发送下载第一文件的请求或者打开第一文件的请求,对应地,服务器接收该另一客户端下载第一文件的请求或者打开第一文件的请求;上述方法s406包括:服务器基于下载第一文件的请求或者打开第一文件的请求,向另一客户端发送多个数据块的新收敛密钥密文和多个数据块的密文。
[0191]
可选地,服务器还可以向另一客户端发送签名后的第一元组和哈希树的信息,对应地,另一客户端可以接收签名后的第一元组和哈希树的信息,并基于签名后的第一元组和哈希树的信息进行完整性验证。
[0192]
本技术实施例提供的数据存储方法,客户端与另一客户端共享文件时,客户端可以先通过服务器获取另一客户端的第二公钥,并基于第二公钥对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文,另一客户端通过服务器获取多个数据块的新收敛密钥密文和多个数据块的密钥密文,可以通过自己生成的第二公钥对多个数据块的新收敛密钥密文进行解密,得到可以解密多个数据块的密钥密文的收敛密钥,进而得到多个数据块。该方法中,客户端与另一客户端之间无需暴露自己的公钥即可实现共享文件,可以提供数据传输的安全性。
[0193]
上述方法300和方法400是基于上述方法200实现的,方法300和方法400是并列的两个方法。上述方法200、方法300以及方法400均可以应用于云盘、备份、cdn、对象存储等诸多存储相关领域,在经济性、可用性、安全性以及传输效率上面均有所提升。
[0194]
上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0195]
上文中结合图1至图4,详细描述了本技术实施例提供的数据存储方法,下面将结合图5和图6,详细描述本技术实施例提供的数据存储装置。
[0196]
图5示出了本技术实施例提供的一种数据存储装置500。该装置500包括:处理模块510和收发模块520。
[0197]
在一种可能的实现方式中,该装置500用于执行上述方法实施例中客户端对应的各个流程和步骤。
[0198]
处理模块510用于:获取第一文件的多个数据块、多个数据块中每个数据块的标识和每个数据块的收敛密钥;收发模块520用于:向服务器发送每个数据块的标识;接收服务器根据每个数据块的标识发送的待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传数据块为多个数据块中的全部或部分数据块;处理模块510还用于:通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密,得到至少一个待上传数据块的密文;收发模块520还用于:向服务器发送至少一个待上传数据块的密文和至少一个待上传数据块的收敛密钥密文,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
[0199]
可选地,处理模块510还用于:基于每个数据块的标识构建哈希树;收发模块520还用于:向服务器发送哈希树的信息,哈希树的叶节点为每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;接收服务器根据哈希树的信息发送的待上传数据块列表。
[0200]
可选地,处理模块510还用于:通过第一密钥对中的第一私钥对第一元组进行签名,得到签名后的第一元组,第一元组包括根节点的信息、第一文件的文件名以及第一文件的版本号;收发模块520还用于:向服务器发送签名后的第一元组。可选地,上述收发模块520还用于:向服务器发送下载第一文件的请求;接收来自服务器的多个数据块的密文和多个数据块的收敛密钥密文;上述处理模块510还用于:通过第一私钥分别对多个数据块的收
敛密钥密文进行解密,得到多个数据块的收敛密钥;通过多个数据块的收敛密钥对多个数据块的密文进行解密,得到多个数据块。
[0201]
可选地,上述收发模块520用于:接收来自服务器的签名后的第一元组;利用第一公钥对签名后的第一元组进行完整性验证。
[0202]
可选地,上述收发模块520还用于:向服务器发送与另一客户端共享第一文件的请求;接收来自服务器的另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文;上述处理模块510用于:通过第一私钥分别对多个数据块的收敛密钥密文进行解密,得到多个数据块的收敛密钥;通过第二公钥分别对多个数据块的收敛密钥进行加密,得到多个数据块的新收敛密钥密文;收发模块520还用于:向服务器发送多个数据块的新收敛密钥密文。
[0203]
在另一种可能的实现方式中,该装置500用于执行上述方法实施例中服务器对应的各个流程和步骤。
[0204]
收发模块520用于:接收来自客户端的多个数据块中每个数据块的标识处理模块510用于:将多个数据块的标识分别与服务器中已经存储的数据块的标识进行对比,确定待上传数据块列表,待上传数据块列表包括至少一个待上传数据块的标识,至少一个待上传数据块与服务器中已经存储的数据块不同,且至少一个待上传数据块为多个数据块中的全部或部分数据块;收发模块520还用于:向客户端发送待上传数据块列表;接收来自客户端的至少一个待上传数据块的密文和至少一个待上传数据块的收敛密钥密文,其中,至少一个待上传数据块的密文是通过至少一个待上传数据块的收敛密钥对至少一个待上传数据块进行加密得到的,至少一个待上传数据块的收敛密钥密文是通过第一密钥对中的第一公钥对至少一个待上传数据块的收敛密钥进行加密得到的。
[0205]
可选地,收发模块520还用于:接收来自客户端的哈希树的信息,哈希树是基于第一文件的多个数据块的标识构建的,哈希树的叶节点为多个数据块中每个数据块的标识的哈希值,哈希树的根节点为叶节点的哈希校验值;处理模块510还用于:利用根节点的信息和叶节点的信息进行完整性校验;在通过完整性校验的情况下,将多个数据块的标识分别与装置500中已经存储的数据块的标识进行对比,确定待上传数据块列表。
[0206]
可选地,收发模块520还用于:接收来自客户端的签名后的第一元组,第一元组包括根节点信息、第一文件的文件名以及第一文件的版本号,签名后的第一元组是通过第一密钥对中的第一私钥对第一元组进行签名得到的;处理模块510还用于:利用第一公钥对签名后的第一元组再次进行完整性验证。
[0207]
可选地,上述收发模块520用于:接收来自客户端的下载第一文件的请求;基于下载第一文件的请求,向客户端发送多个数据块的密文以及多个数据块的收敛密钥密文。
[0208]
可选地,上述收发模块520用于:接收来自客户端的与另一客户端共享第一文件的请求;基于与另一客户端共享第一文件的请求,向客户端发送另一客户端对应的第二密钥对中的第二公钥以及多个数据块的收敛密钥密文;接收来自客户端的多个数据块的新收敛密钥密文,多个数据块的新收敛密钥密文是通过第二公钥对多个数据块的收敛密钥进行加密得到的;以及,向另一客户端发送多个数据块的新收敛密钥密文和多个数据块的密文。
[0209]
应理解,这里的装置500以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一
个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,该装置500可以具体为上述实施例中的客户端或者服务器,或者,上述实施例中客户端或者服务器的功能可以集成在该装置500中,该装置500可以用于执行上述方法实施例中与客户端或者服务器对应的各个流程和/或步骤,为避免重复,在此不再赘述。
[0210]
上述装置500具有实现上述方法200、方法300或者方法400中客户端或者服务器执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
[0211]
图6示出了本技术实施例提供的一种数据存储装置600。该装置600包括:处理器610、收发器620和存储器630。其中,处理器610、收发器620和存储器630通过内部连接通路互相通信,该存储器630用于存储指令,该处理器610用于执行该存储器630存储的指令,以控制该收发器发送信号和/或接收信号。
[0212]
应理解,该装置600可以用于执行上述方法实施例中与客户端或者服务器对应的各个步骤和/或流程。可选地,该存储器630可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器630的一部分还可以包括非易失性随机存取存储器。例如,存储器630还可以存储设备类型的信息。该处理器610可以用于执行存储器630中存储的指令,并且当该处理器610执行存储器630中存储的指令时,该处理器610用于执行上述与该客户端或者服务器对应的方法实施例的各个步骤和/或流程。
[0213]
应理解,在本技术实施例中,上述装置600的处理器610可以是中央处理单元(central processing unit,cpu),该处理器610还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0214]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0215]
本技术提供一种可读计算机存储介质,该可读计算机存储介质用于存储计算机程序,该计算机程序用于实现上述实施例中客户端或者服务器对应的方法。
[0216]
本技术提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述实施例中客户端或者服务器对应的方法。
[0217]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0218]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0219]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0220]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0221]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0222]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0223]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献