CN113419894B - 数据检验方法、装置、存储介质及计算机设备 - Google Patents

数据检验方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN113419894B
CN113419894B CN202110819182.5A CN202110819182A CN113419894B CN 113419894 B CN113419894 B CN 113419894B CN 202110819182 A CN202110819182 A CN 202110819182A CN 113419894 B CN113419894 B CN 113419894B
Authority
CN
China
Prior art keywords
data
hash
hash tree
tree
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110819182.5A
Other languages
English (en)
Other versions
CN113419894A (zh
Inventor
徐帅
胡志鹏
程龙
刘勇成
袁思思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110819182.5A priority Critical patent/CN113419894B/zh
Publication of CN113419894A publication Critical patent/CN113419894A/zh
Application granted granted Critical
Publication of CN113419894B publication Critical patent/CN113419894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种数据检验方法、装置、存储介质及计算机设备。其中数据检验方法包括:获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的,然后确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据,再根据待检验数据和存储时间计算待检验数据对应的第二哈希树,最后根据第一哈希树和第二哈希树对待检验数据进行数据检验。其中,第一哈希树和第二哈希树是根据相同的哈希树构建方式构建的哈希树,通过第一哈希树和第二哈希树来进行对比,能够提升对已传输数据的检验效率。

Description

数据检验方法、装置、存储介质及计算机设备
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据检验方法、装置、存储介质及计算机设备。
背景技术
在现有技术中,在数据传输的过程中,需要对传输的数据进行数据一致性检验,且一旦数据传输开始,就需要在整个数据传输过程中对数据进行一致性检验,并不能等待数据传输完成再对数据进行检验,也不能隔一段时间对数据检验,也不能针对特定部分的数据进行检验。
发明内容
本申请实施例提供一种数据检验方法、装置、存储介质及计算机设备。其中该数据检验方法能够提升对数据检验的效率。
第一方面,本申请实施例提供了一种数据检验方法,包括:
获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的;
确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据;
根据所述待检验数据和所述存储时间计算所述待检验数据对应的第二哈希树;
根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
第二方面,本申请实施例提供了一种数据检验装置,包括:
获取模块,用于获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的;
确定模块,用于确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据;
计算模块,用于根据所述待检验数据和所述存储时间计算所述待检验数据对应的第二哈希树;
检验模块,用于根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
第三方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的数据检验方法中的步骤。
第四方面,本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的数据检验方法中的步骤。
本申请实施例中,获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的,然后确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据,再根据待检验数据和存储时间计算待检验数据对应的第二哈希树,最后根据第一哈希树和第二哈希树对待检验数据进行数据检验。其中,第一哈希树和第二哈希树是根据相同的哈希树构建方式构建的哈希树,通过第一哈希树和第二哈希树来进行对比,能够等待数据传输完成再对数据进行检验,或者隔一段时间对数据检验,或者针对特定部分的数据进行检验,从而使得数据检验更加灵活,从而提高了数据检验的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据检验的场景示意图。
图2是本申请实施例提供的数据检验方法的第一流程示意图。
图3是本申请实施例提供的数据检验方法的第二流程示意图。
图4是本申请实施例提供的哈希树的结构示意图。
图5是本申请实施例提供的目标数据的传输示意图。
图6是本申请实施例提供的生成第二哈希树的流程示意图。
图7是本申请实施例提供的第一哈希树和第二哈希树的对比流程图。
图8是本申请实施例提供的数据检验装置的第一结构示意图。
图9是本申请实施例提供的数据检验装置的第二结构示意图。
图10是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着通信技术的发展,在人们的生活中,电子设备之间会产生多种数据交互,比如服务器和终端设备之间的数据交互,终端设备与终端设备之间的数据交互。又比如,在大数据如火如荼的今天,大数据中心会有大量的数据交互,具体地,大数据中心还会记录保持海量用户的日志数据,从而实现对海量用户的相关性分析。
但是,在数据传输的过程中,需要对传输的数据进行检验,一旦数据传输错误,可能导致最终根据错误数据生成的结果也是错误的。比如,在根据错误的用户数据对用户进行相关性分析时,则最终生成的用户相关性结果也是错误的。
为了解决该技术问题,本申请实施例提供一种数据检验方法、装置、存储介质及计算机设备。该数据检验方法用于对传输的数据进行检验,从而确定已传输数据是否传输错误。
具体地,本申请实施例的数据检验方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal DigitalAssistant,PDA)等终端设备,终端设备还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参阅图1,图1是本申请实施例提供的数据检验的场景示意图。
如图1所示,在实际的数据传输场景中,可以包含多个计算机设备之间的数据传输,比如第一计算机设备和第二计算机设备之间的数据传输,第三计算机设备和第二计算机设备之间的数据传输。
其中,第一计算机设备可以理解为是对数据进行分析的电脑,第二计算机设备可以理解为是用于存储数据的服务器,第三计算机设备可以理解为是日常生活中常用的智能手机等终端设备。
当用户使用第三计算机设备时,会产生大量的用户数据,比如日志数据,用户数据可以传输到第二计算机设备中进行存储,第二计算机设备可以对存储时间、数据内容等进行记录保存。
当第一计算机设备向第二计算机设备请求获取第三计算机设备对应的用户数据时,第二计算机设备会根据请求将对应的用户数据传输到第一计算机设备中,第一计算机设备在获取到对应的用户数据之后,会对用户数据进行相关性分析,比如实现对该用户的用户画像进行刻画。
需要说明的是,在第一计算机设备、第二计算机设备、第三计算机设备对数据进行存储时,会生成相同结构的哈希树(Merkle tree),同时在生成哈希树的过程中,可以采用相同的哈希(hash)值算法。从而在后续对已传输数据进行检验时,能够快速准确的对已传输的数据进行检验,从而提高数据检验的效率。
为了更加详细的了解本申请实施例提供的数据检验方法,请参阅图2,图2是本申请实施例提供的数据检验方法的第一流程示意图。
110、获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的。
在一些实施方式中,第一计算机设备在需要目标数据时,会像第二计算机设备发出请求,第二计算机设备在接收到目标数据获取请求之后,会将目标数据向第一计算机设备传输。
第一计算机设备在接收第二计算机设备传输的目标数据时,会获取目标数据对应的第一哈希树。其中,第一哈希树是由第二计算机设备根据目标数据生成的。
比如,当目标数据存储在第二计算机设备中时,第二计算机设备会根据目标数据的存储时间来对目标数据生成对应的第一哈希树。其中,第一哈希树是一种具备多个层级的哈希树,第一哈希树的最高层级是根哈希,根哈希是根据多个低层级的哈希值计算而来的。
需要说明的是,哈希是任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。哈希可以用于错误校正,可以很直观的检测出数据在传输时发生的错误。目标数据在存入第二计算机设备时,生成的第一哈希树能够作为传输目标数据到第一计算机设备之后的校验工具。
120、确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据。
在一些实施方式中,当目标数据存储在第二计算机设备上的时候,第二计算机设备会对目标数据存储的时间进行记录。比如目标数据的类型是日志数据,那么日志数据的组成包括时间和具体日志,例如目标数据中的一条日志数据为:2021-05-01/01/Login,则该条日志数据中就记载了2021年5月1日1时这个具体的时间,这个时间也就对应该条日志数据的存储时间。其中,该存储时间还可以包括分钟、秒这种更加具体的时间。
又比如,在目标数据存入第二计算机设备的时候,第二计算机设备可以对目标数据按照时间加数据名称来命名,比如待检验数据中的一个数据单元的命名为:2021-05-01/01/支付1,其中“2021-05-01/01”为时间,“支付1”为数据名称。
当第二计算机设备先第一计算机设备传输目标数据时,第一计算机设备接收的数据就是待检验数据,需要对待检验数据进行检验,才能确认传输的待检验数据是否错误。
第一计算机设备可以获取待检验数据在第二计算机设备上的存储时间,比如,待检验数据中的一条日志数据为:2021-05-01/01/Login,那么该条日志数据就是2021年5月1日1时存储的。
在一些实施方式中,第一计算机设备还可以直接待检验数据的数据命名来确认待检验数据的存储时间。比如,待检验数据中的一个数据单元的命名为“2021-05-01/01/支付1”,则可以从该数据单元的命名中确定该数据单元在第二计算机设备中的存储时间为2021年5月1日1时。
需要说明的是,待检验数据可以是目标数据中的部分数据,也可以是目标数据中的全部数据。比如,第二计算机设备向第一计算机设备传输目标数据时,第一计算机设备只接收了部分数据,或者第一计算机接收了整个传输过程中的全部数据。
在一些实施方式中,第一计算机设备还可以接收第二计算机设备实时传输的目标数据,并将目标数据中的已传输数据作为待检验数据。
130、根据待检验数据和存储时间计算待检验数据对应的第二哈希树。
在一些实施方式中,第一计算机设备可以根据待检验数据生成第一哈希值,其中,待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值,然后第一计算机设备根据第一哈希值和存储时间生成第二哈希树。
在待检验数据中有多个数据单元,每一个数据单元都有自身对应的第一哈希值,第一哈希值可以作为第二哈希树最底层的哈希值。第一计算机设备会检测待检验数据的存储时间,以待检验数据的初始存储时间为准,当存储时间每满第一预设时长时,则根据第一预设时长内对应的第一哈希值生成第二哈希值。其中,第二哈希值在第二哈希树中所处的层级比第一哈希值对应的层级要高一层级。
第一计算机设备可以直接根据第一哈希值和第二哈希值生成第二哈希树。
在一些实施方式中,以初始存储时间为起点,当存储时间每满第二预设时长时,则根据第二预设时长内对应的第二哈希值生成第三哈希值。其中,第二预设时长大于所述第一预设时长。
可以理解的是,第二预设时长可以包含多个第一预设时长,可以根据第二预设时长中每一个第一预设时长对应的第二哈希值生成第三哈希值,第三哈希值在第二哈希树中所处的层级比第二哈希值对应的层级要高一层级。
第一计算机设备可以根据第一哈希值、第二哈希值和第三哈希值生成第二哈希树。
需要说明的是,其中第一预设时长可以是一个小时,第二预设时长可以是一天,也就是说,第二预设时长中最多可以包含二十四个第一预设时长。第三哈希值可以由二十四个第二哈希值推导计算得到。
在一些实施方式中,当第二哈希树中有多个第三哈希值时,可以根据多个第三哈希值推导计算得到第二哈希树的根哈希值。其中,第二哈希树的层级可以包括多个,上述的第一哈希值、第二哈希值、第三哈希值、根哈希分别对应一个层级,且是由低层级向高层级顺序,也就是四个层级。但是在第二哈希树的设置过程中,可以根据实际需要来设置哈希树的层级数,也就是根据实际需要来设置第二哈希树的结构。
140、根据第一哈希树和第二哈希树对待检验数据进行数据检验。
需要说明的是,第一哈希树对应的是目标数据的哈希树,而第二哈希树对应的是待检验数据的哈希树。在待检验数据只是目标数据中的部分数据时,第二哈希树和第一哈希树是不同的。在待检验数据是目标数据中的全部数据时,如果第一哈希树和第二哈希树是相同的,那说明传输至第一计算机设备里的待检验数据无误。如果第一哈希树和第二哈希树是不同的,那说明传输至第一计算机设备里的待检验数据有误。
在一些实施方式中,第一计算机设备可以确定第一哈希树和第二哈希树相同层级的节点,然后对比第一哈希树和第二哈希树相同层级的节点的哈希值,以对待检验数据进行检验。
比如,第一计算机设备可以确定第二哈希树的最高层级,然后按照由最高层级至低层级的顺序,逐层对比第二哈希树与第一哈希树相同层级的节点的哈希值,以对待检验数据进行检验。
例如,第一计算机设备可以先确定第二哈希树的根哈希值在第一哈希树的相同层级中是否有相等的哈希值,根哈希为第二哈希树的最高层级,如果第二哈希树的根哈希值在第一哈希树的同层级中有相等的哈希值,则说明待检验数据传输有误。
当确认待检验传输数据有误时,确定第二哈希树的最高层级的下一层级的节点为目标节点,然后判断目标节点的哈希值在第一哈希树对应的层级是否有相等的哈希值。
以此类推,当第二哈希树上一层级中的目标节点第一哈希树中对应的层级没有相等的哈希值,那么可以继续确定第二哈希树下一层级中的目标节点在第一哈希树中对应的层级是否有相等的哈希值。直至确定出传输错误的待检验数据所对应的节点为止。
可以理解的是,如果确定第二哈希树最高层级中的各个节点在第一哈希树的同层级中可以找到相等的哈希值,那么说明待检验数据传输无误。
本申请实施例中,获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的,然后确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据,再根据待检验数据和存储时间计算待检验数据对应的第二哈希树,最后根据第一哈希树和第二哈希树对待检验数据进行数据检验。其中,第一哈希树和第二哈希树是根据相同的哈希树构建方式构建的哈希树,通过第一哈希树和第二哈希树来进行对比,能够等待数据传输完成再对数据进行检验,或者隔一段时间对数据检验,或者针对特定部分的数据进行检验,从而使得数据检验更加灵活,从而提高了数据检验的效率。
为了更加详细的了解本申请实施例提供的数据检验方法。请继续参阅图3,图3是本申请实施例提供的数据检验方法的第二流程示意图。该数据检验方法可以包括以下步骤:
210、获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的。
在一些实施方式中,第一计算机设备在需要目标数据时,会像第二计算机设备发出请求,第二计算机设备在接收到目标数据获取请求之后,会将目标数据向第一计算机设备传输。
第一计算机设备在接收第二计算机设备传输的目标数据时,会获取目标数据对应的第一哈希树。其中,第一哈希树是由第二计算机设备根据目标数据生成的。
其中第一哈希树是根据目标数据存入第二计算机设备的存储时间以及目标数据的数据内容生成的。具体,请参阅图4,图4是本申请实施例提供的哈希树的结构示意图。
目标数据可以是日志数据,比如该日志数据的组成为:日期+时间+日志。当目标数据存入第二计算机设备时,此时第二计算机设备会对存储时间进行记录,比如2021-05-01-01-20-30,也就是2021年5月1日1点20分30秒。在存入第二计算机设备的该条数据为日志数据时,若日志数据为用户A执行了登录操作,那么该条日志数据可以对应为Login,2021-05-01-01-20-30,UserA,UserAName,Age。该条日志数据就是目标数据中最小的数据单元。
将每个最小数据单元对应的哈希值设置在第一层级中,如图4所示,在第一层级中可以包含多条日志数据对应的哈希值。
以目标数据存入第二计算机设备的初始时间为起点,当存储时间每满第一预设时长时,则根据第一预设时长内传输的多个数据单元分别对应的哈希值生成第二层级的哈希值。比如,第一预设时长为一个小时,每一个小时内,第二计算机设备会存储多条日志数据,根据每一条日志数据对应的哈希值计算出这一个小时对应的哈希值,也就是计算出第二层级中这一个小时对应的哈希值。
第二计算机设备继续对目标数据进行存储,以目标数据存入第二计算机设备的初始时间为起点,当存储时间每满第二预设时长时,则根据第二预设时长内的每个第一预设时长的哈希值生成第三层级的哈希值。比如,第二预设时长为一天,那么一天内就会有二十四个小时,可以根据每个小时对应的哈希值生成这一天对应的哈希值,也就是计算出第三层级中这一天对应的哈希值。
同理,第四层级的哈希值,可以根据多天分别对应的哈希值来生成。如图4所示,第四层级可以是第一哈希树的最高层级,也就是根哈希。实际中的哈希树结构设置,可以根据具体的需求而设定。
在一些实施方式中,根哈希值是根据M天哈希值来生成的,当M为99时的根哈希值和当M为100时的根哈希值是不同的,也就是说,如图3所示,如果第四层级以下的层级发生哈希值变化,那么根哈希值也会发生变化,也就是当第三层级增加了第100天对应的哈希值时,那么第四层级的根哈希值就会发生改变。
通过上述第一哈希树的生成方式,目标数据在存入第二计算机设备时,就会根据存储时间及目标数据中数据内容生成第一哈希树。
当第二计算机设备接收到第一计算机设备发送的目标数据获取请求时,会根据目标数据获取请求向第一计算机设备传输目标数据。
请一并参阅图5,图5是本申请实施例提供的目标数据的传输示意图。
在一些实施方式中,在第二计算机设备内存储的目标数据可以是在不同的逻辑块中,如图5所示,目标数据可以存储在第一逻辑块、第二逻辑块、第三逻辑块中,这些逻辑块可以理解为是分布在多个不同物理磁盘上的,但是每个逻辑块中存储的数据可以是相同类型的数据,比如第一逻辑块中都是用户A的日志数据,第二逻辑块中都是用户B日志数据,第一逻辑块、第二逻辑块、第三逻辑块可以理解为是一个虚拟的相互单独存在的“磁盘”。
当第二计算机设备将目标数据向第一计算机设备传输时,第一计算机设备会将同类型的数据存储在对应的物理块中,比如,如图5所示,将第一天内所有的登入日志都存储在第一物理块中,将第一天内所有的登出日志都存储在第二物理块中。
在第一计算机设备的多个物理块,可以理解为是多个单独存在的文件夹,或者是多个单独存在的硬盘分区,或者是一个硬盘内的不同地址空间的多个分区。
第一计算机设备在获取第二计算机设备传输的目标数据时,会对目标数据的第一哈希树也进行获取并保存。
220、确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据。
当第二计算机设备先第一计算机设备传输目标数据时,第一计算机设备接收的数据就是待检验数据,需要对待检验数据进行检验,才能确认传输的待检验数据是否错误。
第一计算机设备可以获取待检验数据在第二计算机设备上的存储时间,比如,待检验数据中的一条日志数据为:2021-05-01/01/Login,那么该条日志数据就是2021年5月1日1时存储的。
在一些实施方式中,第一计算机设备还可以直接待检验数据的数据命名来确认待检验数据的存储时间。比如,待检验数据中的一个数据单元的命名为“2021-05-01/01/支付1”,则可以从该数据单元的命名中确定该数据单元在第二计算机设备中的存储时间为2021年5月1日1时。
需要说明的是,待检验数据可以是目标数据中的部分数据,也可以是目标数据中的全部数据。比如,第二计算机设备向第一计算机设备传输目标数据时,第一计算机设备只接收了部分数据,或者第一计算机接收了整个传输过程中的全部数据。
230、根据待检验数据生成第一哈希值,其中,待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值。
在一些实施方式中,第一计算机设备可以根据待检验数据生成第一哈希值,其中,待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值,然后第一计算机设备根据第一哈希值和存储时间生成第二哈希树。
在待检验数据中有多个数据单元,每一个数据单元都有自身对应的第一哈希值,第一哈希值可以作为第二哈希树最底层的哈希值。
240、根据第一哈希值和存储时间生成第二哈希树。
在一些实施方式中,第一计算机设备可以确定待检验数据在第二计算机设备存储的存储时间,然后确定存储时间中的初始存储时间。然后以初始存储时间为起点,当存储时间每满第一预设时长时,则根据第一预设时长内对应的第一哈希值生成第二哈希值,最后根据第一哈希值和第二哈希值生成第二哈希树。
其中,第一预设时长可以为一个小时,也可以根据实际需求设置。第一哈希值对应的层级是最低层级,而第二哈希值为第一层级上一层级的哈希值。
在一些实施方式中,第一计算机设备还可以采用其他方式来获取第二哈希树。请参阅图6,图6是本申请实施例提供的生成第二哈希树的流程示意图。
301、确定存储时间中的初始存储时间。
第一计算机设备可以确定待检验数据在第二计算机设备存储的存储时间,然后确定存储时间中的初始存储时间。
302、以初始存储时间为起点,当存储时间每满第一预设时长时,则根据第一预设时长内对应的第一哈希值生成第二哈希值。
在一些实施方式中,第一计算机设备可以以初始存储时间为起点,当存储时间每满第一预设时长时,则根据第一预设时长内对应的第一哈希值生成第二哈希值。其中第一预设时长和上述生成目标数据对应的第一哈希树的第一预设时长相同。第一预设时长可以为一小时。
303、以初始存储时间为起点,当存储时间每满第二预设时长时,则根据第二预设时长内对应的第二哈希值生成第三哈希值,第二预设时长大于第一预设时长。
在一些实施方式中,当存储时间每满第二预设时长时,则根据第二预设时长内对应的第二哈希值生成第三哈希值。
其中第二预设时长大于第一预设时长,第二预设时长中可以包括多个第一预设时长,比如第二预设时长为一天,第一预设时长为一个小时,那么第二预设时长中可以包含二十四个第一预设时长。
在第二预设时长中有多个第二哈希值,可以对多个第二哈希值进行计算,从而生成第三哈希值。
304、根据第一哈希值、第二哈希值、第三哈希值生成第二哈希树。
在一些实施方式中,第一哈希值、第二哈希值、第三哈希值是依次由低层级向高层级的。当第二哈希树中有多个第三哈希值时,可以根据多个第三哈希值推导计算得到第二哈希树的根哈希值。其中,第二哈希树的层级可以包括多个,上述的第一哈希值、第二哈希值、第三哈希值、根哈希分别对应一个层级,且是由低层级向高层级顺序,也就是四个层级。但是在第二哈希树的设置过程中,可以根据实际需要来设置哈希树的层级数,也就是根据实际需要来设置第二哈希树的结构。
在一些实施方式中,在第二计算机设备确定待检验数据时,如果待检验数据为日志数据,可以根据日志数据中的命名来确定具体的存储时间,比如,一条日志数据为:2021-05-01/01/Login,那么该条日志数据就是2021年5月1日1时存储的。存储时间就是2021年5月1日1时。
需要说明的是,第一哈希树和第二哈希树的构造方式是相同的,并且第一哈希树和第二哈希树中计算每一个节点的哈希值时,第一哈希树和第二哈希树采用了相同的还是算法,比如采取MD4、MD5、SHA-1等算法中的其中一种算法。从而防止在后续的数据检验过程中出现错误。
在一些实施方式中,如果第一预设时长为小时,第二预设时长为天,那么当第一天对应的目标数据传输完成之后,传输第二天对应的目标数据,此时第一计算机设备只计算第二天对应的数据的哈希值,不会重新计算第一天已传输数据的哈希值。
250、确定第一哈希树和第二哈希树相同层级的节点。
当第一计算机设备确定好待检验数据对应的第二哈希树之后,可以确定第一哈希树和第二哈希树相同的节点。比如,第二哈希树有第一层级到第三层级的节点,那么就确定第一哈希树中第一层级到第三层级的节点,第二哈希树第一层级的节点和第一哈希树第一层级的节点来对应,第二哈希树第二层级的节点和第一哈希树第二层级的节点来对应,第二哈希树第三层级的节点和第一哈希树第三层级的节点来对应。
260、确定第二哈希树的最高层级。
比如,第二哈希树有第一层级到第三层级的节点,第三层级为第二哈希树的最高层级。
270、按照由最高层级至低层级的顺序,逐层对比第二哈希树与第一哈希树相同层级的节点的哈希值,以对待检验数据进行检验。
在一些实施方式中,第一计算机设备在确定好第二哈希树的最高层级,以及确定好在第一哈希树中对应的相同层级之后,可以将第一哈希树的最高层级的节点和第二哈希树中对应层级的节点进行对比。然后按照由最高层级至低层级的顺序,逐层对比第二哈希树与第一哈希树相同层级的节点的哈希值,以对待检验数据进行检验。
请一并参阅图7,图7是本申请实施例提供的第一哈希树和第二哈希树的对比流程图。
在逐层对比第二哈希树与第一哈希树相同层级的节点的哈希值的过程中,可以包括以下步骤:
401、将第二哈希树的最高层级的节点作为目标节点。
在一些实施方式中,第一计算机设备可以先将第二哈希树的最高层级的节点作为目标节点。比如,第一哈希树的最高层级为根哈希所在层级,可以将根哈希对应的节点为目标节点。
402、对于每一目标节点,判断目标节点的哈希值在第一哈希树对应的层级是否有相等的哈希值。
在一些实施方式中,第一计算机设备如果判断出第二哈希树的最高层级的目标节点在第一哈希树对应的层级中没有相等的哈希值,说明待检验数据传输有误,此时进入步骤403。
第一计算机设备如果判断出第二哈希树的最高层级的目标节点在第一哈希树对应的层级中有相等的哈希值,说明待检验数据传输无误,此时进入步骤404。
403、若目标节点的哈希值在第一哈希树对应的层级没有相等的哈希值,则将目标节点的下一层级作为新的目标节点。
如果第二哈希树中上一层级的目标节点在第一哈希树对应的层级中没有相等的哈希值,可以继续对下一层级的目标节点进行检查,比如,下一层级的目标节点有A、B、C、D、E。则将A、B、C、D、E作为新的目标节点。
同时返回步骤402,继续执行对于每一目标节点,判断目标节点的哈希值在第一哈希树对应的层级是否有相等的哈希值的步骤。从而实现对新的目标节点进行检查。
在对A、B、C、D、E这几个目标节点进行对比检查时,如果目标节点A在第一哈希树对应的层级中没有对应相等的哈希值,则确定目标节点A对应的数据可能传输错误。此时可以确定目标节点A对应的目标数据单元,重新传输目标数据单元对应的所有数据。
或者,继续对目标节点A下一层级的节点作为新的目标节点,继续对新的目标节点进行检查,判断新的目标节点在第一哈希树对应的层级有没有相等的哈希值。通过该方式,一定会确定出第二哈希树中最低层级中传输错误的目标数据单元,从而对该目标数据单元进行重新传输,使得第一计算机设备重新获取对应的数据。
404、若目标节点的哈希值在第一哈希树对应的层级有相等的哈希值,则确定目标节点对应的数据检验无误。
如果第一计算机设备如果判断出第二哈希树的目标节点在第一哈希树对应的层级中均有相等的哈希值,则说明对待检验数据的检查无误,待检验数据没有传输错误。
在一些实施方式中,第一计算机设备在接收目标数据的过程中,可以采用一个进程来传输数据,采用另一个进程来生成第二哈希树,从而提高数据传输的速度。当传输数据的进程传输完成一块数据时,就可以向生成哈希树的进程发出通知,来生成已经传输的数据对应的哈希值。
在一些实施方式中,第一计算机设备可以实时生成第二哈希树,从而实时的和第一哈希树来进行对比,在目标数据传输的过程中,通过实时对比,就能够很快的确定出传输错误的数据,第一计算机设备和第二计算机设备就可以对传输错误的数据立刻进行重传。
在一些实施方式中,如果第一计算机设备的算力有限,可以先传输目标数据,等待目标数据全部传输完成之后,再通过上述方式来构建第二哈希树,然后第一计算机设备通过上述方式利用第一哈希树和第二哈希树来对第一计算机设备存储的待检验数据进行检验。
在一些实施方式中,如果第一计算机设备存储的待检验数据的数据比较庞大,对每个数据进行检查需要耗费较长的时间,此时第一计算机设备可以先构建第二哈希树,然后利用上述方式,通过第一哈希树和第二哈希树来对部分数据进行检验。
在一些实施方式中,还可以利用检查器软件,在检查器软件中输入对应的待检查节点,再生成待检查节点对应的哈希值,判断待检查节点对应的哈希值在第一哈希树中是否有对应相等的哈希值,从而实现对任一待检验节点对应的数据进行检验。
在本申请实施例中,通过获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的。然后确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据。再根据待检验数据生成第一哈希值,其中,待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值。然后根据第一哈希值和存储时间生成第二哈希树,确定第一哈希树和第二哈希树相同层级的节点,确定第二哈希树的最高层级。最后按照由最高层级至低层级的顺序,逐层对比第二哈希树与第一哈希树相同层级的节点的哈希值,以对待检验数据进行检验。
从而实现等待数据传输完成再对数据进行检验,或者隔一段时间对数据检验,或者针对特定部分的数据进行检验,从而使得数据检验更加灵活,从而提高了数据检验的效率。
为了更好地实施以上方法,相应的,本发明实施例还提供一种数据检验装置,该数据检验装置具体可以集成在终端中,例如以客户端的形式集成在终端中。
请参考图8,图8是本申请实施例提供的数据检验装置的第一结构示意图。该数据检验装置300包括:获取模块510、确定模块520、计算模块530、检验模块540。
获取模块510,用于获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的。
在一些实施方式中,第一计算机设备在需要目标数据时,会像第二计算机设备发出请求,第二计算机设备在接收到目标数据获取请求之后,会将目标数据向第一计算机设备传输。
第一计算机设备在接收第二计算机设备传输的目标数据时,获取模块510会获取目标数据对应的第一哈希树。其中,第一哈希树是由第二计算机设备根据目标数据生成的。
确定模块520,用于确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据。
确定模块520可以获取待检验数据在第二计算机设备上的存储时间,比如,待检验数据中的一条日志数据为:2021-05-01/01/Login,那么该条日志数据就是2021年5月1日1时存储的。
在一些实施方式中,确定模块520还可以直接待检验数据的数据命名来确认待检验数据的存储时间。比如,待检验数据中的一个数据单元的命名为“2021-05-01/01/支付1”,则可以从该数据单元的命名中确定该数据单元在第二计算机设备中的存储时间为2021年5月1日1时。
需要说明的是,待检验数据可以是目标数据中的部分数据,也可以是目标数据中的全部数据。比如,第二计算机设备向第一计算机设备传输目标数据时,第一计算机设备只接收了部分数据,或者第一计算机接收了整个传输过程中的全部数据。
计算模块530,用于根据所述待检验数据和所述存储时间计算所述待检验数据对应的第二哈希树。
在一些实施方式中,计算模块530根据所述待检验数据生成第一哈希值,其中,所述待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值;然后根据所述第一哈希值和所述存储时间生成所述第二哈希树。
在一些实施方式中,计算模块530具体用于:确定所述存储时间中的初始存储时间;
以所述初始存储时间为起点,当所述存储时间每满第一预设时长时,则根据所述第一预设时长内对应的所述第一哈希值生成第二哈希值;
根据所述第一哈希值和所述第二哈希值生成所述第二哈希树。
或者,计算模块530具体用于:以所述初始存储时间为起点,当所述存储时间每满第二预设时长时,则根据所述第二预设时长内对应的所述第二哈希值生成第三哈希值,所述第二预设时长大于所述第一预设时长;
根据所述第一哈希值、第二哈希值、第三哈希值生成所述第二哈希树。
检验模块540,用于根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
请一并参阅图9,图9是本申请实施例提供的数据检验装置的第二结构示意图。其中,检验模块540包括确定子模块541、检验子模块542。
确定子模块541,用于确定所述第一哈希树和所述第二哈希树相同层级的节点。
检验子模块542,用于对比所述第一哈希树和所述第二哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验。
在一些实施方式中,检验子模块542具体用于:
确定所述第二哈希树的最高层级;
按照由最高层级至低层级的顺序,逐层对比所述第二哈希树与所述第一哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验。
在一些实施方式中,检验子模块542具体还用于:
将所述第二哈希树的最高层级的节点作为目标节点;
对于每一目标节点,判断所述目标节点的哈希值在所述第一哈希树对应的层级是否有相等的哈希值;
若所述目标节点的哈希值在所述第一哈希树对应的层级没有相等的哈希值,则将所述目标节点的下一层级作为新的目标节点,并返回执行对于每一目标节点,判断所述目标节点的哈希值在所述第一哈希树对应的层级是否有相等的哈希值的步骤,直至确定出校验有误的目标数据单元;
若所述目标节点的哈希值在所述第一哈希树对应的层级有相等的哈希值,则确定所述目标节点对应的数据检验无误。
在本申请实施例中,通过获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的,然后确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据,再根据待检验数据和存储时间计算待检验数据对应的第二哈希树,最后根据第一哈希树和第二哈希树对待检验数据进行数据检验。其中,第一哈希树和第二哈希树是根据相同的哈希树构建方式构建的哈希树,通过第一哈希树和第二哈希树来进行对比,能够等待数据传输完成再对数据进行检验,或者隔一段时间对数据检验,或者针对特定部分的数据进行检验,从而使得数据检验更加灵活,从而提高了数据检验的效率。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图10所示,图10为本申请实施例提供的计算机设备的结构示意图。该计算机设备1000包括有一个或者一个以上处理核心的处理器601、有一个或一个以上计算机可读存储介质的存储器602及存储在存储器602上并可在处理器上运行的计算机程序。其中,处理器601与存储器602电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器601是计算机设备1000的控制中心,利用各种接口和线路连接整个计算机设备1000的各个部分,通过运行或加载存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行计算机设备1000的各种功能和处理数据,从而对计算机设备1000进行整体监控。
在本申请实施例中,计算机设备1000中的处理器601会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能:
获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的;
确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据;
根据所述待检验数据和所述存储时间计算所述待检验数据对应的第二哈希树;
根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图10所示,计算机设备1000还包括:触控显示屏603、射频电路604、音频电路605、输入单元606以及电源607。其中,处理器601分别与触控显示屏603、射频电路604、音频电路605、输入单元606以及电源607电性连接。本领域技术人员可以理解,图10中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏603可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏603可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器601,并能接收处理器601发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器601以确定触摸事件的类型,随后处理器601根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏603而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏603也可以作为输入单元606的一部分实现输入功能。
射频电路604可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路605可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路605可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路605接收后转换为音频数据,再将音频数据输出处理器601处理后,经射频电路604以发送给比如另一计算机设备,或者将音频数据输出至存储器602以便进一步处理。音频电路605还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元606可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源607用于给计算机设备1000的各个部件供电。可选的,电源607可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源607还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图10中未示出,计算机设备1000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,能够通过获取第二计算机设备传输的目标数据对应的第一哈希树,第一哈希树是由第二计算机设备根据目标数据生成的,然后确定待检验数据,并获取待检验数据在第二计算机设备上的存储时间,待检验数据为目标数据中的部分数据或全部数据,再根据待检验数据和存储时间计算待检验数据对应的第二哈希树,最后根据第一哈希树和第二哈希树对待检验数据进行数据检验。其中,第一哈希树和第二哈希树是根据相同的哈希树构建方式构建的哈希树,通过第一哈希树和第二哈希树来进行对比,能够等待数据传输完成再对数据进行检验,或者隔一段时间对数据检验,或者针对特定部分的数据进行检验,从而使得数据检验更加灵活,从而提高了数据检验的效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种数据检验方法中的步骤。例如,该指令可以执行如下步骤:
获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的;
确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据;
根据所述待检验数据和所述存储时间计算所述待检验数据对应的第二哈希树;
根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种数据检验方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据检验方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据检验方法、装置、存储介质和计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种数据检验方法,其特征在于,应用于第一计算机设备,所述方法包括:
获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的;
确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据;
根据所述待检验数据生成第一哈希值,其中,所述待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值;
确定所述存储时间中的初始存储时间;
以所述初始存储时间为起点,当所述存储时间每满第一预设时长时,则根据所述第一预设时长内对应的所述第一哈希值生成第二哈希值;
根据所述第一哈希值和所述第二哈希值生成第二哈希树;
根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
2.根据权利要求1所述的数据检验方法,其特征在于,所述确定待检验数据,包括:
接收所述第二计算机设备实时传输的目标数据,并将所述目标数据中的已传输数据作为待检验数据。
3.根据权利要求1所述的数据检验方法,其特征在于,在根据所述第一预设时长内对应的所述第一哈希值生成第二哈希值之后,所述方法还包括:
以所述初始存储时间为起点,当所述存储时间每满第二预设时长时,则根据所述第二预设时长内对应的所述第二哈希值生成第三哈希值,所述第二预设时长大于所述第一预设时长;
所述根据所述第一哈希值和所述存储时间生成所述第二哈希树,包括:
根据所述第一哈希值、第二哈希值、第三哈希值生成所述第二哈希树。
4.根据权利要求1所述的数据检验方法,其特征在于,所述根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验,包括:
确定所述第一哈希树和所述第二哈希树相同层级的节点;
对比所述第一哈希树和所述第二哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验。
5.根据权利要求4所述的数据检验方法,其特征在于,所述对比所述第一哈希树和所述第二哈希树相同层级的哈希值,以对所述待检验数据进行检验,包括:
确定所述第二哈希树的最高层级;
按照由最高层级至低层级的顺序,逐层对比所述第二哈希树与所述第一哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验。
6.根据权利要求5所述的数据检验方法,其特征在于,按照由最高层级至低层级的顺序,逐层对比所述第二哈希树与所述第一哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验,包括:
将所述第二哈希树的最高层级的节点作为目标节点;
对于每一目标节点,判断所述目标节点的哈希值在所述第一哈希树对应的层级是否有相等的哈希值;
若所述目标节点的哈希值在所述第一哈希树对应的层级没有相等的哈希值,则将所述目标节点的下一层级作为新的目标节点,并返回执行对于每一目标节点,判断所述目标节点的哈希值在所述第一哈希树对应的层级是否有相等的哈希值的步骤,直至确定出检验有误的目标数据单元;
若所述目标节点的哈希值在所述第一哈希树对应的层级有相等的哈希值,则确定所述目标节点对应的数据检验无误。
7.根据权利要求6所述的数据检验方法,其特征在于,所述确定出检验有误的数据单元之后,所述方法还包括:
从第一计算机设备重新获取所述目标数据单元。
8.一种数据检验装置,其特征在于,应用于第一计算机设备,所述装置包括:
获取模块,用于获取第二计算机设备传输的目标数据对应的第一哈希树,所述第一哈希树是由第二计算机设备根据所述目标数据生成的;
确定模块,用于确定待检验数据,并获取所述待检验数据在所述第二计算机设备上的存储时间,所述待检验数据为所述目标数据中的部分数据或全部数据;
计算模块,用于根据所述待检验数据生成第一哈希值,其中,所述待检验数据包括多个数据单元,每一数据单元对应一个第一哈希值;
确定所述存储时间中的初始存储时间;
以所述初始存储时间为起点,当所述存储时间每满第一预设时长时,则根据所述第一预设时长内对应的所述第一哈希值生成第二哈希值;
根据所述第一哈希值和所述第二哈希值生成第二哈希树;
检验模块,用于根据所述第一哈希树和所述第二哈希树对所述待检验数据进行数据检验。
9.根据权利要求8所述的数据检验装置,其特征在于,所述检验模块包括:
确定子模块,用于确定所述第一哈希树和所述第二哈希树相同层级的节点;
检验子模块,用于对比所述第一哈希树和所述第二哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验。
10.根据权利要求9所述的数据检验装置,其特征在于,所述检验子模块用于:
确定所述第二哈希树的最高层级;
按照由最高层级至低层级的顺序,逐层对比所述第二哈希树与所述第一哈希树相同层级的节点的哈希值,以对所述待检验数据进行检验。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-7任一项所述的数据检验方法中的步骤。
12.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1-7任一项所述的数据检验方法中的步骤。
CN202110819182.5A 2021-07-20 2021-07-20 数据检验方法、装置、存储介质及计算机设备 Active CN113419894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110819182.5A CN113419894B (zh) 2021-07-20 2021-07-20 数据检验方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110819182.5A CN113419894B (zh) 2021-07-20 2021-07-20 数据检验方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN113419894A CN113419894A (zh) 2021-09-21
CN113419894B true CN113419894B (zh) 2022-11-15

Family

ID=77721899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110819182.5A Active CN113419894B (zh) 2021-07-20 2021-07-20 数据检验方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN113419894B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312292B (zh) * 2023-11-28 2024-02-02 深圳市移卡科技有限公司 基于树图的机构运营报表校验方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN107705208A (zh) * 2017-10-12 2018-02-16 南京网数信息科技有限公司 一种基于哈希树的数字资产处理方法和系统
CN108243004A (zh) * 2016-12-27 2018-07-03 泰德阳光有限公司 一种实时稽核的云端访问方法
CN111259070A (zh) * 2019-11-28 2020-06-09 国网山东省电力公司 一种业务数据存储、获取的方法及相关装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3259871B1 (en) * 2015-02-20 2020-09-16 Telefonaktiebolaget LM Ericsson (publ) Method of providing a hash value for a piece of data, electronic device and computer program
US10778452B2 (en) * 2019-06-03 2020-09-15 Alibaba Group Holding Limited Blockchain ledger authentication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN108243004A (zh) * 2016-12-27 2018-07-03 泰德阳光有限公司 一种实时稽核的云端访问方法
CN107705208A (zh) * 2017-10-12 2018-02-16 南京网数信息科技有限公司 一种基于哈希树的数字资产处理方法和系统
CN111259070A (zh) * 2019-11-28 2020-06-09 国网山东省电力公司 一种业务数据存储、获取的方法及相关装置

Also Published As

Publication number Publication date
CN113419894A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN112261135A (zh) 基于一致性协议的节点选举方法、系统、装置及设备
US9607088B2 (en) Method and apparatus for detecting multimedia content change, and resource propagation system
CN111447107A (zh) 网络状态确定方法、装置、存储介质及电子设备
CN109889325B (zh) 校验方法、装置、电子设备及介质
JP2017532660A (ja) マルチテナント・サービスのための自動テナント・アップグレード
CN113419894B (zh) 数据检验方法、装置、存储介质及计算机设备
CN116932265A (zh) 故障模拟处理方法、装置、设备及存储介质
US20150161007A1 (en) Contact person backup method, device and storage medium for mobile terminal
WO2023138923A1 (en) Failure prediction using informational logs and golden signals
CN113890753B (zh) 数字身份管理方法、装置、系统、计算机设备和存储介质
CN109840072A (zh) 信息处理方法和装置
WO2023066258A1 (zh) 隐私数据的数据处理方法、装置、计算机设备及介质
CN113658711B (zh) 医疗数据本地化方法、装置、计算机设备及存储介质
CN112286808B (zh) 应用程序的测试方法、装置、电子设备及介质
CN115187364A (zh) 银行分布式场景下保证金风险监控的方法及装置
CN116414861A (zh) 数据查询方法、装置、电子设备和存储介质
CN109783308A (zh) 一种终端检测的方法及终端设备
CN115412726B (zh) 视频真伪检测方法、装置及存储介质
CN112783860B (zh) 构造镜像数据库的方法、装置、存储介质及计算机设备
CN115858652A (zh) 一种数据转换方法、装置、计算机设备及存储介质
CN116028442A (zh) 用于资源依赖解析的元信息生成方法、装置和存储介质
CN114785722A (zh) 监控数据处理方法、装置及计算机可读存储介质
CN113806362A (zh) 测试记录信息的生成方法、装置、计算机设备和存储介质
CN113419795A (zh) 调用关系的展示方法、装置、计算机设备及存储介质
CN115202716A (zh) 依赖缺失的检测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant