CN107861832A - 数据验证方法、装置及可读存储介质 - Google Patents

数据验证方法、装置及可读存储介质 Download PDF

Info

Publication number
CN107861832A
CN107861832A CN201710895274.5A CN201710895274A CN107861832A CN 107861832 A CN107861832 A CN 107861832A CN 201710895274 A CN201710895274 A CN 201710895274A CN 107861832 A CN107861832 A CN 107861832A
Authority
CN
China
Prior art keywords
data
verification
storage
write
version number
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.)
Granted
Application number
CN201710895274.5A
Other languages
English (en)
Other versions
CN107861832B (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201710895274.5A priority Critical patent/CN107861832B/zh
Publication of CN107861832A publication Critical patent/CN107861832A/zh
Application granted granted Critical
Publication of CN107861832B publication Critical patent/CN107861832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

本发明公开了一种基于校验和的数据验证方法,包括以下步骤:接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,所述验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;判断数据版本号DV是否等于校验和版本号CV;若是,则生成数据D的当前校验和C1,否则退出数据验证;判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。本发明公开了一种基于校验和的数据验证装置及一种计算机可读存储介质。本发明可以有效的检测和避免校验和误判,提高使用校验和检测数据错误的精度,减少对系统的负面影响。

Description

数据验证方法、装置及可读存储介质
技术领域
本发明涉及数据验证技术领域,尤其涉及一种基于校验和的数据验证方法、装置及计算机可读存储介质。
背景技术
保持数据完整性是现代存储系统最重要的职责,因此有各种各样的技术被开发和应用来改进数据完整性保护,其中最常用的就是校验和方法。一般使用校验和对数据进行保护的时候,一旦数据出现非正常更改,那么在读取的时候重新计算的校验就不等于存储时计算的校验和,进而可判断数据是否存在存储错误。
然而,现有技术中,在使用校验和来验证数据是否错误/损坏的过程中,校验和本身也会存在错误,而且在写入过程中因为数据与校验和的写入不同步,那么这时使用校验和去验证数据则会把正确的数据判定错误。比如分布式系统,有并发访问的特性,因而会因校验和还未写入而出现访问时读取新数据但用旧校验和来验证数据完整性,或因数据还未写入而出现访问时读取旧数据用新校验和来验证数据完整性进而出现错误判断。
发明内容
本发明的主要目的在于提供一种基于校验和的数据验证方法、装置及计算机可读存储介质,旨在解决如何避免使用校验和进行数据验证时存在误判的技术问题。
为实现上述目的,本发明提供一种基于校验和的数据验证方法,所述数据验证方法包括以下步骤:
接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,所述验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
判断数据版本号DV是否等于校验和版本号CV;
若是,则生成数据D的当前校验和C1,否则退出数据验证;
判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。
可选地,所述验证数据还包括上一次存储校验和C2,所述数据验证方法还包括:
在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
若是,则返回校验和更新未成功的信息,并退出数据验证,否则报错。
可选地,所述接收数据读取请求的步骤之前,所述数据验证方法还包括:
接收数据写入请求,生成待写入数据D的本次存储校验和C;
判断数据D是否为首次写入;
若是,则初始化版本号V,否则修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
将版本号V分别赋值给数据版本号DV与校验和版本号CV;
写入数据D与验证数据;
其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
可选地,所述数据验证方法还包括:
在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
进一步地,为实现上述目的,本发明还提供一种基于校验和的数据验证装置,所述数据验证装置包括:
存储有数据验证程序的存储器;
处理器,配置为执行所述数据验证程序以执行下述操作:
接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,所述验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
判断数据版本号DV是否等于校验和版本号CV;
若是,则生成数据D的当前校验和C1,否则退出数据验证;
判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。
可选地,所述验证数据还包括上一次存储校验和C2,所述处理器还执行所述数据验证程序以执行下述操作:
在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
若是,则返回校验和更新未成功的信息,并退出数据验证,否则报错。
可选地,在执行接收数据读取请求的操作之前,所述处理器还执行所述数据验证程序以执行下述操作:
接收数据写入请求,生成待写入数据D的本次存储校验和C;
判断数据D是否为首次写入;
若是,则初始化版本号V,否则修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
将版本号V分别赋值给数据版本号DV与校验和版本号CV;
写入数据D与验证数据;
其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
可选地,所述处理器还执行所述数据验证程序以执行下述操作:
在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据验证程序,所述数据验证程序被处理器执行时实现如上述任一项所述的数据验证方法的步骤。
本发明中,在读取数据的同时还读取验证数据,该验证数据中至少包括数据版本号与校验和版本号,进而通过比较数据版本号与校验和版本号,确定数据读取过程中是否存在数据写入或者数据读取是否发生在数据写入过程中,若是,则退出数据验证,否则比较读取到的数据的当前校验和与该数据存储时的校验和是否相等,进而确定读取到的数据是否准确,若准确则返回准确数据,否则报错。本发明可以有效的检测和避免校验和误判,提高使用校验和检测数据错误的精度,减少对系统的负面影响。
附图说明
图1为本发明实施例方案涉及硬件运行环境的数据验证装置的结构示意图;
图2为本发明基于校验和的数据验证方法第一实施例的流程示意图;
图3为本发明基于校验和的数据验证方法第二实施例的流程示意图;
图4为本发明基于校验和的数据验证方法第三实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的数据验证装置的结构示意图。
本发明实施例数据验证装置可以是智能手机、平板电脑、电子书阅读器、便携计算机等具有显示功能的设备。
如图1所示,该数据验证装置可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,数据验证装置还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图1中示出的数据验证装置结构并不构成对数据验证装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据验证程序。其中,操作系统是管理和控制数据验证装置与软件资源的程序,支持网络通信模块、用户接口模块、数据验证程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的数据验证装置中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;数据验证装置通过处理器1001调用存储器1005中存储的数据验证程序,并执行以下步骤:
接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
判断数据版本号DV是否等于校验和版本号CV;
若是,则生成数据D的当前校验和C1,否则退出数据验证;
判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。
进一步地,验证数据还包括上一次存储校验和C2,所述数据验证装置通过处理器1001调用存储器1005中存储的数据验证程序,以执行以下操作:
在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
若是,则返回校验和更新未成功的信息,并退出数据验证,否则报错。
进一步地,所述数据验证装置通过处理器1001调用存储器1005中存储的数据验证程序,以执行以下操作:
接收数据写入请求,生成待写入数据D的本次存储校验和C;
判断数据D是否为首次写入;
若是,则初始化版本号V,否则修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
将版本号V分别赋值给数据版本号DV与校验和版本号CV;
写入数据D与验证数据;
其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
进一步地,所述数据验证装置通过处理器1001调用存储器1005中存储的数据验证程序,以执行以下操作:
在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
基于上述数据验证装置硬件结构,提出本发明数据验证方法的各个实施例。
参照图2,图2为本发明基于校验和的数据验证方法第一实施例的流程示意图。本实施例中,基于校验和的数据验证方法包括:
步骤S10,接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
本实施例中,对于数据读取请求发送方不限,比如可以是数据所在系统的应用程序发出数据读取请求。此外,数据读取请求针对的是数据的保存位置而非数据本身,也即数据读取请求读取的是对应位置存储的数据。
为便于简便清楚地进行说明,本实施例中将读取的数据记为D,将数据D的版本号记为DV,将数据D在本次存储时生成的校验和记为C,将本次校验和的版本号记为CV。需要进一步说明的是,数据D每一次写入都会生成对应的校验和C,并且每一次生成的校验和都不相同,同时本实施例中引入了数据版本号DV与校验和版本号CV,并且,数据D每发生一次写入,数据版本号DV与校验和版本号CV都会相应发生改变。
本实施例中,在读取数据D时,为确保读取到正确的数据D,因而在读取过程中,需要对数据D进行验证,具体基于验证数据进行验证。本实施例中,验证数据除了数据D存储时生成的校验和C以外,还引入了数据版本号DV与校验和版本号CV。
步骤S20,判断数据版本号DV是否等于校验和版本号CV;
本实施例中,读取数据请求可能发生在数据写入过程中,因而可能会存在数据与校验和未同步写入而导致数据验证出现误判的情形。比如,数据已写入而校验和还未写入,进而出现访问时读取新数据但用旧校验和来验证数据完整性的情形;或者,校验和已写入而数据还未写入,进而出现访问时读取旧数据但用新校验和来验证数据完整性的情形,因而可能会存在错误判断的问题。
因此,本实施例中,通过判断数据版本号DV是否等于校验和版本号CV,即可避免数据与校验和未同步写入而导致数据验证出现误判的情形。如果DV等于CV,则认为数据与校验和为同步写入,进而可以进行数据完整性判断,而如果DV不等于CV,则不能进行数据完整性判断,因而需要退出数据验证。
步骤S30,若DV等于CV,则生成数据D的当前校验和C1;
本实施例中,若DV等于CV,也即可以进行数据完整性判断时,此时,考虑到读取出来的数据D在写入过程中可能发生错误,也即执行写入操作之前的数据在执行写入操作后发生了错误,进而导致存储的数据并不是实际需要写入的数据,因此,基于读取出来的数据D计算其当前校验和C1。
步骤S40,判断当前校验和C1是否等于本次存储校验和C;
步骤S50,若C1等于C,则返回数据D;
步骤S60,若C1不等于C,则报错;
步骤S70,若DV不等于CV,则退出数据验证。
本实施例中,如果C1等于C,也即数据D执行本次写入操作所生成的本次校验和C与读取后生成的当前校验和C1相等,则说明数据D保持了数据的完整性,也即数据D写入过程中并没有发生错误,因而读取到的数据D是正确的数据,因此将数据D返回给数据请求方。而如果C1不等于C,则说明数据D没有保持数据的完整性,也即数据D写入过程中发生了错误,因此向数据请求方报错,比如数据D存在错误或损坏,或者数据D已丢失。
本实施例中,在读取数据的同时还读取验证数据,该验证数据中至少包括数据版本号与校验和版本号,进而通过比较数据版本号与校验和版本号,确定数据读取过程中是否存在数据写入或者数据读取是否发生在数据写入过程中,若是,则退出数据验证,否则比较读取到的数据的当前校验和与该数据存储时的校验和是否相等,进而确定读取到的数据是否准确,若准确则返回准确数据,否则报错。本发明可以有效的检测和避免校验和误判,提高使用校验和检测数据错误的精度,减少对系统的负面影响。
参照图3,图3为本发明基于校验和的数据验证方法第二实施例的流程示意图。基于上述实施例,本实施例中,基于校验和的数据验证方法还包括:
步骤S601,在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
步骤S602,若C等于C2,则返回校验和更新未成功的信息,并退出数据验证;
步骤S603,若C不等于C2,则报错。
本实施例中,在步骤S10中读取的验证数据还包括数据D的上一次存储校验和C2。其中,C1、C2是相邻两次写数据D时所分别生成的校验和。
本实施例中,若读取数据D后计算得到的校验和C1不等于数据D本次写入时生成的本次存储校验和C,则可确定读取的数据D存在错误,而导致读取的数据D错误的原因主要包括两类:一类是校验和自身的错误所导致的误判;另一类是数据D自身的错误。
因此,为进一步确定导致读取的数据D错误的原因,判断本次存储校验和C是否等于数据D上一次写入时生成的上一次存储校验和C2。若C等于C2,也即数据D的相邻两次写入所对应的存储校验和相同,进而可以判断数据D的本次写入所生成的校验和C并未成功写入,当前存储的还是上一次写入所生成的校验和C2,因而返回校验和更新未成功的信息并退出数据验证,也即是校验和自身的错误所导致的误判;而如果C不等于C2,则可确定是数据D自身的错误。
参照图4,图4为本发明基于校验和的数据验证方法第三实施例的流程示意图。基于上述第一实施例,本实施例中,在上述步骤S10之前还包括:
步骤S01,接收数据写入请求,生成待写入数据D的本次存储校验和C;
步骤S02,判断数据D是否为首次写入;
步骤S03,若是,则初始化版本号V;
步骤S04,若否,修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
步骤S05,将版本号V分别赋值给数据版本号DV与校验和版本号CV;
步骤S06,写入数据D与验证数据,其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
本实施例中,版本号V、数据版本号DV与校验和版本号CV为预置参数。
当接收到数据写入请求时,生成待写入数据D的本次存储校验和C,然后判断数据D是否为首次写入。其中,对于判断数据D是否为首次写入的条件设置不限,比如通过判断版本号V是否为NULL来确定数据D是否为第一次写入。
若数据D为首次写入,则初始化版本号V,比如令版本号V=0;而若数据D为非首次写入,则修改版本号V,比如令版本号V=V+1,由于数据D为非首次写入,因此,进一步获取上一次写入数据D时生成的上一次存储校验和C2;
然后再将版本号V分别赋值给数据版本号DV与校验和版本号CV,也即DV=CV=C,最后再写入数据D与验证数据。需要进一步说明的是,如果数据D为首次写入,则验证数据为数据版本号DV、本次存储校验和C以及校验和版本号CV,而若数据D为非首次写入,则验证数据进一步还写入上一次存储校验和C2。
可选的,为减少数据与校验和同时写失败的可能,因此,优选将数据与校验和分开分离存储。具体为:在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
此外,本发明还提供一种计算机可读存储介质。计算机可读存储介质上存储有数据验证程序,数据验证程序被处理器执行时实现如下操作:
接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,所述验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
判断数据版本号DV是否等于校验和版本号CV;
若是,则生成数据D的当前校验和C1,否则退出数据验证;
判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。
本实施例中,在读取数据的同时还读取验证数据,该验证数据中至少包括数据版本号与校验和版本号,进而通过比较数据版本号与校验和版本号,确定数据读取过程中是否存在数据写入或者数据读取是否发生在数据写入过程中,若是,则退出数据验证,否则比较读取到的数据的当前校验和与该数据存储时的校验和是否相等,进而确定读取到的数据是否准确,若准确则返回准确数据,否则报错。本发明可以有效的检测和避免校验和误判,提高使用校验和检测数据错误的精度,减少对系统的负面影响。
进一步地,所述据验证程序被处理器执行时还实现如下操作:
在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
若是,则返回校验和更新未成功的信息,并退出数据验证,否则报错。
进一步地,所述据验证程序被处理器执行时还实现如下操作:
接收数据写入请求,生成待写入数据D的本次存储校验和C;
判断数据D是否为首次写入;
若是,则初始化版本号V,否则修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
将版本号V分别赋值给数据版本号DV与校验和版本号CV;
写入数据D与验证数据;
其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
进一步地,所述据验证程序被处理器执行时还实现如下操作:
在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种基于校验和的数据验证方法,其特征在于,所述数据验证方法包括以下步骤:
接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,所述验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
判断数据版本号DV是否等于校验和版本号CV;
若是,则生成数据D的当前校验和C1,否则退出数据验证;
判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。
2.如权利要求1所述的数据验证方法,其特征在于,所述验证数据还包括上一次存储校验和C2,所述数据验证方法还包括:
在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
若是,则返回校验和更新未成功的信息,并退出数据验证,否则报错。
3.如权利要求1或2所述的数据验证方法,其特征在于,所述接收数据读取请求的步骤之前,所述数据验证方法还包括:
接收数据写入请求,生成待写入数据D的本次存储校验和C;
判断数据D是否为首次写入;
若是,则初始化版本号V,否则修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
将版本号V分别赋值给数据版本号DV与校验和版本号CV;
写入数据D与验证数据;
其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
4.如权利要求2所述的数据验证方法,其特征在于,所述数据验证方法还包括:
在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
5.一种基于校验和的数据验证装置,其特征在于,所述数据验证装置包括:
存储有数据验证程序的存储器;
处理器,配置为执行所述数据验证程序以执行下述操作:
接收数据读取请求,读取对应位置存储的数据D以及在写入该数据D时写入的验证数据,其中,所述验证数据至少包括数据版本号DV、本次存储校验和C及校验和版本号CV;
判断数据版本号DV是否等于校验和版本号CV;
若是,则生成数据D的当前校验和C1,否则退出数据验证;
判断当前校验和C1是否等于本次存储校验和C,若是,则返回数据D,否则报错。
6.如权利要求5所述的数据验证装置,其特征在于,所述验证数据还包括上一次存储校验和C2,所述处理器还执行所述数据验证程序以执行下述操作:
在当前校验和C1不等于本次存储校验和C时,判断本次存储校验和C是否等于上一次存储校验和C2;
若是,则返回校验和更新未成功的信息,并退出数据验证,否则报错。
7.如权利要求5或6所述的数据验证装置,其特征在于,在执行接收数据读取请求的操作之前,所述处理器还执行所述数据验证程序以执行下述操作:
接收数据写入请求,生成待写入数据D的本次存储校验和C;
判断数据D是否为首次写入;
若是,则初始化版本号V,否则修改版本号V,并获取上一次写入数据D时生成的上一次存储校验和C2;
将版本号V分别赋值给数据版本号DV与校验和版本号CV;
写入数据D与验证数据;
其中,若数据D为首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C以及校验和版本号CV;若数据D为非首次写入,则在写入数据D时还写入数据版本号DV、本次存储校验和C、上一次存储校验和C2以及校验和版本号CV。
8.如权利要求6所述的数据验证装置,其特征在于,所述处理器还执行所述数据验证程序以执行下述操作:
在写入数据D与验证数据时,将数据D与数据版本号DV一同写入第一存储位置;将本次存储校验和C与校验和版本号CV或者本次存储校验和C、上一次存储校验和C2以及校验和版本号CV一同写入第二存储位置。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据验证程序,所述数据验证程序被处理器执行时实现如权利要求1至4中任一项所述的数据验证方法的步骤。
CN201710895274.5A 2017-09-27 2017-09-27 数据验证方法、装置及可读存储介质 Active CN107861832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710895274.5A CN107861832B (zh) 2017-09-27 2017-09-27 数据验证方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710895274.5A CN107861832B (zh) 2017-09-27 2017-09-27 数据验证方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN107861832A true CN107861832A (zh) 2018-03-30
CN107861832B CN107861832B (zh) 2020-11-13

Family

ID=61699522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710895274.5A Active CN107861832B (zh) 2017-09-27 2017-09-27 数据验证方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN107861832B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245523A (zh) * 2019-05-22 2019-09-17 北京奇艺世纪科技有限公司 一种数据校验方法、系统和装置及计算机可读存储介质
CN110348244A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 基于仲裁的多校验和验证方法、系统、装置及存储介质
CN110442474A (zh) * 2018-05-02 2019-11-12 深信服科技股份有限公司 一种数据一致性验证方法、系统及数据验证端
CN110955545A (zh) * 2018-09-26 2020-04-03 深信服科技股份有限公司 一种数据完整性校验方法、系统及相关设备
NO20201064A1 (en) * 2020-09-29 2022-03-30 Mhwirth As A method and system for verifying a software application

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357189A (zh) * 1999-06-18 2002-07-03 艾利森电话股份有限公司 利用历史信息的稳健的德尔塔编码技术
WO2010052647A1 (en) * 2008-11-10 2010-05-14 Nokia Corporation Method and apparatus for updating firmware
CN102662789A (zh) * 2012-03-27 2012-09-12 株洲南车时代电气股份有限公司 一种elf文件添加crc校验的方法
CN105701159A (zh) * 2015-12-30 2016-06-22 华为技术有限公司 一种数据同步装置和方法
CN106126367A (zh) * 2016-06-28 2016-11-16 湖北锐世数字医学影像科技有限公司 一种文件的自校验方法及系统
CN107005348A (zh) * 2014-11-27 2017-08-01 赛峰电子与防务公司 验证主上游单元和主下游单元间的数据传输的完整性的方法
CN107203714A (zh) * 2016-03-18 2017-09-26 北京京东尚科信息技术有限公司 数据校验文件的配置方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357189A (zh) * 1999-06-18 2002-07-03 艾利森电话股份有限公司 利用历史信息的稳健的德尔塔编码技术
WO2010052647A1 (en) * 2008-11-10 2010-05-14 Nokia Corporation Method and apparatus for updating firmware
CN102662789A (zh) * 2012-03-27 2012-09-12 株洲南车时代电气股份有限公司 一种elf文件添加crc校验的方法
CN107005348A (zh) * 2014-11-27 2017-08-01 赛峰电子与防务公司 验证主上游单元和主下游单元间的数据传输的完整性的方法
CN105701159A (zh) * 2015-12-30 2016-06-22 华为技术有限公司 一种数据同步装置和方法
CN107203714A (zh) * 2016-03-18 2017-09-26 北京京东尚科信息技术有限公司 数据校验文件的配置方法和装置
CN106126367A (zh) * 2016-06-28 2016-11-16 湖北锐世数字医学影像科技有限公司 一种文件的自校验方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348244A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 基于仲裁的多校验和验证方法、系统、装置及存储介质
CN110442474A (zh) * 2018-05-02 2019-11-12 深信服科技股份有限公司 一种数据一致性验证方法、系统及数据验证端
CN110442474B (zh) * 2018-05-02 2023-07-11 深信服科技股份有限公司 一种数据一致性验证方法、系统及数据验证端
CN110955545A (zh) * 2018-09-26 2020-04-03 深信服科技股份有限公司 一种数据完整性校验方法、系统及相关设备
CN110245523A (zh) * 2019-05-22 2019-09-17 北京奇艺世纪科技有限公司 一种数据校验方法、系统和装置及计算机可读存储介质
CN110245523B (zh) * 2019-05-22 2021-02-12 北京奇艺世纪科技有限公司 一种数据校验方法、系统和装置及计算机可读存储介质
NO20201064A1 (en) * 2020-09-29 2022-03-30 Mhwirth As A method and system for verifying a software application
NO346991B1 (en) * 2020-09-29 2023-03-27 Mhwirth As A method and system for verifying a software application

Also Published As

Publication number Publication date
CN107861832B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN107861832A (zh) 数据验证方法、装置及可读存储介质
CN108388514B (zh) 接口自动化测试方法、装置、设备及计算机可读存储介质
CN106940695B (zh) 数据源信息的校验方法及装置
CN111078459B (zh) 半导体芯片的测试方法、装置及系统
CN107608609B (zh) 一种事件对象发送方法与装置
CN112925679A (zh) 固件升级方法、非易失性存储器、计算机存储介质及终端
CN103279401A (zh) 一种访问存储器的方法及装置
CN117389811A (zh) 基于断电模式的状态转换测试测试方法及相关组件
CN109343800B (zh) 存储设备管理方法、装置及可读存储介质
CN114492269B (zh) 闪存控制器的验证系统
CN108563578A (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
CN115757190A (zh) 生产程序仿真测试方法、装置、设备、存储介质
KR20120111618A (ko) Plc 명령어 테스트 장치 및 방법
CN113535578B (zh) 一种cts测试方法、装置及测试设备
CN114218072A (zh) 测试脚本生成方法、装置、存储介质及计算机设备
CN113535580A (zh) 一种cts测试方法、装置及测试设备
CN103870368A (zh) Sas扩展卡测试系统及方法
CN112463633A (zh) 一种片上存储器的地址译码校验方法、装置、设备及介质
CN217825010U (zh) 通信测试系统
CN108052413A (zh) 基于多次验证的数据处理方法、装置及存储介质
CN117076182B (zh) 一种错误上报方法、片上系统、计算机设备及存储介质
CN110476153A (zh) 访问指令sram的方法和电子设备
CN108255715A (zh) 一种测试结果处理方法及终端设备
CN112187564B (zh) 一种vSAN性能测试方法、装置、计算机设备及存储介质
CN117076183B (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