一种基于哈希值的数据查询方法、装置及设备制造方法及图纸

技术编号:21628339 阅读:33 留言:0更新日期:2019-07-17 10:54
公开了一种基于哈希值的数据查询方法、装置及设备。在服务方以数据块链的方式对数据记录进行中心化的存储的场景下,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据服务的提供方也不能轻易的对存储的数据做出改变。用户只需输入哈希值,就可以随时查询自己的数据记录,以及验证整条数据块链上的数据记录是否正确无误,保证了用户数据的完整性,提高用户体验。

A Data Query Method, Device and Equipment Based on Hash Value

【技术实现步骤摘要】
一种基于哈希值的数据查询方法、装置及设备
本说明书实施例涉及信息
,尤其涉及一种基于哈希值的数据查询方法、装置及设备。
技术介绍
当前的数据库产品一般都是中心化的,数据由用户产生,但是对于数据的增删改查等操作都是基于用户的指令在服务端进行。在这种情形下,用户有意愿知道自己的数据是否出现了损坏、丢失或者被人篡改,并且希望有一种方式可以实现这种验证。而由于在实际应用中,用户产生的数据量是很大的,例如,在一些面向企业级的数据库业务中,如审计日志、供应链条、政府监管,消费记录等应用场景中,企业用户想要对自己的数据进行查询是否出现了差错并不容易。基于此,需要一种便于用户验证的数据查询方案。
技术实现思路
针对现有数据存储中用户难以验证自己的数据是否出错的问题,为实现在中心化的数据存储中,提高用户体验,本说明书实施例提供一种基于哈希值的数据查询方法、装置及设备,所述方法应用于通过多个数据块存储数据的中心化的数据库服务提供方中,具体包括:接收用户的查询指令,所述查询指令中包含待查询的哈希值,所述哈希值为数据记录的哈希值或者数据块的哈希值;基于所述哈希值查询获取数据记录所处数据块的块高、数据记录在所处数据块中的偏移量或者数据记录明文,或者,查询获取数据块的哈希值对应的数据块的块高,并返回查询结果;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。对应的,本说明书实施例还提供一种基于哈希值的数据查询装置,应用于通过多个数据块存储数据的中心化的数据库服务提供方中,所述装置包括:接收模块,接收用户的查询指令,所述查询指令中包含待查询的哈希值,所述哈希值为数据记录的哈希值或者数据块的哈希值;基于所述哈希值查询获取数据记录所处数据块的块高、数据记录在所处数据块中的偏移量或者数据记录明文,或者,查询获取数据块的哈希值对应的数据块的块高,并返回查询结果;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。在服务方以数据块链的方式对数据记录进行中心化的存储的场景下,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据服务的提供方也不能轻易的对存储的数据做出改变。用户只需输入哈希值,就可以随时查询自己的数据记录,以及验证整条数据块链上的数据记录是否正确无误,保证了用户数据的完整性,提高用户体验。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1当前技术中所涉及的系统架构的示意图;图2是本说明书实施例提供的一种基于哈希值的数据查询方法的流程示意图;图3为本说明书实施例所提供的一种示例性的部分清除的流程示意图;图4是本说明书实施例提供的一种构造隐匿化数据记录的过程示意图;图5为本说明书实施例中所涉及的另一系统架构的示意图;图6是本说明书实施例提供的一种基于哈希值的数据查询装置的结构示意图;图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图;图8为本说明书实施例给出的一种具体的生成授时证书的示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。首先需要说明的是,在当前的服务器架构中,数据库服务器可以是直接对接的客户端个人用户,也可以是由一些应用服务器对接客户端个人用户,而数据库服务器则对接所述应用服务器。如图1所示,图1当前技术中所涉及的系统架构的示意图。因此,在本说明书实施例中,当用户是应用服务器时,数据库服务提供方可以是图1中所示的数据库服务器;而在用户是客户端个人用户时,数据库服务提供方也可以是由应用服务器和数据库服务器构成的服务端整体。但无论在那种情形下,对于数据的存储都是在数据库服务提供方完成,而对于数据的操作(包括增删改查等等)也是基于用户的指令在数据库服务提供方进行,用户数据以及对数据的操作结果均存储在数据库服务提供方,用户本地以及其它设备上不能存储有该数据。换言之,本说明书中的数据库服务提供方是以中心化的形式提供数据服务。以下结合附图,详细说明本说明书各实施例提供的技术方案。如图2所示,图2是本说明书实施例提供的一种基于哈希值的数据查询方法的流程示意图,该流程具体包括如下步骤:S201,接收用户的查询指令,所述查询指令中包含待查询的哈希值,所述哈希值为数据记录的哈希值或者数据块的哈希值。需要说明的是,对于用户而言,其可以指定输入的哈希值的类型是数据记录的哈希值还是数据块的哈希值;也可以不指定,只输入一个哈希值,然后由服务端自行判断。一般而言,哈希值可以是之前用户上传数据记录时服务端返回的哈希值,也可以是用户自己针对某条数据进行哈希运算得到的。S203,基于所述哈希值查询获取数据记录所处数据块的块高、数据记录在所处数据块中的偏移量或者数据记录明文,或者,查询获取数据块的哈希值对应的数据块的块高,并返回查询结果。数据库服务提供方在接收到查询指令后,可以基于哈希值从数据块进行遍历查询,也可以从预先建立的索引中进行查询。例如,直接从当前最后一个数据块开始进行遍历查询。以下示例性列举几种本说明书实施例所提供的几种查询方式:第一种,输入数据块的哈希值,返回数据块中的所有数据明文;或者,输入数据记录的哈希值,返回数据记录明文,具体的,可以使用查询指令SELECT(khash,&v)实现,当服务方接收到相应的查询指令时,即基于哈希值执行前述的查询逻辑以返回结果。第二种,输入数据记录的哈希值,返回数据记录所处的数据块的块高,以及,在该数据块中的偏移量,具体的,可以使用查询指令SELECT(khash,&v,FULL)实现;第三种,输入数据块的哈希值,根据块哈希返回块高。具体的,可以使用查询指令SELECT(khash,&v,BLK)来实现。当然,也可能存在用户输入了一个哈希值,而服务方不能查询到相应的结果的情形。例如,用户输入了一个数据记录对应的哈希值,而服务方查询不到结果,那么此时,用户可以合理的怀疑,该哈希所对应的数据记录已经发生了变动,有可能是被篡改,或者有可能发生了数据丢失。在服务方以数据块链的方式对数据记录进行中心化的存储的场景下,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据服务的提供方也不能轻易的对存储的数据做出改变。用户本文档来自技高网...

【技术保护点】
1.一种基于哈希值的数据查询方法,应用于通过多个数据块存储数据的中心化的数据库服务提供方中,所述方法包括:接收用户的查询指令,所述查询指令中包含待查询的哈希值,所述哈希值为数据记录的哈希值或者数据块的哈希值;基于所述哈希值查询获取数据记录所处数据块的块高、数据记录在所处数据块中的偏移量或者数据记录明文,或者,查询获取数据块的哈希值对应的数据块的块高,并返回查询结果;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。

【技术特征摘要】
1.一种基于哈希值的数据查询方法,应用于通过多个数据块存储数据的中心化的数据库服务提供方中,所述方法包括:接收用户的查询指令,所述查询指令中包含待查询的哈希值,所述哈希值为数据记录的哈希值或者数据块的哈希值;基于所述哈希值查询获取数据记录所处数据块的块高、数据记录在所处数据块中的偏移量或者数据记录明文,或者,查询获取数据块的哈希值对应的数据块的块高,并返回查询结果;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。2.如权利要求1所述的方法,在中心化的数据库服务提供方,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。3.如权利要求2所述的方法,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。4.如权利要求1所述的方法,所述方法还包括:建立以数据记录的哈希值为键,以数据记录所处数据块的块高、数据记录在所处数据块中的偏移量为值的索引,并存储;所述基于哈希值查询获取数据记录所处数据块的块高、数据记录在所处数据块中的偏移量,包括:从已经建立的索引中,查询获取所述哈希值对应的数据记录所处数据块的块高、数据记录在所处数据块中的偏移量。5.如权利要求1所述的方法,所述方法还包括:建立以数据块的哈希为键,以数据块高为值的索引,并存储;所述查询获取数据块的哈希值对应的数据块的块高,包括:从已经建立的索引中,查询获取所述哈希值所对应的数据块的块高。6.一种基于哈希值的数据查询装置,应用于通过多个数据...

【专利技术属性】
技术研发人员:杨新颖
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1