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

数据校验方法、装置、存储介质及电子设备与流程

2022-02-21 08:07:26 来源:中国专利 TAG:
数据校验方法、装置、存储介质及电子设备与流程

本申请涉及计算机技术领域,尤其涉及一种数据校验方法、装置、存储介质及电子设备。

背景技术

随着通信技术的发展,数据校验显得尤为重要,数据校验,可以保证数据的完整性、正确性和安全性对输入数据进行校验的技术,是互联网技术中对系统和用户数据安全的一种重要的手段。

目前,在对数据校验的过程中,终端可以获取进行数据检验的镜像数据,然后再对镜像数据进行检验。如,在对终端的操作系统升级时,终端可以通过快速启动(fastboot)模式获取到操作系统升级的镜像数据,然后终端再采用校验算法对镜像数据进行数据校验。



技术实现要素:

本申请实施例提供了一种数据校验方法、装置、存储介质及电子设备,可以提高数据校验的成功率。本申请实施例的技术方案如下:

第一方面,本申请实施例提供了一种数据校验方法,所述方法包括:

获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验;

当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤;

当不存在所述下一数据块时,确定所述镜像数据校验通过。

第二方面,本申请实施例提供了一种数据校验装置,所述装置包括:

目标数据块获取模块,用于获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块;

目标数据块校验模块,用于对所述目标数据块进行校验;

目标数据块写入模块,用于当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤;

校验状态确定模块,用于当不存在所述下一数据块时,确定所述镜像数据校验通过。

第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

在本申请一个或多个实施例中,终端获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验,当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤,当不存在所述下一数据块时,确定所述镜像数据校验通过。通常对镜像数据采用分块传输的方式获取镜像数据对应的目标数据块,并在对目标数据块校验通过后将占用终端内存空间较小的所述目标数据块直接写入至镜像数据对应的原始数据中,可以避免在整个镜像数据的所需内存大于终端剩余内存情况时,由于内存不足校验失败的情况,提高了数据校验的成功率,同时基于数据块维度对镜像数据进行实时检验,可以大幅提高数据校验时的安全性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种数据校验方法的流程示意图;

图2是本申请实施例提供的另一种数据校验方法的流程示意图;

图3是本申请实施例提供的一种数据校验装置的结构示意图;

图4是本申请实施例提供的一种目标数据块校验模块的结构示意图;

图5是本申请实施例提供的一种配置信息获取单元的结构示意图;

图6是本申请实施例提供的一种目标数据写入模块的结构示意图;

图7是本申请实施例提供的另一种数据校验装置的结构示意图;

图8是本申请实施例提供的一种电子设备的结构示意图;

图9是本申请实施例提供的操作系统和用户空间的结构示意图;

图10是图9中安卓操作系统的架构图;

图11是图9中IOS操作系统的架构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

在相关技术中,终端对镜像数据进行校验,通常需要将全部的镜像数据获取到之后,再对镜像数据进行检验,然而在镜像数据获取过程中,如由服务端向终端传输镜像数据的过程中,一方面镜像数据存在被篡改或者损坏的情况,采用这种方式终端只能在获取到全部的镜像数据之后才能基于数据校验结果确定数据是否存在被篡改或者损坏的情况。一方面,对整个镜像数据进行数据校验的过程,会存在镜像数据进行校验或进行缓存下载时所需内存大于终端剩余内存的情况,从而导致内存不足校验失败的情况。

下面结合具体的实施例对本申请进行详细说明。

在一个实施例中,如图1所示,特提出了一种数据校验方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据校验装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。

其中,本申请实施例中的数据校验装置可以为终端,终端可以是具有网络体验状态确定功能的电子设备,该电子设备包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的终端设备等。

服务端可以是一种电子设备,所述电子设备可以是个人电脑、平板电脑等设备,所述电子设备还可以是服务器,所述服务器可以是单独的服务器设备,例如:机架式、刀片、塔式、或者机柜式的服务器设备,也可以采用工作站、大型计算机、等具备较强计算能力硬件设备,也可以采用多个服务器组成的服务器集群,所述服务集群中的各服务器可以是以对称方式组成的,其中每台服务在业务链路中功能等价、地位等价,各服务器均可单独对外或对内提供服务,如用于提供镜像数据的服务平台,所述单独提供服务可以理解为无需另外的服务器的辅助。

具体的,该数据校验方法包括:

步骤S101:获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块。

所述镜像数据可以理解为一种以镜像进行数据存储的形式,在实际应用中通常将特定的一系列文件按照一定的格式制作成单一的文件数据进行表征,以方便终端下载和使用,例如一个操作系统、游戏、应用程序等。

在一些场景中,所述镜像数据可以是一种基本输入输出系统(Basic Input OutputSystem,BIOS)的镜像数据,并能够为终端的操作系统提供底层、直接的硬件设置或控制接口,终端的操作系统可以通过BIOS对硬件系统进行控制,以终端的操作系统为安卓系统(Android系统)为例,常用的BIOS镜像数据的写入方法可以是通过fastboot刷机模式将BIOS镜像数据进行写入。

具体的,所述服务端可以是提供镜像数据获取服务的服务提供设备,服务端可以是能够生成镜像数据(如BIOS镜像数据)或获取镜像数据(如BIOS提供的镜像数据),并将该镜像数据发送给终端,终端在接收到镜像数据可以根据在完成镜像数据所包含的每一个数据块的校验的同时,对镜像数据当前校验通过的目标数据块进行数据写入。

在实际应用中,终端可以在接收到服务端的镜像数据之后,镜像数据通常包括至少一个数据块,且服务端可以采用“数据块”流的形式实时或周期性向终端推送镜像数据包括的至少一个数据块,例如,终端可以在T1时间点获取到服务端的数据块1、在T2时间点获取到服务端的数据块2、在T3时间点获取到服务端的数据块3和数据块4.....,示意性的,终端在获取服务端传输的镜像数据(通常为采用“数据块”流的形式传输的一个或多个数据块),然后终端可以对所述镜像数据包括的至少一个数据块中的目标数据块进行数据校验。

所述目标数据块可以理解为终端确定的当前待校验的数据块,所述目标数据块的确定规则可以是遵循数据块的接收时间规则,即基于时间维度将接收时间较早的数据块确定为目标数据块;所述目标数据块的确定规则可以是基于数据块的块顺序进行确定,如服务端在对镜像数据包括的多个数据块进行传输之前,即确定每个数据块的块顺序,终端可以基于数据块的快顺序确定当前待校验的目标数据块;所述目标数据块的确定规则可以是基于当前已接收到的数据块的优先级,如服务端预先已经确定各数据块的优先级(优先级可以根据各数据块对应的功能属性确定);所述目标数据块的确定规则可以是基于数据块的内存大小确定,如终端可以对数据块相对内存较大的数据块作为目标数据块先校验,如对数据块相对内存较小的数据块作为目标数据块先校验,又如终端可以结合当前的剩余内存空间以及各数据块的内存大小,选择与所述剩余内存空间相匹配的数据块作为目标数据块先校验。

其中,所述服务端与终端之间进行数据通信时可以预先建立两端之间的通信网络,所述通信网络可以是有线网络,也可以是无线网络,所述有线网络可以是采用通用串行/并行总线进行的方式与终端上的数据接口进行有线网络连接,所述数据接口包括但不限于3.5mm耳机插口、USB接口、Type-C接口、Lightning接口等。所述无线网络可以是因特网、但也可以是其它任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。

在本申请实施例中,所述服务端与终端之间借助通信网络进行数据交换(如服务端向终端发送镜像数据)时,可以使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些通信网络链路。还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

步骤S102:对所述目标数据块进行校验。

具体的,终端在获取所述镜像数据包括的至少一个数据块中的目标数据块之后,基于预先设置的数据块校验规则,建立进行数据块校验的目标线程,并为所述目标线程调用终端所包含的资源池的计算资源,以实现对所述目标数据块进行校验。其中,在本申请实施例中,对所述目标数据块进行校验可以避免在获取以及刷写镜像数据(BIOS镜像文件)的过程中,BIOS镜像文件均有可能被篡改或者损坏,比如被植入病毒木马,从而严重威胁到终端的安全性和可靠性。而采用镜像数据分块传输以及对各数据块分块校验,一方面可以避免在相关技术中对整个镜像数据进行数据校验时,由于对镜像数据进行校验所需内存大于终端剩余内存,而导致内存不足校验失败的情况,一方面,采用分块传输以及对各数据块分块校验的方式,数据校验的安全性较之于对整个镜像数据一次性校验时更高。

在实际应用中,预先设置的数据块校验规则可以是基于任一校验算法来实现对数据块完整性的检测,通常为根据一种或多种指定的算法对原始数据(如数据块)计算出的一个校验值。接收方(如终端)用同样的算法计算一次校验值,如果和数据块提供的校验值一样,就说明数据是完整的。

一种数据块的校验规则可以是:在数据块存储和传输中,在数据块对应的各字节中额外增加指数据校验数的(如一个)比特位,用来检验错误。校验位可以通过数据位经过逻辑运算(如异或运算)计算出来。根据被传输数据块的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验可以预先设置好。通常专门在数据块中设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

一种数据块的校验规则可以是:bcc异或校验法(block check character),在实际应用中,终端将数据块中的验证数据和一个指定的初始值(如0)进行异或计算,得到的结果就是校验值,校验值可以作为数据块中的组成元素随数据块所包含的部分镜像数据一起传输至终端,终端接收到该数据块后可以基于所携带的算法信息(如bcc异或校验法的标识、校验值、初始值0),采用同样的bcc异或校验法对数据块中所包含的部分镜像数据进行计算,判断计算结果是否与校验值一致,若一致,则收到的数据块的数据是完整的。

一种数据块的校验规则可以是:CRC循环冗余校验(Cyclic Redundancy Check),如CRC16算法,实际应用中,在发送端(如服务端)根据要传送的数据块中所包含的镜像数据(如k位二进制码序列),以CRC循环冗余校验对应的规则产生一个校验用的r位监督码(CRC码),附在数据块中(如所包含的镜像数据的后边),构成一个新的数据块(通常至少为二进制码序列数k r位),然后发送出去。在接收端(如终端),根据信息码(如所包含的镜像数据)和CRC码之间所遵循的规则进行检验计算,根据检验计算结果与数据块中携带的CRC码进行对比,若一致,则收到的数据块的数据是完整的,若不一致,则数据块的数据出错。

在实际应用中,具体采用的数据校验方式可以根据发送端和/或接收端预定的数据校验规则确定,可以是上述提及的一种或多种的拟合,也可以是相关技术中涉及的对数据进行数据校验的算法,此处不作具体限定,通常服务端在向终端发送的数据块中至少包括可校验算法对应的算法标识以及校验值,以使终端接收到数据块中可以进行相应的数据校验。

步骤S103:当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤。

所述原始数据可以理解为终端上待覆盖的数据(如一些应用对应的文件)。通常终端在确定目标数据块的数据校验通过时,终端可以确定以目标数据块表征的镜像数据所对应的待覆盖的原始数据(即确定目标数据块对应的待覆盖的原始数据),然后基于目标数据块中的数据对原始数据进行覆盖。

具体的,终端通过对所述目标数据块进行校验,基于校验结果确定与目标数据块携带的校验值一致的情况下,终端可以确定所述目标数据块校验通过,终端可以对目标数据块进行数据解析处理,然后确定目标数据块中数据更新时的映射路径,通常所述映射路径与终端上待覆盖的原始数据所属的存储地址相对应,如确定待覆盖的目录文件的文件名,然后终端将目标数据块中数据写入映射路径指示的存储地址中,以完成对存储地址上原始数据的数据覆盖。

在一种具体的实施方式中,终端在对目标数据块的数据写入过程会涉及到终端操作系统上的至少一个管理服务,如包管理服务(PackageManagerService,PMS)、叠加管理服务(OverlayManagerService,OMS)、活动(进程)管理服务(ActivityManagerService,AMS),具体为:

1、终端通过PMS来对目标数据块进行安装及解析,得到目标数据块中的所包含部分镜像数据的块信息,对包含更新词条的包信息进行缓存,同时缓存完成之后,进行广播安装完成的信息。

2、终端通过OMS构建替换数据(待覆盖的targetapk原始数据)与目标数据块对应镜像数据(目标数据块中的Overlay数据)的映射路径关系,具体为PMS广播安装完成的信息时,终端通过OMS可以监听到PMS广播的安装完成的信息,然后获取在PMS上所缓存的包含镜像数据的块信息,读取替换数据(待覆盖的targetapk词条文件)以及更新数据(包含更新词条的Overlay数据),然后调用idmap方法去构建idmap映射路径关系,以建立替换数据(待覆盖的targetapk原始数据)与目标数据块对应镜像数据(目标数据块中的Overlay数据)的映射路径关系,然后根据idmap映射路径关系下一步将目标数据块对应镜像数据添加至原始数据对应的目录文件中,终端通过OMS调用PMS,将所有overlay package的路径写入target package,从而完成将所述目标数据块写入所述镜像数据对应的原始数据中。

3、终端然后调用OMS通知活动管理服务(AMS)更新目标数据块资源,具体为向AMS发送“scheduleAPPlicationInfoChanged”信息,告知AMS更新资源,发送OVERLAY CHANGED广播,目标数据块更新过程中受影响应用活动(即Activity)。

具体的,在完成将所述目标数据块写入所述镜像数据对应的原始数据之后,终端基于“目标数据块的确定规则”确定所述目标数据块的下一数据块,如基于时间维度将目标数据块对应时间点之后接收到的数据块作为所述目标数据块的下一数据块,如基于数据块的块顺序进行确定,则终端获取所述目标数据块对应的下一块顺序指示的下一数据块,等等,在确定所述目标数据块的下一数据块之后,将所述目标数据块的下一个数据块作为所述目标数据块,然后执行所述对所述目标数据块进行校验的步骤。

步骤S104:当不存在所述下一数据块时,确定所述镜像数据校验通过。

具体的,当终端确定所述目标数据块为所述镜像数据对应的最后一个数据块时,此时即不存在所述下一数据块,此时终端可以确定所述镜像数据校验通过。

在本申请实施例中,终端获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验,当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤,当不存在所述下一数据块时,确定所述镜像数据校验通过。通常对镜像数据采用分块传输的方式获取镜像数据对应的目标数据块,并在对目标数据块校验通过后将占用终端内存空间较小的所述目标数据块直接写入至镜像数据对应的原始数据中,可以避免在整个镜像数据的所需内存大于终端剩余内存情况时,由于内存不足校验失败的情况,提高了数据校验的成功率,同时基于数据块维度对镜像数据进行实时检验,可以大幅提高数据校验时的安全性。

请参见图2,图2是本申请提出的一种数据校验方法的另一种实施例的流程示意图。具体的:

步骤S201:获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块。

具体可参见步骤S101,此处不再赘述。

步骤S202:获取所述目标数据块中的校验配置信息,基于所述校验配置信息确定所述目标数据块中的至少一个镜像数据段、所述镜像数据段的第一校验值以及目标校验算法。

所述校验配置信息用于指示终端对目标数据块进行数据校验的配置信息,常见的检验配置信息至少包括目标数据块中的镜像数据长度、校验算法标识以及第一校验值长度。

具体的,终端可以在目标数据块的指定位置处获取到“目标数据块”的校验配置信息,所述指定位置为目标数据块生成时预先确定,如可以是在目标数据块的头部区域或尾部区域,在对数据块编码时所述校验配置信息即随之确定,然后以数据块内容打包的形式打包到预先指定的位置处。以下为了叙述的方便以检验配置信息包括目标数据块中的镜像数据长度、校验算法标识以及第一校验值长度为例进行详细释义:

所述镜像数据长度用于表征数据块中每个镜像数据段的数据长度,可以理解的是在本申请实施例中,一个数据块可以包括多个镜像数据段,设置多个镜像数据段可以提高数据检验的安全性以及数据校验的准确性。

所述校验算法标识用于表征该目标数据块所使用的目标检验算法类型,通常所述校验算法标识可以是唯一表征目标检验算法类型id或名称,例如1、2、3等表示id的数字;可以是唯一表征目标检验算法类型的关键字符,例如a,b,c等;可以是是唯一表征目标检验算法类型的关键字符串,例如pth_a,pth_b,pth_c;等等。

所述第一校验值长度可以理解为每一镜像数据段对应的检验值的数据长度,所述第一校验值长度在数据块每一镜像数据段生成时即随之确定,如CRC16算法中每一镜像数据段对应第一校验值长度通常为2字节。需要说明的是在本申请实施例中,每一镜像数据段会对应一个校验值,通常该检验值可以与所述镜像数据段中的镜像数据间隔设置,如检验值设置在所述镜像数据段中的镜像数据的前面或后面位置,此处不做具体限定。

其中,在本申请实施例中,镜像数据由多个数据块构成,每一个数据块由至少一个镜像数据段构成,每个镜像数据段由镜像数据长度指示的镜像数据和第一校验值长度指示的检验值构成,可以理解的是每个镜像数据段均对应一个检验值。

具体的,终端可以在目标数据块的指定位置处获取到“目标数据块”的校验配置信息,基于校验配置信息进而可以获取到获取所述目标数据块中的镜像数据长度、校验算法标识以及第一校验值长度。由于目标数据块由至少一个镜像数据段构成,终端可以基于所述镜像数据长度以及所述第一校验值长度来确定目标数据块所包含的至少一个镜像数据段,具体为:基于所述镜像数据长度以及所述第一校验值长度对所述目标数据块进行划分,如镜像数据长度为:128个字节、第一校验值长度为:2个字节,则终端基于“128 2=130个”字节对所述目标数据块从相应位置(如不包含校验配置信息的位置)头到尾进行划分,从而确定各镜像数据段。

进一步的,终端获取到所述校验算法标识之后,可以随之确定所述校验算法标识对应的目标校验算法(如CRC16算法),以及所述目标数据块中所述第一校验值长度指示的第一校验值,可以理解的是每个镜像数据段均对应一个第一校验值。

在一种可行的实施方式中,终端在根据所述目标校验算法进行数据校验之前,先确定服务端传输的数据块中所涉及的校验配置信息是否正确,具体的,服务端在目标数据块中可以设置对校验配置信息进行检验的第三检验值,所述第三检验值可以是采用预先设置的目标校验算法对检验配置信息计算得到的一个检验值,即第三检验值,然后生成包含第三检验值的目标数据块,第三检验值可以存储在目标数据块的指定位置,如数据块头部或尾部等。

1、终端可以在接收到目标数据块之后,获取到所述校验配置信息对应的第三校验值,如在目标数据块的扩展区域获取到第三检验值;

2、终端然后基于所述目标校验算法计算所述校验配置信息的第四校验值,当所述第三校验值与所述第四校验值一致时,此时终端可以确定校验配置信息无误,没有被篡改或者损坏,然后终端可以执行步骤S203:根据所述目标校验算法计算各所述镜像数据段的第二校验值的步骤;

3、当所述第三校验值与所述第四校验值不一致时,终端此时可以确定校验配置信息有误,可能被篡改或者损坏,终端生成针对所述校验配置信息的配置异常信息并将所述配置异常信息发送至所述服务端。进一步的,服务端在接收到配置异常信息之后,对配置异常信息进行信息解析处理,可以重新获取目标数据段的校验配置信息,或重新生成目标数据段的校验配置信息,然后将所述校验配置信息重新发送至终端。

步骤S203:根据所述目标校验算法计算各所述镜像数据段的第二校验值。

在一种具体的实数方式中,若所述目标校验算法为奇偶校验算法,终端可以在镜像数据段中的校验数据从检验位开始进行奇偶校验运算,确定奇位个数(即“1”的个数)或偶位个数(即“0”的个数),前述个数即所述镜像数据段的第二校验值。

在一种具体的实数方式中,若所述目标校验算法为bcc异或校验法,终端将镜像数据段和一个指定的初始值(如0)进行异或计算,然后按照bcc异或校验法要求进行变换(增加或去除一个固定的值)后得到字符,所述字符就是所述镜像数据段的第二校验值。

在一种具体的实数方式中,若所述目标校验算法为CRC校验算法,通常是对设置CRC寄存器,并给其赋一个初值(如FFFF),将镜像数据段第一个8-bit字符与16位CRC寄存器的低8位进行异或原始,并把结果存入CRC寄存器,然后控制CRC寄存器向右移一位,MSB补零,移出并检查LSB,循环往复直至所有镜像数据段全部处理完成,得到检验结果,即所述镜像数据段的第二校验值。

在本申请实施例中,所述目标校验算法的算法类型不同,计算的方式不一样,具体目标校验算法根据实际实施环境确定,可以理解的是当一个目标数据块包含多个所述镜像数据段,则终端可以同步或异步基于目标校验算法对各所述镜像数据段进行第二校验值的计算,从而得到每个所述镜像数据段的所述第二校验值。

步骤S204:当每个所述镜像数据段的所述第一校验值与所述第二校验值均一致时,确定所述目标数据块校验通过。

具体的,当每个所述镜像数据段的所述第一校验值与所述第二校验值均一致时,如一个目标数据块包含8个镜像数据段,若8个镜像数据段的第一校验值与第二校验值均相同时,终端确定所述目标数据块校验通过。

步骤S205:当每个所述镜像数据段的所述第一校验值与所述第二校验值不一致时,获取所述第一校验值与所述第二校验值不一致的目标镜像数据段。

具体的,当每个所述镜像数据段的所述第一校验值与所述第二校验值不一致时,如一个目标数据块包含8个镜像数据段,若前7个镜像数据段的第一校验值与第二校验值均相同时,最后一个镜像数据段的第一校验值与第二校验值不同时,此时终端可以确定所述目标数据块校验不通过。在实际应用中,镜像数据对应的目标数据块有可能被篡改或者损坏,比如被植入病毒木马,从而有可能严重威胁到终端的安全性和可靠性。此时,一种方式可以是终端急于所述目标数据块校验不通过来直接确定服务端传输的镜像数据校验失败,一种方式可以是,终端可以基于检验结果来确定到所述第一校验值与所述第二校验值不一致的目标镜像数据段,如最后一个镜像数据段的第一校验值与第二校验值不同时,则确定最后一个镜像数据段为目标镜像数据段,可以理解的是,当存在多个镜像数据段的第一校验值与第二校验值不同时,终端可以确定所述多个数据段为目标镜像数据段。

步骤S206:向所述服务端发送针对所述目标镜像数据段的校验异常信息。

具体的,当每个所述镜像数据段的所述第一校验值与所述第二校验值不一致时,终端获取到所述第一校验值与所述第二校验值不一致的目标镜像数据段之后,可以生成针对所述目标镜像数据段的检验异常信息,所述检验异常信息可以包括目标镜像数据段在目标数据块中的位置、检验异常类型(如检验值错误)、目标检验算法、检验时间点等异常检验信息。然后通过与服务端之间的通信连接将异常检验信息发送至服务端。进一步的,所述服务端可以输出校验异常信息,以方便服务端后台维护人员对校验数据进行校验维护。

在一种可行的实施方式中,服务端接收到终端发送的检验异常信息之后,可以在服务端本地获取到正确的目标镜像数据段,或基于镜像数据重新生成目标镜像数据段,然后将目标镜像数据段通过与终端间的通信连接发送至终端。示意性的,此时终端可以接收到服务端重新发送的目标镜像数据段,然后可以对该目标镜像数据段重新进行数据校验。

步骤S207:生成针对所述目标镜像数据段的数据段获取请求,向所述服务端发送所述数据段获取请求,所述数据段获取请求用于请求所述服务端重新发送所述目标镜像数据段。

所述请求是指请求服务端工作的指示或要求,可以理解为服务端执行某种运算或功能实现的某种控制的代码。所述数据段获取请求在本申请实施例中可以理解为请求服务端执行“重新发送所述目标镜像数据段”功能的代码,服务端通过执行所述代码,可以在服务端本地获取到正确的目标镜像数据段,或基于镜像数据重新生成目标镜像数据段,然后将目标镜像数据段通过与终端间的通信连接发送至终端。

步骤S208:接收所述服务端重新发送的所述目标镜像数据段,获取所述目标镜像数据段的所述第一校验值以及所述目标校验算法。

具体的,终端在基于与服务端之间的通信连接接收到所述服务端重新发送的所述目标镜像数据段,重新获取所述目标镜像数据段的所述第一校验值,以及所述目标镜像数据段对应的目标检验算法。

步骤S209:根据所述目标校验算法计算所述目标镜像数据段的所述第二校验值,当所述目标镜像数据段的所述第一校验值与所述第二校验值一致时,确定所述目标数据块校验通过。

其中,所述根据所述目标校验算法计算所述目标镜像数据段的所述第二校验值具体可参见步骤S203,此处不再赘述,进一步的,当所述目标镜像数据段的所述第一校验值与所述第二校验值一致时,终端可以确定所述目标数据块校验通过。

步骤S210:当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤。

具体的,当所述目标数据块校验通过时,终端通常会将目标数据块中的数据写入镜像数据对应的原始数据,在本申请实施例中,终端在进行数据写入之前,可以预先对所述目标数据块中的校验数据进行滤除处理,所述校验数据可以理解为终端在对目标数据块进行检验过程中的一些校验指示信息,如上述校验配置信息以及每个镜像数据段的第一校验值,终端可以将这些校验数据进行滤除,得到不含校验数据的目标数据块,然后进一步对目标数据块进行数据解析处理,然后确定目标数据块中数据更新时的映射路径,即所述目标数据块对应的历史数据地址,其中所述历史数据地址可以理解为待覆盖的原始数据(通常目标数据块为部分原始数据)的映射路径(如原始数据的存储地址),通常所述映射路径与终端上待覆盖的原始数据所属的存储地址相对应,如确定待覆盖的目录文件的文件名,然后终端将目标数据块中数据写入映射路径指示的历史数据地址中,以完成对存储地址上历史数据(历史数据可以理解为部分原始数据)的数据覆盖。

其中,在本申请实施例中,当每一个目标数据块校验通过,终端即对目标数据块进行数据写入,从而完成对终端上目标数据块所对应的原始数据的数据更新,更新的同时可以对目标数据块的相关缓存进行清除以及对原始数据进行覆盖,可以避免在相关技术中对整个镜像数据进行数据校验时,由于对镜像数据进行校验所需内存大于终端剩余内存,而导致内存不足校验失败的情况,可以理解的是,采用本申请实施例的数据校验方法,镜像数据分块传输以及对各数据块分块校验,校验通过即对目标数据块进行写入,无需占用过多的终端存储空间,在镜像数据的内存空间大于终端剩余内存的情况,也可以完成对镜像数据的检验。

步骤S211:当不存在所述下一数据块时,确定所述镜像数据校验通过。

具体可参见步骤S104,此处不再赘述。

在本申请实施例中,终端获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验,当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤,当不存在所述下一数据块时,确定所述镜像数据校验通过。通常对镜像数据采用分块传输的方式获取镜像数据对应的目标数据块,并在对目标数据块校验通过后将占用终端内存空间较小的所述目标数据块直接写入至镜像数据对应的原始数据中,可以避免在整个镜像数据的校验所需内存大于终端剩余内存情况时,由于内存不足校验失败的情况,提高了数据校验的成功率,同时基于数据块维度对镜像数据进行实时检验,可以大幅提高数据校验时的安全性;以及终端可以确定校验未通过的目标镜像数据段,生成针对目标镜像数据段的校验异常信息或数据段获取请求并发送至服务端,实现了检验异常情况下的实时上报;以及终端在目标数据块校验未通过时,接收服务端重新推送的目标镜像数据段,并重新对目标镜像数据段进行校验,进一步提高了数据校验的成功率。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参见图3,其示出了本申请一个示例性实施例提供的数据校验装置的结构示意图。该数据校验装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括目标数据块获取模块11、目标数据块校验模块12、目标数据块写入模块13和校验状态确定模块13。

目标数据块获取模块11,用于获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块;

目标数据块校验模块12,用于对所述目标数据块进行校验;

目标数据块写入模块13,用于当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤;

校验状态确定模块14,用于当不存在所述下一数据块时,确定所述镜像数据校验通过。

可选的,如图4所示,所述目标数据块校验模块12,包括:

配置信息获取单元121,用于获取所述目标数据块中的校验配置信息,基于所述校验配置信息确定所述目标数据块中的至少一个镜像数据段、所述镜像数据段的第一校验值以及目标校验算法;

第二校验值计算单元122,用于根据所述目标校验算法计算各所述镜像数据段的第二校验值;

校验通过单元123,用于当每个所述镜像数据段的所述第一校验值与所述第二校验值均一致时,确定所述目标数据块校验通过。

可选的,如图5所示,所述配置信息获取单元121,包括:

参数获取子单元1211,用于获取所述目标数据块中的镜像数据长度、校验算法标识以及第一校验值长度;

数据段确定子单元1212,用于基于所述镜像数据长度以及所述第一校验值长度对所述目标数据块进行划分,确定至少一个镜像数据段;

算法与校验值确定子单元1213,用于确定所述校验算法标识对应的目标校验算法,以及所述目标数据块中所述第一校验值长度指示的第一校验值;

可选的,如图6所示,所述目标数据块写入模块13,包括:

校验数据滤除单元131,用于对所述目标数据块中的校验数据进行滤除处理,得到滤除处理后的所述目标数据块,所述校验数据包括所述校验配置信息以及第一校验值;

历史数据覆盖单元132,用于确定所述目标数据块对应的历史数据地址,基于所述目标数据块对所述历史数据地址中的历史数据进行覆盖。

可选的,如图7所示,所述装置1,包括:

目标数据段确定模块15,用于当每个所述镜像数据段的所述第一校验值与所述第二校验值不一致时,获取所述第一校验值与所述第二校验值不一致的目标镜像数据段;

异常信息发送模块16,用于向所述服务端发送针对所述目标镜像数据段的校验异常信息;

获取请求发送模块17,用于生成针对所述目标镜像数据段的数据段获取请求,向所述服务端发送所述数据段获取请求,所述数据段获取请求用于请求所述服务端重新发送所述目标镜像数据段。

可选的,如图7所示,所述装置1,包括:

目标数据段接收模块15,用于接收所述服务端重新发送的所述目标镜像数据段,获取所述目标镜像数据段的所述第一校验值以及所述目标校验算法;

所述目标数据块校验模块12,还用于根据所述目标校验算法计算所述目标镜像数据段的所述第二校验值;

所述校验通过单元123,还用于当所述目标镜像数据段的所述第一校验值与所述第二校验值一致时,确定所述目标数据块校验通过。

可选的,所述目标数据块校验模块12,具体用于:

获取所述校验配置信息对应的第三校验值;基于所述目标校验算法计算所述校验配置信息的第四校验值,当所述第三校验值与所述第四校验值一致时,执行所述根据所述目标校验算法计算各所述镜像数据段的第二校验值的步骤;当所述第三校验值与所述第四校验值不一致时,生成针对所述校验配置信息的配置异常信息并将所述配置异常信息发送至所述服务端。

需要说明的是,上述实施例提供的数据校验装置在执行数据校验方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据校验装置与数据校验方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本实施例中,终端获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验,当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤,当不存在所述下一数据块时,确定所述镜像数据校验通过。通常对镜像数据采用分块传输的方式获取镜像数据对应的目标数据块,并在对目标数据块校验通过后将占用终端内存空间较小的所述目标数据块直接写入至镜像数据对应的原始数据中,可以避免在整个镜像数据的校验所需内存大于终端剩余内存情况时,由于内存不足校验失败的情况,提高了数据校验的成功率,同时基于数据块维度对镜像数据进行实时检验,可以大幅提高数据校验时的安全性;以及终端可以确定校验未通过的目标镜像数据段,生成针对目标镜像数据段的校验异常信息或数据段获取请求并发送至服务端,实现了检验异常情况下的实时上报;以及终端在目标数据块校验未通过时,接收服务端重新推送的目标镜像数据段,并重新对目标镜像数据段进行校验,进一步提高了数据校验的成功率。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图2所示实施例的所述数据校验方法,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。

本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图2所示实施例的所述数据校验方法,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。

请参考图8,其示出了本申请一个示例性实施例提供的电子设备的结构方框图。本申请中的电子设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。

处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(central processing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。

存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统,包括基于Android系统深度开发的系统、苹果公司开发的IOS系统,包括基于IOS系统深度开发的系统或其它系统。存储数据区还可以存储电子设备在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。

参见图9所示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。

为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。

以操作系统为Android系统为例,存储器120中存储的程序和数据如图10所示,存储器120中可存储有Linux内核层320、系统运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、系统运行库层340和应用框架层360属于操作系统空间,应用层380属于用户空间。Linux内核层320为电子设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层340通过一些C/C 库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、数据校验管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、数据校验程序等。

以操作系统为IOS系统为例,存储器120中存储的程序和数据如图11所示,IOS系统包括:核心操作系统层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在电子设备上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。

在图11所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。

其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本申请在此不再赘述。

其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在电子设备的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。

除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。

在本申请实施例中,各步骤的执行主体可以是上文介绍的电子设备。可选地,各步骤的执行主体为电子设备的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本申请实施例对此不作限定。

本申请实施例的电子设备,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquid crystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用电子设备101上的显示设备,来查看显示的文字、图像、视频等信息。所述电子设备可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。

在图8所示的电子设备中,其中电子设备可以是一种终端,处理器110可以用于调用存储器120中存储的数据校验应用程序,并具体执行以下操作:

获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验;

当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤;

当不存在所述下一数据块时,确定所述镜像数据校验通过。

在一个实施例中,所述处理器110在执行所述对所述目标数据块进行校验时,具体执行以下操作:

获取所述目标数据块中的校验配置信息,基于所述校验配置信息确定所述目标数据块中的至少一个镜像数据段、所述镜像数据段的第一校验值以及目标校验算法;

根据所述目标校验算法计算各所述镜像数据段的第二校验值;

当每个所述镜像数据段的所述第一校验值与所述第二校验值均一致时,确定所述目标数据块校验通过。

在一个实施例中,所述处理器110在执行所述获取所述目标数据块中的校验配置信息,基于所述校验配置信息确定所述目标数据块中的至少一个镜像数据段、所述镜像数据段的第一校验值以及目标校验算法时,具体执行以下操作:

获取所述目标数据块中的镜像数据长度、校验算法标识以及第一校验值长度;

基于所述镜像数据长度以及所述第一校验值长度对所述目标数据块进行划分,确定至少一个镜像数据段;

确定所述校验算法标识对应的目标校验算法,以及所述目标数据块中所述第一校验值长度指示的第一校验值。

在一个实施例中,所述处理器110在执行所述将所述目标数据块写入所述镜像数据对应的原始数据中时,具体执行以下操作:

对所述目标数据块中的校验数据进行滤除处理,得到滤除处理后的所述目标数据块,所述校验数据包括所述校验配置信息以及第一校验值;

确定所述目标数据块对应的历史数据地址,基于所述目标数据块对所述历史数据地址中的历史数据进行覆盖。

在一个实施例中,所述处理器110在执行所述数据检验方法时,还执行以下操作:

当每个所述镜像数据段的所述第一校验值与所述第二校验值不一致时,获取所述第一校验值与所述第二校验值不一致的目标镜像数据段;

向所述服务端发送针对所述目标镜像数据段的校验异常信息;或,

生成针对所述目标镜像数据段的数据段获取请求,向所述服务端发送所述数据段获取请求,所述数据段获取请求用于请求所述服务端重新发送所述目标镜像数据段。

在一个实施例中,所述处理器110在执行所述数据校验方法时,还执行以下操作:

接收所述服务端重新发送的所述目标镜像数据段,获取所述目标镜像数据段的所述第一校验值以及所述目标校验算法;

根据所述目标校验算法计算所述目标镜像数据段的所述第二校验值;

当所述目标镜像数据段的所述第一校验值与所述第二校验值一致时,确定所述目标数据块校验通过。

在一个实施例中,所述处理器110在执行所述根据所述目标校验算法计算各所述镜像数据段的第二校验值之前,还执行以下步骤:

获取所述校验配置信息对应的第三校验值;

基于所述目标校验算法计算所述校验配置信息的第四校验值,当所述第三校验值与所述第四校验值一致时,执行所述根据所述目标校验算法计算各所述镜像数据段的第二校验值的步骤;

当所述第三校验值与所述第四校验值不一致时,生成针对所述校验配置信息的配置异常信息并将所述配置异常信息发送至所述服务端。

本申请实施例中,终端获取服务端传输的镜像数据,获取所述镜像数据包括的至少一个数据块中的目标数据块,并对所述目标数据块进行校验,当所述目标数据块校验通过时,将所述目标数据块写入所述镜像数据对应的原始数据中,并将所述目标数据块的下一个数据块作为所述目标数据块,执行所述对所述目标数据块进行校验的步骤,当不存在所述下一数据块时,确定所述镜像数据校验通过。通常对镜像数据采用分块传输的方式获取镜像数据对应的目标数据块,并在对目标数据块校验通过后将占用终端内存空间较小的所述目标数据块直接写入至镜像数据对应的原始数据中,可以避免在整个镜像数据的校验所需内存大于终端剩余内存情况时,由于内存不足校验失败的情况,提高了数据校验的成功率,同时基于数据块维度对镜像数据进行实时检验,可以大幅提高数据校验时的安全性;以及终端可以确定校验未通过的目标镜像数据段,生成针对目标镜像数据段的校验异常信息或数据段获取请求并发送至服务端,实现了检验异常情况下的实时上报;以及终端在目标数据块校验未通过时,接收服务端重新推送的目标镜像数据段,并重新对目标镜像数据段进行校验,进一步提高了数据校验的成功率。

本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE Gate Array,FPGA)、集成电路(Integrated Circuit,IC)等。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

再多了解一些

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

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

相关文献