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.本技术通过利用多个数据块分别对应的哈希值构建梅克尔树,可以更好的保护用户隐私数据。
27.可选地,在所述对数据进行划分后,确定划分后的每个数据块分别对应的哈希值之前,所述方法还包括:
28.判断所述每个数据块大小是否相同;
29.若否,则对数据大小不同的数据块进行数据填充。
30.本技术通过对数据大小不同的数据块进行数据填充,以保证每个数据块大小是相同的,进而可以更准确的利用划分后的多个数据块分别对应的哈希值进行构建梅克尔树。
31.可选地,在所述利用所述每个数据块分别对应的哈希值构建梅克尔树之后,所述方法还包括:
32.向所述终端设备发送所述每个数据块分别对应的位置索引信息。
33.本技术通过向终端设备发送每个数据块分别对应的位置索引信息,以便于终端设备利用位置索引信息,更准确的确定数据块的位置。
34.第二方面,本技术的一实施例提供了一种数据处理设备,包括:处理器和显示器;
35.所述显示器,用于显示用户操作界面;
36.所述处理器,被配置为执行:
37.接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数,其中所述挑战数是对所述待校验数据块标识预先设置的指定规则确定的;
38.基于所述待校验数据块和所述挑战数,确定所述待校验数据块的第一哈希值;
39.根据所述待校验数据块标识,将预先构建的梅克尔树中所述待校验数据块标识对应的第二哈希值替换为所述第一哈希值,并基于替换后的所述第一哈希值确定第一梅克尔树根哈希值;
40.若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值相同,则确定所述待校验数据块是完整的;
41.若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值不同,则确定所述待校验数据块是不完整的。
42.可选地,所述梅克尔树是由多个数据块分别对应的哈希值构建的,所述处理器被配置为执行基于替换后的所述第一哈希值确定第一梅克尔树根哈希值时,具体被配置为执行:
43.将所述梅克尔树中除所述第二哈希值之外的哈希值与所述第一哈希值分别按照对应的数据块标识排序;
44.将排序后的哈希值按照顺序两两相加,循环执行直至得到所述第一梅克尔树根哈希值。
45.可选地,所述待校验数据块为用户的健康数据,在所述确定所述待校验数据块是完整的后,所述处理器还被配置为执行:
46.将确定所述待校验数据块是完整的校验结果发送给所述终端设备,以便于所述终端设备利用所述待校验数据块展示所述用户的健康状态。
47.可选地,在所述接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数之前,所述处理器还被配置为执行:
48.接收所述终端设备发送的数据,并对数据进行划分,确定划分后的每个数据块分别对应的哈希值;
49.通过以下方式预先构建所述梅克尔树:
50.利用所述每个数据块分别对应的哈希值构建梅克尔树。
51.可选地,所述处理器被配置为执行利用所述每个数据块分别对应的哈希值构建梅克尔树,具体被配置为执行:
52.将所述每个数据块分别按照数据块标识排序;
53.将排序后的数据块的哈希值按照顺序两两相加,循环执行直至得到所述第二梅克尔树根哈希值时,所述梅克尔树构建完成。
54.可选地,所述处理器被配置为执行对数据进行划分后,确定划分后的每个数据块分别对应的哈希值之前,还被配置为执行:
55.判断所述每个数据块大小是否相同;
56.若否,则对数据大小不同的数据块进行数据填充。
57.可选地,所述处理器被配置为执行利用所述每个数据块分别对应的哈希值构建梅克尔树之后,还被配置为执行:
58.向所述终端设备发送所述每个数据块分别对应的位置索引信息。
59.第三方面,本技术的一实施例提供了一种数据处理装置,包括:
60.接收模块,用于接收终端设备发送的待校验数据块标识、待校验数据块以及挑战
数,其中所述挑战数是对所述待校验数据块标识预先设置的指定规则确定的;
61.确定模块,用于基于所述待校验数据块和所述挑战数,确定所述待校验数据块的第一哈希值;
62.替换模块,用于根据所述待校验数据块标识,将预先构建的梅克尔树中所述待校验数据块标识对应的第二哈希值替换为所述第一哈希值,并基于替换后的所述第一哈希值确定第一梅克尔树根哈希值;
63.第一比较模块,用于若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值相同,则确定所述待校验数据块是完整的;
64.第二比较模块,用于若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值不同,则确定所述待校验数据块是不完整的。
65.可选地,所述梅克尔树是由多个数据块分别对应的哈希值构建的,所述替换模块中基于替换后的所述第一哈希值确定第一梅克尔树根哈希值,具体用于:
66.将所述梅克尔树中除所述第二哈希值之外的哈希值与所述第一哈希值分别按照对应的数据块标识排序;
67.将排序后的哈希值按照顺序两两相加,循环执行直至得到所述第一梅克尔树根哈希值。
68.可选地,所述待校验数据块为用户的健康数据,所述第一比较模块在确定所述待校验数据块是完整的后,还用于:
69.将确定所述待校验数据块是完整的校验结果发送给所述终端设备,以便于所述终端设备利用所述待校验数据块展示所述用户的健康状态。
70.可选地,所述接收模块在接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数之前,还用于:
71.接收所述终端设备发送的数据,并对数据进行划分,确定划分后的每个数据块分别对应的哈希值;
72.通过以下方式预先构建所述梅克尔树:
73.利用所述每个数据块分别对应的哈希值构建梅克尔树。
74.可选地,所述接收模块利用所述每个数据块分别对应的哈希值构建梅克尔树时,具体用于:
75.将所述每个数据块分别按照数据块标识排序;
76.将排序后的数据块的哈希值按照顺序两两相加,循环执行直至得到所述第二梅克尔树根哈希值时,所述梅克尔树构建完成。
77.可选地,所述接收模块在对数据进行划分后,确定划分后的每个数据块分别对应的哈希值之前,还用于:
78.判断所述每个数据块大小是否相同;
79.若否,则对数据大小不同的数据块进行数据填充。
80.可选地,所述接收模块在利用所述每个数据块分别对应的哈希值构建梅克尔树之后,还用于:
81.向所述终端设备发送所述每个数据块分别对应的位置索引信息。
82.第四方面,本技术一实施例还提供了一种计算机可读存储介质,当所述计算机可
读存储介质中的指令由数据处理设备的处理器执行时,使得数据处理设备能够执行如本技术第一方面中提供的任一方法。
83.第五方面,本技术一实施例提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如本技术第一方面中提供的任一方法。
84.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
85.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
86.图1为本技术实施例提供的数据处理方法的应用场景示意图;
87.图2a为本技术实施例提供的构建完成的梅克尔树示意图;
88.图2b为本技术实施例提供的区块链存储示意图;
89.图3为本技术实施例提供的数据处理方法的流程示意图;
90.图4为本技术实施例提供的终端设备、服务器和区块链之间交互的数据存储流程示意图;
91.图5为本技术实施例提供的终端设备、服务器和区块链之间交互的数据完整性校验流程示意图;
92.图6为本技术实施例提供的数据处理设备示意图。
具体实施方式
93.为了使本领域普通人员更好地理解本技术的技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
94.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应所述理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
95.以下,对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
96.(1)本技术实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
97.(2)“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
98.(3)服务器,是为终端设备服务的,服务的内容诸如对终端设备发送的待校验数据块进行完整性校验;服务器是与终端设备上安装的应用程序相对应的,与终端设备上的应用程序配合运行,例如用户将终端设备的健康应用程序中的健康数据作为待校验数据块发
送给服务器进行完整性校验,以便于终端设备利用待校验数据块展示用户的健康状态。
99.(4)终端设备,既可以指软件类的app(application,应用程序),也可以指客户端。它具有可视的显示界面,能与用户进行交互;是与服务器相对应,为客户提供本地服务。针对软件类的应用程序,除了一些只在本地运行的应用程序之外,一般安装在普通的客户终端上,需要与服务器互相配合运行。
100.在具体实践过程中,伴随网络的不断发展,人们越来越重视个人隐私数据泄漏的问题。现有技术中,用户将数据发送给服务器后,在服务器中通过计算数据的哈希值对数据进行存储。当用户需要对待校验数据进行验证时,将待校验数据发送给服务器后,在服务器中计算待校验数据的哈希值,并比较待校验数据的哈希值与预先存储的数据的哈希值,若相同,则确定待校验数据即为预先存储的数据。但是这种数据完整性校验方式准确率较低。
101.为此,本技术提出了一种数据处理方法,通过对待校验数据标识预先设置的指定规则得到挑战数,并利用挑战数和待校验数据块同时确定待校验数据块的第一哈希值,使得到的第一哈希值更加准确。再利用第一哈希值替换预先构建的梅克尔树中的待校验数据块标识对应的第二哈希值,通过计算第一哈希值替换前后梅克尔数根哈希值是否相同,可以更加准确的确定待校验数据块的完整性。
102.在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
103.参考图1,其为本技术实施例提供的数据处理方法的应用场景示意图。该应用场景包括多个终端设备101(包括终端设备101-1、终端设备101-2、
……
终端设备101-n)、服务器102。其中,终端设备101、服务器102之间通过无线或有线网络连接,终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视等电子设备。服务器102可以是一台服务器、若干台服务器组成的服务器集群或云计算中心。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
104.以终端设备101-1与服务器102之间的交互为例进行说明,终端设备101-1向服务器102发送待校验数据块标识、待校验数据块以及挑战数,其中挑战数是对待校验数据块标识预先设置的指定规则确定的,服务器102首先基于待校验数据块和挑战数,确定待校验数据块的第一哈希值;并根据待校验数据块标识,将预先构建的梅克尔树中待校验数据块标识对应的第二哈希值替换为第一哈希值,再基于替换后的第一哈希值确定第一梅克尔树根哈希值;最后若预先构建的梅克尔树的第二梅克尔树根哈希值与第一梅克尔树根哈希值相同,则向终端设备101-1发送待校验数据块是完整的校验结果;若不同,则向终端设备101-1发送待校验数据块是不完整的校验结果。
105.这里,也可以在终端设备101-1中确定待校验数据块的第一哈希值和第一梅克尔树根哈希值,还可以部分在终端设备101-1,部分在服务器102中确定待校验数据块的第一哈希值和第一梅克尔树根哈希值,在此本技术并不限定确定待校验数据块的第一哈希值和
第一梅克尔树根哈希值的具体方式。
106.当然,本技术实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
107.为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。
108.下面结合图1所示的应用场景,对本技术实施例提供的技术方案进行说明。
109.接下来从两部分内容分别介绍本技术实施例提供的一种数据处理方法,具体包括:一、数据的存储,二、数据完整性校验。
110.一、数据的存储
111.服务器接收终端设备发送的数据,并对数据进行划分,确定划分后的每个数据块分别对应的哈希值,然后利用每个数据块分别对应的哈希值构建梅克尔树。具体的,将每个数据块分别按照数据块标识排序,将排序后的数据块的哈希值按照顺序两两相加,循环执行直至得到第二梅克尔树根哈希值时,梅克尔树构建完成。
112.例如,终端设备发送的数据为用户的健康数据,且健康数据由用户的血压数据a、心跳数据b、体温数据c组成时,对健康数据进行划分,假设划分为三个数据块,分别是用户的血压数据a、心跳数据b、体温数据c。分别对三个数据块进行加密,并按照sha256算法(secure hash algorithm,安全散列算法)计算加密后的三个数据块分别对应的哈希值。这里,本技术并不限定对数据块的具体加密方式,以及确定加密后数据块哈希值的具体方式,可根据实际应用进行调整。
113.如图2a所示,假设数据划分为八个数据块,八个数据块的数据块标识分别是t1、t2、t3、t4、t5、t6、t7、t8,八个数据块分别对应的哈希值是h7、h8、h9、h10、h11、h12、h13、h14,然后将哈希值h7、h8相加后通过sha256算法计算得到h3,将哈希值h9、h10相加后通过sha256算法计算得到h4,将哈希值h11、h12相加后通过sha256算法计算得到h5,将哈希值h13、h14相加后通过sha256算法计算得到h6,再继续将哈希值h3、h4相加后通过sha256算法计算得到h1,将哈希值h5、h6相加后通过sha256算法计算得到h2,最后将哈希值h1、h2相加后通过sha256算法计算得到h0,因此完成一颗二元梅克尔树的构建,其中h0即为梅克尔树的第二梅克尔树根哈希值。在此仅是举例说明梅克尔树的构建过程,本技术并不限定梅克尔树的具体构建方式。
114.本技术的一实施例中,在对数据进行划分后,确定划分后的每个数据块分别对应的哈希值之前,还可以判断每个数据块大小是否相同;若否,则对数据大小不同的数据块进行数据填充。
115.例如,数据为0110001,将数据划分为两个数据块时,两个数据块分别是:0110、001,此时两个数据块的大小是不同的,可以对数据块001进行数据填充,假设采用数据0进行填充,则填充后的数据块001变为0010,因此填充后的数据块0010的数据大小和数据块0110的数据大小是相同的。利用填充后大小相同的数据块计算对应的哈希值,可以更准确
的构建梅克尔树。
116.本技术的一实施例中,在利用每个数据块分别对应的哈希值构建梅克尔树之后,还可以向终端设备发送每个数据块分别对应的位置索引信息,以便于终端设备可以利用位置索引信息准确确定数据块的位置。例如,向终端设备发送每个数据块分别对应的url(uniform resoure locator,统一资源定位器)。
117.本技术的一实施例中,如图2b所示,将构建梅克尔树后得到的第二梅克尔树根哈希值和数据块1、数据块2
……
数据块n分别对应的url发送给区块链,在区块链的区块i中存储(n和i均为正整数),同时将多个数据块对应的终端设备的id(identity,身份)、ip(internet protocol,网络之间互联的协议)也发送给区块链进行存储,以便于后续终端设备对多个数据块组成的数据进行完整性验证。这里,区块链中的每个区块均包括区块头和区块体,例如区块i包括区块头1和区块体1,区块(i+1)包括区块头2和区块体2。区块(i+1)是指区块i的下一个区块。另外,区块i中还可以对上述存储信息进行备份。图2b还示出了区块链接收终端设备发送的用户私钥,对上述存储信息进行加密,在后续终端设备对多个数据块组成的数据进行完整性验证时,利用区块链中预先存储的用户公钥验证该数字签名。
118.本技术通过将数据存储在服务器中,将由数据构建的梅克尔树的梅克尔树根哈希值以及数据的位置索引信息存储在区块链中,从而可以实现除终端设备的用户1之外的其他用户不能通过区块链中的存储信息获取到有关用户1的数据,并且不能对用户1的数据进行修改。
119.二、数据完整性校验
120.参考图3,本技术实施例提供一种数据处理方法,包括以下步骤:
121.s301,接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数,其中挑战数是对待校验数据块标识预先设置的指定规则确定的。
122.例如,终端设备发送的待校验数据块标识为t4,挑战数可以是根据上述示例中区块头1中包含的难度系统确定。
123.s302,基于待校验数据块和挑战数,确定待校验数据块的第一哈希值。
124.示例性的,假设根据上述描述得到挑战数s4,那么利用挑战数s4和待校验数据块标识t4对应的待校验数据块,按照sha256算法计算得到待校验数据块的第一哈希值t’4。在此不限定计算第一哈希值的具体方法。
125.s303,根据待校验数据块标识,将预先构建的梅克尔树中待校验数据块标识对应的第二哈希值替换为第一哈希值,并基于替换后的第一哈希值确定第一梅克尔树根哈希值。
126.具体的,由数据的存储过程可知梅克尔树是由多个数据块分别对应的哈希值构建的,基于替换后的第一哈希值确定第一梅克尔树根哈希值,具体包括:将梅克尔树中除第二哈希值之外的哈希值与第一哈希值分别按照对应的数据块标识排序;将排序后的哈希值按照顺序两两相加,循环执行直至得到第一梅克尔树根哈希值。
127.按照上述示例继续说明,八个数据块的数据块标识分别是t1、t2、t3、t4、t5、t6、t7、t8,待校验数据块标识是t4。由于八个数据块分别对应的哈希值是h7、h8、h9、h10、h11、h12、h13、h14,故预先构建的梅克尔树中待校验数据块标识t4对应的第二哈希值是h10,而待校验数据块标识是t4对应的第一哈希值是t’4,因此将第一哈希值t’4替换第二哈希值
h10后,哈希值按照数据块标识排序后是h7、h8、h9、t’4、h11、h12、h13、h14。
128.然后将哈希值h7、h8相加后通过sha256算法计算得到h3,将哈希值h9、t’4相加后通过sha256算法计算得到h’4,将哈希值h11、h12相加后通过sha256算法计算得到h5,将哈希值h13、h14相加后通过sha256算法计算得到h6,再继续将哈希值h3、h’4相加后通过sha256算法计算得到h’1,将哈希值h5、h6相加后通过sha256算法计算得到h2,最后将哈希值h’1、h2相加后通过sha256算法计算得到h’0,因此完成一颗新的二元梅克尔树的构建,其中h’0即为梅克尔树的第一梅克尔树根哈希值。
129.s304,若预先构建的梅克尔树的第二梅克尔树根哈希值与第一梅克尔树根哈希值相同,则确定待校验数据块是完整的。
130.s305,若预先构建的梅克尔树的第二梅克尔树根哈希值与第一梅克尔树根哈希值不同,则确定待校验数据块是不完整的。
131.例如,若第一梅克尔树根哈希值h’0和第二梅克尔树根哈希值h0相同,则确定待校验数据块标识t4对应的数据是完整的,若否,则确定待校验数据块标识t4对应的数据是不完整的。
132.本技术的一实施例中,终端设备可以将数据划分后的每个数据块分别作为待校验数据块发送给服务器,通过终端设备和服务器之间多轮校验确定数据的完整性。
133.本技术的一实施例中,待校验数据块为用户的健康数据,在确定待校验数据块是完整的后,还可以将确定待校验数据块是完整的校验结果发送给终端设备,以便于终端设备利用待校验数据块展示用户的健康状态。
134.如图4所示,示出了本技术实施例提供的终端设备、服务器和区块链之间交互的数据存储流程示意图,包括以下步骤:
135.s401,终端设备对数据进行划分,确定划分后并加密的每个数据块分别对应的哈希值,将加密后的每个数据块分别按照数据块标识排序;将排序后的数据块的哈希值按照顺序两两相加,循环执行直至得到第二梅克尔树根哈希值时,梅克尔树构建完成,并根据构建完成的梅克尔树得到第二梅克尔树根哈希值;
136.s402,将第二梅克尔树根哈希值发送给区块链;
137.s403,将构建完成的梅克尔树和加密后的每个数据块发送给服务器;
138.s404,服务器发送每个数据块的位置索引信息给终端设备。
139.如图5所示,示出了本技术实施例提供的终端设备、服务器和区块链之间交互的数据完整性校验流程示意图,包括以下步骤:
140.s501,终端设备发送待校验数据块标识、待校验数据块以及挑战数给服务器;
141.s502,服务器基于待校验数据块和挑战数,确定待校验数据块的第一哈希值;根据待校验数据块标识,将预先构建的梅克尔树中待校验数据块标识对应的第二哈希值替换为第一哈希值,并将梅克尔树中除第二哈希值之外的哈希值与第一哈希值分别按照对应的数据块标识排序;将排序后的哈希值按照顺序两两相加,循环执行直至得到第一梅克尔树根哈希值;
142.s503,区块链向服务器发送第二梅克尔树根哈希值;
143.s504,若预先构建的梅克尔树的第二梅克尔树根哈希值与第一梅克尔树根哈希值相同,则向终端设备发送待校验数据块是完整的校验结果;若不相同,则向终端设备发送待
校验数据块是不完整的校验结果。
144.这里,并不限定步骤s502和步骤s503的具体执行顺序。
145.在介绍了本技术示例性实施方式的数据处理方法之后,接下来,介绍根据本技术的另一示例性实施方式的数据处理设备。
146.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
147.在一些可能的实施方式中,根据本技术的数据处理设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本技术各种示例性实施方式的数据处理方法中的步骤。例如,处理器可以执行如数据处理方法中的步骤。
148.下面参照图6来描述根据本技术的这种实施方式的数据处理设备120。图6显示的数据处理设备120仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
149.如图6所示,数据处理设备120以通用数据处理设备的形式表现。数据处理设备120的组件可以包括但不限于:上述至少一个处理器121、上述至少一个存储器122、连接不同系统组件(包括存储器122和处理器121)的总线123。
150.总线123表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
151.存储器122可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)1221和/或高速缓存存储器1222,还可以进一步包括只读存储器(rom)1223。
152.存储器122还可以包括具有一组(至少一个)程序模块1224的程序/实用工具1225,这样的程序模块1224包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
153.数据处理设备120也可以与一个或多个外部设备124(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与数据处理设备120交互的设备通信,和/或与使得该数据处理设备120能与一个或多个其它数据处理设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口125进行。并且,数据处理设备120还可以通过网络适配器126与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器126通过总线123与用于数据处理设备120的其它模块通信。应当理解,尽管图中未示出,可以结合数据处理设备120使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
154.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器122,上述指令可由处理器121执行以完成上述方法。可选地,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
155.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器121执行时实现如本技术提供的数据处理方法的任一方法。
156.在示例性实施例中,本技术提供的一种数据处理方法的各个方面还可以实现为一
种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种数据处理方法中的步骤。
157.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
158.本技术的实施方式的用于数据处理的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在数据处理设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
159.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
160.可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。
161.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户数据处理设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户数据处理设备上部分在远程数据处理设备上执行、或者完全在远程数据处理设备或服务端上执行。在涉及远程数据处理设备的情形中,远程数据处理设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户数据处理设备,或者,可以连接到外部数据处理设备(例如利用因特网服务提供商来通过因特网连接)。
162.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
163.此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
164.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
165.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
166.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
167.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
168.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
169.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种数据处理方法,其特征在于,所述方法包括:接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数,其中所述挑战数是对所述待校验数据块标识预先设置的指定规则确定的;基于所述待校验数据块和所述挑战数,确定所述待校验数据块的第一哈希值;根据所述待校验数据块标识,将预先构建的梅克尔树中所述待校验数据块标识对应的第二哈希值替换为所述第一哈希值,并基于替换后的所述第一哈希值确定第一梅克尔树根哈希值;若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值相同,则确定所述待校验数据块是完整的;若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值不同,则确定所述待校验数据块是不完整的。2.根据权利要求1所述的方法,其特征在于,所述梅克尔树是由多个数据块分别对应的哈希值构建的,所述基于替换后的所述第一哈希值确定第一梅克尔树根哈希值,包括:将所述梅克尔树中除所述第二哈希值之外的哈希值与所述第一哈希值分别按照对应的数据块标识排序;将排序后的哈希值按照顺序两两相加,循环执行直至得到所述第一梅克尔树根哈希值。3.根据权利要求1所述的方法,其特征在于,所述待校验数据块为用户的健康数据,在所述确定所述待校验数据块是完整的后,所述方法还包括:将确定所述待校验数据块是完整的校验结果发送给所述终端设备,以便于所述终端设备利用所述待校验数据块展示所述用户的健康状态。4.根据权利要求1所述的方法,其特征在于,在所述接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数之前,所述方法还包括:接收所述终端设备发送的数据,并对数据进行划分,确定划分后的每个数据块分别对应的哈希值;通过以下方式预先构建所述梅克尔树:利用所述每个数据块分别对应的哈希值构建梅克尔树。5.根据权利要求4所述的方法,其特征在于,所述利用所述每个数据块分别对应的哈希值构建梅克尔树,包括:将所述每个数据块分别按照数据块标识排序;将排序后的数据块的哈希值按照顺序两两相加,循环执行直至得到所述第二梅克尔树根哈希值时,所述梅克尔树构建完成。6.根据权利要求4所述的方法,其特征在于,在所述对数据进行划分后,确定划分后的每个数据块分别对应的哈希值之前,所述方法还包括:判断所述每个数据块大小是否相同;若否,则对数据大小不同的数据块进行数据填充。7.根据权利要求4所述的方法,其特征在于,在所述利用所述每个数据块分别对应的哈希值构建梅克尔树之后,所述方法还包括:向所述终端设备发送所述每个数据块分别对应的位置索引信息。
8.一种数据处理设备,其特征在于,包括:处理器和显示器;所述显示器,用于显示用户操作界面;所述处理器,被配置为执行:接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数,其中所述挑战数是对所述待校验数据块标识预先设置的指定规则确定的;基于所述待校验数据块和所述挑战数,确定所述待校验数据块的第一哈希值;根据所述待校验数据块标识,将预先构建的梅克尔树中所述待校验数据块标识对应的第二哈希值替换为所述第一哈希值,并基于替换后的所述第一哈希值确定第一梅克尔树根哈希值;若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值相同,则确定所述待校验数据块是完整的;若预先构建的所述梅克尔树的第二梅克尔树根哈希值与所述第一梅克尔树根哈希值不同,则确定所述待校验数据块是不完整的。9.根据权利要求8所述的设备,其特征在于,所述梅克尔树是由多个数据块分别对应的哈希值构建的,所述处理器被配置为执行基于替换后的所述第一哈希值确定第一梅克尔树根哈希值时,具体被配置为执行:将所述梅克尔树中除所述第二哈希值之外的哈希值与所述第一哈希值分别按照对应的数据块标识排序;将排序后的哈希值按照顺序两两相加,循环执行直至得到所述第一梅克尔树根哈希值。10.根据权利要求8所述的设备,其特征在于,所述待校验数据块为用户的健康数据,在所述确定所述待校验数据块是完整的后,所述处理器还被配置为执行:将确定所述待校验数据块是完整的校验结果发送给所述终端设备,以便于所述终端设备利用所述待校验数据块展示所述用户的健康状态。
技术总结
本申请涉及数据处理技术领域,公开了一种数据处理方法及设备,包括:接收终端设备发送的待校验数据块标识、待校验数据块以及挑战数,其中挑战数是对待校验数据块标识预先设置的指定规则确定的;然后基于待校验数据块和挑战数,确定待校验数据块的第一哈希值;并根据待校验数据块标识,将预先构建的梅克尔树中待校验数据块标识对应的第二哈希值替换为第一哈希值,再基于替换后的第一哈希值确定第一梅克尔树根哈希值;最后若预先构建的梅克尔树的第二梅克尔树根哈希值与第一梅克尔树根哈希值相同,则确定待校验数据块是完整的;若不同,则确定待校验数据块是不完整的,进而准确确定待校验数据块的完整性。待校验数据块的完整性。待校验数据块的完整性。
技术研发人员:黄继超 李辉 丁振宇
受保护的技术使用者:海信集团控股股份有限公司
技术研发日:2021.11.25
技术公布日:2022/3/8