一种文件校验的方法及装置制造方法

文档序号:6523570阅读:370来源:国知局
一种文件校验的方法及装置制造方法
【专利摘要】本发明公开了一种文件校验的方法及装置,其中,所述方法包括:加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。本发明用以提升文件的可靠性校验的速度及准确性,充分利用机器中系统资源。
【专利说明】一种文件校验的方法及装置
【技术领域】
[0001]本发明涉及数据处理的【技术领域】,具体涉及一种文件校验的方法,以及,一种文件校验的装置。
【背景技术】
[0002]为了保证在企业网络,或者其他用户网络中的数据的安全,通常需要对文件进行校验操作。例如,在实际应用中,软件作者往往会事先采用MD5 (信息一摘要算法5,Message-Digest Algorithm5)算出其开发的程序一个固定的MD5值并帖在网上。因此,在网上看到某个程序下载旁注明了 MD5值时,可以把它记下来,下载了这个程序后用MD5计算所下载的文件的MD5值,与网上的MD5值进行比较,就知道下载的程序是不是原版了,如果两者相同,那么所下载的是原版,如果计算出来的和网上注明的不匹配,那么下载的这个程序不完整,或是被别人动过手脚。
[0003]虽然采用MD5可以很有效发现有问题的程序或者其他文件,但是,如果在普通机器上有大量的文件采用MD5进行校验,耗费时间长,效率低,同时也会对机器运行速度造成影响。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种文件校验的方法,以及,一种文件校验的装置。
[0005]依据本发明的一个方面,提供了一种文件校验的方法,包括:
[0006]加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
[0007]按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
[0008]采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
[0009]若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
[0010]可选地,所述加载待校验的目标文件的步骤为:
[0011]将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
[0012]可选地,所述文件分段信息包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括:
[0013]获取所述目标文件中的数据地址;
[0014]按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
[0015]可选地,所述文件分段数据的校验信息为最新的内容数据标识;
[0016]所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括:[0017]分别从所述起止数据地址读取对应的文件分段数据;
[0018]依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
[0019]判断所述当前的内容数据标识与最新的内容数据标识是否一致,若是,则判定文件分段数据校验成功;若否,则判定文件分段数据校验失败。
[0020]可选地,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
[0021]可选地,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为:
[0022]采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
[0023]可选地,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。
[0024]根据本发明的另一方面,提供了一种文件校验的装置,包括:
[0025]加载模块,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
[0026]标记模块,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
[0027]校验模块,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
[0028]获得模块,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
[0029]可选地,所述加载模块包括:
[0030]线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
[0031 ] 可选地,所述文件分段信息包括分段数及分段大小,所述标记模块包括:
[0032]数据地址获取子模块,适于获取所述目标文件中的数据地址;
[0033]文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
[0034]可选地,所述文件分段数据的校验信息为最新的内容数据标识;
[0035]所述校验模块包括:
[0036]读取子模块,适于分别从所述起止数据地址读取对应的文件分段数据;
[0037]计算子模块,适于依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
[0038]判断子模块,适于判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则调用校验成功判定子模块,若否,则调用校验失败判定子模块;
[0039]校验成功判定子模块,适于判定文件分段数据校验成功;
[0040]校验失败判定子模块,适于判定文件分段数据校验失败。
[0041]可选地,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
[0042]可选地,所述校验模块包括:[0043]线程校验子模块,适于采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
[0044]根据本发明的一种文件校验的方法,以及,一种文件校验的装置,可以将目标文件划分为至少两个文件分段数据,再采用各个文件分段数据对应的校验信息区校验文件分段数据,当有一个文件分段数据校验失败时,可以停止校验所述目标文件,获得所述目标文件校验失败的校验结果,由此解决了采用普通机器传统的文件校验方式耗时长的问题,取得了提升文件的可靠性校验的速度及准确性,充分利用机器中系统资源的有益效果。
[0045]例如,在本发明实施例中,可以通过离线升级工具将目标文件下载并保存,再通过离线升级工具将目标文件移动到不能随意联网的局域网中机器,例如服务器。当移动到服务器中后,就可以在服务器中将目标文件进行分段并校验,由此可以快速对目标文件的合法性进行校验。如果校验成功,那么就可以将该目标文件分布到与其相连的其他机器中,以供其他机器利用该目标文件进行相应的升级或者修补漏洞的操作。
[0046]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0047]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0048]图1示出了根据本发明一个实施例的一种文件校验的方法实施例的步骤流程图;
[0049]图2示出了根据本发明一个实施例的一种目标文件的文件分段信息及校验信息的不意图;
[0050]图3示出了根据本发明一个实施例的一种目标文件校验的示意图;
[0051]图4示出了根据本发明一个实施例的一种目标文件线程校验的示意图;
[0052]图5示出了根据本发明一个实施例的一种文件校验的装置实施例的结构框图。
【具体实施方式】
[0053]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0054]由于安全的原因,部分企业和政府机关的网络都与外部网络隔离,即不能连接互联网。企业终端处于一个局域网内,终端上存储着企业的核心技术、商业机密、客户资料等重要信息,因此对安全有着更高的需求。企业整体安全的水平往往取决于最弱的一环。在复杂的企业网络中,任何一个员工的疏漏、漏洞管理疏漏,都可能给企业安全带来威胁。虽然企业和政府机关的网络都与外部网络隔离,但在其内部仍然需要运行软件,这些软件升级及漏洞修补的问题就变得棘手,目前通常采用离线升级的方式来解决软件升级的问题。
[0055]离线升级的方式是采用离线升级工具将用于更新的数据下载到终端上,终端采用更新数据执行相应的升级操作。但是,现有WINDWOS相关系统补丁和其他应用程序补丁几千个,其中小到几十KB,大到几百M,为了保证数据安全,终端在下载或者导入升级的时候要做一次校验数据,而所有补丁数据总量可能达到18-20G,如果采用MD5 (Message-DigestAlg0rithm5,信息摘要算法5)的校验方式,普通机器很有可能需要长达到半个小时的时间。如果采用CRC (Cyclic Redundancy Check,循环冗余码校验)的方式判断文件可靠性,那样很容易有漏洞而被别人伪造数据,对企业安全造成威胁,而且CRC等其他的算法校验可靠性不强。
[0056]正是本专利发明人注意文件在连续加载的,由此提出本发明的核心构思之一在于,将目标文件划分成至少两个文件分段数据,再分别对该文件分段数据校验,只要该目标文件的任一文件分段数据校验失败,就可以认为该目标文件校验失败,其他正在进行或者尚未进行的文件分段数据的校验可以停止,可以有效提升文件的可靠性校验的速度及准确性。
[0057]参照图1,示出了根据本发明一个实施例的一种文件校验的方法实施例的步骤流程图,具体可以包括如下步骤:
[0058]步骤101,加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
[0059]在具体实现中,目标文件可以是在网络中传递的各种数据文件,例如,所述目标文件可以包括补丁文件,安装包文件,和/或,病毒库等等。
[0060]在本发明实施例中,为了提高目标文件校验的速度,可以将大于某个数值的目标文件,在其公布之后,将目标文件数据连续区域分成N段,并计算分段对应的校验信息并保存。例如,可以参照图2示出了根据本发明一个实施例的一种目标文件的文件分段信息及校验信息的示意图,具体的格式如下所示:
[0061]3 ;size ;md5_l I md5_2 I md5_3。
[0062]其中,3表不文件的分段信息,size表不文件的大小,md5_l, md5_2, md5_3则表不各个文件分段数据的校验信息。
[0063]在本发明的一种优选实施例中,所述步骤101的步骤可以为:
[0064]将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
[0065]作为本发明具体应用的一种示例,可以采用实际内存存放连续文件数据或者虚拟内存的内存映射文件方式加载目标文件。具体而言,可以采用IO线程将采用离线升级工具下载到的目标文件直接加载到实际内存中,或者,也可以将下载或者历史已经下载的目标文件映射到内存,具体可以根据实际情况而定,本发明所述对此不作限制。
[0066]步骤102,按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
[0067]在本发明的一种优选实施例中,所述文件分段信息可以包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括:
[0068]子步骤S21,获取所述目标文件中的数据地址;
[0069]子步骤S22,按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
[0070]例如,假设目标文件划分为两个文件分段数据,则目标文件中的文件分段信息及各个文件分段数据的校验信息如下所示:
[0071]2 I 1000 I95570fal52cdl68b6007ala39965cb74|23f44e3f8edad0be58blcd735eb34811
[0072]其中,2表示文件的分段信息,1000表示文件的大小,95570fal52cdl68b6007ala39965cb74,23f44e3f8edad0be58blcd735eb34811则表示两个文件分段数据的校验信息。
[0073]那么,假设目标文件从0的位置开始存放,那么第一个文件分段数据的起止数据地址可以为0-500,第二个分段数据的起止数据地址可以为501-1000。
[0074]在本发明实施例中,为了加快校验速度,可以将目标文件按照指定的分段数进行分段,并且按照目标文件所在的数据地址,以及,分段数及分段大小,来计算各个文件分段数据相应的起止数据地址。
[0075]步骤103,采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
[0076]在本发明的一种优选实施例中,所述文件分段数据的校验信息可以为最新的内容数据标识;
[0077]子步骤S31,所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括:
[0078]子步骤S32,分别从所述起止数据地址读取对应的文件分段数据;
[0079]子步骤S33,依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
[0080]子步骤S34,判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则执行子步骤S35,若否,则执行子步骤S36 ;
[0081]子步骤S35,判定文件分段数据校验成功;
[0082]子步骤S36,判定文件分段数据校验失败。
[0083]同样以上述的文件分段信息及各个文件分段数据的校验信息为例,首先根据目标文件划分后的起止数据地址读取对应的文件分段数据,例如,从0-500读取第一个文件分段数据,从501-1000读取第二文件分段数据,并分别依据读取到的文件分段数据的内容计算相应的校验信息。例如,如果计算出的第一个文件分段数据的校验信息不是95570fal52cdl68b6007ala39965cb74,或者,第二文件分段数据的校验信息不是23f44e3f8edad0be58blcd735eb34811,则说明该目标文件可能下载不完整或者已经被改写,那么就可以判定该目标文件校验失败,如果计算出的第一个文件分段数据的校验信息是95570fal52cdl68b6007ala39965cb74,以及,第二文件分段数据的校验信息是 23f44e3f8edad0be58blcd735eb34811,则说明该目标文件可能下载完整并且没有被改写,那么就可以判定该目标文件校验成功。
[0084]在具体实现中,最新的校验信息可以是根据目标文件的内容生成的唯一的数据内容标识,例如,可以采用CRC来计算。当最新的目标文件发布后,可以同时将最新目标文件的内容标识发布给服务器或者客户端,由于数据内容标识是根据目标文件的内容生成,如果目标文件被改写,若计算出的当前的数据内容标识与最新的数据内容标识是不一致的,说明当前的目标文件很可能是有问题的。
[0085]在本发明的一种优选示例中,所述最新的数据内容标识可以为最新的MD5值;所述当前的数据内容标识可以为当前的MD5值。[0086]在本发明实施例中,所述MD5值可以为采用MD5计算出的数据文件唯一标识。具体而言,可以是利用MD5算法根据文件的二进制信息来计算MD5值。
[0087]MD5算法是计算机广泛使用的杂凑算法之一,其将数据运算为另一固定长度值,将信息压缩成一种保密的格式。MD5具有碰撞率低的特点,使用MD5算法计算文件的唯一标识,能够有效防止文件的重复和碰撞。例如,假设文件被病毒或木马入侵了,或者文件不是最新的,那么计算到的MD5值将与客户端本地保存的MD5值不一致,就可以很容易发现该文件有问题了。
[0088]当然,在实际应用中,不限于MD5算法,本领域技术人员还可以以低碰撞率为原贝U,选择其它适当的算法生成文件的唯一标识,本发明对此无需加以限制。
[0089]本发明的一种优选实施例中,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为:
[0090]子步骤S41,采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
[0091]在具体实现中,可以在采用IO线程将目标文件加载到内存,采用内存映射的方式读取连续文件区域,然后放在虚拟内存或者是加到物理内存都可以,以便使其读取速度最大化。同时对于计算校验信息的采用多个线程分布式计算,充分利用当前多核的特点。具体而言,任务线程可以开辟为校验的机器的CPU的核数*2或者CPU核数*3,每个任务线程的输入文件分段数据的内存读取地址和当前的校验信息,计算该文件分段数据的合法性并输出进行统计。
[0092]步骤104,若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
[0093]作为本发明具体应用的一种示例,当目标文件的其中一个文件分段数据校验失败,则可以认定该目标文件校验失败,此时可以停止校验该目标文件的其他文件分段数据,故提升文件的可靠性校验的速度及准确性,并且充分利用机器中系统资源。
[0094]为了使本领域技术人员进一步了解本发明实施例,以下采用一个具体的示例来进行说明。
[0095]参照图3示出了根据本发明一个实施例的一种目标文件校验的示意图,具体可以包括如下步骤:
[0096]步骤1,读取目标文件的文件分段信息及文件分段数据的校验信息;
[0097]步骤2,加载目标文件到内存中,并切分得到各个文件分段数据的读取地址;
[0098]步骤3,任务线程池中每个任务线程计算一个文件分段数据,任务线程校验完成后继续校验其他文件分段数据;
[0099]步骤4,对导出的任务线程的校验结果进行统计;
[0100]步骤5,判断目标文件是否存在一个不合法的文件分段数据;若是,则执行步骤6,若否,则执行步骤7;
[0101]步骤6,目标文件校验失败;
[0102]步骤7,目标文件校验成功。
[0103]在本发明实施例中,可以将目标文件的校验主要分成两部分,一部分是读取目标文件到内存,可以由一个线程完成,另外一部分是可以是多个线程,负责分段校验文件分段数据的线程。由于传统硬盘连续性读取文件速度是最快的,而且目前用户大部分使用的是传统的硬盘,因此采用连续读取到内存的方式可以最快获取信息到内存。当然,在其他硬盘,例如新型的SSD (Solid State Disk,固态硬盘)也可以使用,本发明对此不作限制。
[0104]具体而言,参照图4示出了根据本发明一个实施例的一种目标文件线程校验的示意图,在本发明实施例中,可以设置有两种线程,一种为IO线程,用于将目标文件一个个读取到内存中,另一种为任务线程,用于通过一个或者多个任务线程计算目标文件的校验信息并进行校验。当全部目标文件完成后,例如在服务器校验成功之后,与该服务器互相通信的客户端或者其他服务器就可以用校验成功的目标文件去进行升级或者修补漏洞等操作。对于目标文件的校验,如果发现一个文件分段数据的校验失败,那么对该目标文件的其他文件分段的校验就可以全部退出了。如果没有发现校验失败的文件分段数据,则说明该目标文件校验成功了。
[0105]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0106]参照图5,示出了根据本发明一个实施例的一种文件校验的装置实施例的结构框图,具体可以包括如下模块:
[0107]加载模块201,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
[0108]在本发明的一种优选实施例中,所述加载模块201可以包括:
[0109]线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
[0110]标记模块202,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
[0111]在本发明的一种优选实施例中,所述文件分段信息包括分段数及分段大小,所述标记模块202可以包括:
[0112]数据地址获取子模块,适于获取所述目标文件中的数据地址;
[0113]文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
[0114]校验模块203,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
[0115]在本发明的一种优选实施例中,所述校验模块203可以包括:
[0116]读取子模块,适于分别从所述起止数据地址读取对应的文件分段数据;
[0117]计算子模块,适于依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
[0118]判断子模块,适于判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则调用校验成功判定子模块,若否,则调用校验失败判定子模块;
[0119]校验成功判定子模块,适于判定文件分段数据校验成功;
[0120]校验失败判定子模块,适于判定文件分段数据校验失败。
[0121]在本发明的一种优选实施例中,所述最新的数据内容标识可以为最新的MD5值;所述当前的数据内容标识可以为当前的MD5值。
[0122]在本发明的一种优选实施例中,所述校验模块203可以包括:
[0123]线程校验子模块,适于采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
[0124]获得模块204,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
[0125]在本发明的一种优选实施例中,所述文件分段数据的校验信息可以为最新的内容数据标识;
[0126]在本发明的一种优选实施例中,所述目标文件可以包括补丁文件,安装包文件,和
/或,病毒库。
[0127]对于装置实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0128]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0129]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0130]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0131 ] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0132]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0133]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP )来实现根据本发明实施例的文件校验设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0134]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0135]本发明公开了 Al、一种文件校验的方法,包括:
[0136]加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
[0137]按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
[0138]采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
[0139]若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
[0140]A2、如权利要求Al所述的方法,其特征在于,所述加载待校验的目标文件的步骤为:
[0141]将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
[0142]A3、如权利要求Al或A2所述的方法,其特征在于,所述文件分段信息包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括:
[0143]获取所述目标文件中的数据地址;
[0144]按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
[0145]A4、如权利要求A3所述的方法,其特征在于,所述文件分段数据的校验信息为最新的内容数据标识;
[0146]所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括:
[0147]分别从所述起止数据地址读取对应的文件分段数据;
[0148]依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
[0149]判断所述当前的内容数据标识与最新的内容数据标识是否一致,若是,则判定文件分段数据校验成功;若否,则判定文件分段数据校验失败。
[0150]A5、如权利要求A4所述的方法,其特征在于,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
[0151]A6、如权利要求A4或A5所述的方法,其特征在于,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为:
[0152]采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
[0153]A7、如权利要求Al所述的方法,其特征在于,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。
[0154]本发明还公开了一种文件校验的装置,包括:
[0155]加载模块,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
[0156]标记模块,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
[0157]校验模块,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
[0158]获得模块,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
[0159]B9、如权利要求B8所述的装置,其特征在于,所述加载模块包括:
[0160]线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
[0161]B10、如权利要求B8或B9所述的装置,其特征在于,所述文件分段信息包括分段数及分段大小,所述标记模块包括:
[0162]数据地址获取子模块,适于获取所述目标文件中的数据地址;
[0163]文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
[0164]B11、如权利要求BlO所述的装置,其特征在于,所述文件分段数据的校验信息为最新的内容数据标识;
[0165]所述校验模块包括:
[0166]读取子模块,适于分别从所述起止数据地址读取对应的文件分段数据;
[0167]计算子模块,适于依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
[0168]判断子模块,适于判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则调用校验成功判定子模块,若否,则调用校验失败判定子模块;
[0169]校验成功判定子模块,适于判定文件分段数据校验成功;
[0170]校验失败判定子模块,适于判定文件分段数据校验失败。
[0171]B12、如权利要求Bll所述的装置,其特征在于,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
[0172]B13、如权利要求Bll或B12所述的装置,其特征在于,所述校验模块包括:
[0173]线程校验子模块,适于采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
[0174]B14、如权利要求B8所述的装置,其特征在于,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。
【权利要求】
1.一种文件校验的方法,包括: 加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息; 按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据; 采用各个文件分段的校验信息分别校验所述至少两个文件分段数据; 若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
2.如权利要求1所述的方法,其特征在于,所述加载待校验的目标文件的步骤为: 将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
3.如权利要求1或2所述的方法,其特征在于,所述文件分段信息包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括: 获取所述目标文件中的数据地址; 按照所述分段数及分段大小, 在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
4.如权利要求3所述的方法,其特征在于,所述文件分段数据的校验信息为最新的内容数据标识; 所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括: 分别从所述起止数据地址读取对应的文件分段数据; 依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识; 判断所述当前的内容数据标识与最新的内容数据标识是否一致,若是,则判定文件分段数据校验成功;若否,则判定文件分段数据校验失败。
5.如权利要求4所述的方法,其特征在于,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
6.如权利要求4或5所述的方法,其特征在于,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为: 采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
7.如权利要求1所述的方法,其特征在于,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。
8.一种文件校验的装置,包括: 加载模块,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息; 标记模块,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据; 校验模块,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;获得模块,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
9.如权利要求8所述的装置,其特征在于,所述加载模块包括: 线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
10.如权利要求8或9所述的装置,其特征在于,所述文件分段信息包括分段数及分段大小,所述标记模块包括: 数据地址获取子模块,适于获取所述目标文件中的数据地址; 文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
【文档编号】G06F9/445GK103646082SQ201310683009
【公开日】2014年3月19日 申请日期:2013年12月12日 优先权日:2013年12月12日
【发明者】蔡东赟, 杨小波, 黄鉴廷 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1