CN103646082A - 一种文件校验的方法及装置 - Google Patents

一种文件校验的方法及装置 Download PDF

Info

Publication number
CN103646082A
CN103646082A CN201310683009.2A CN201310683009A CN103646082A CN 103646082 A CN103646082 A CN 103646082A CN 201310683009 A CN201310683009 A CN 201310683009A CN 103646082 A CN103646082 A CN 103646082A
Authority
CN
China
Prior art keywords
file
data
file fragmentation
verification
destination
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
CN201310683009.2A
Other languages
English (en)
Other versions
CN103646082B (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.)
Qax Technology Group Inc
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310683009.2A priority Critical patent/CN103646082B/zh
Publication of CN103646082A publication Critical patent/CN103646082A/zh
Application granted granted Critical
Publication of CN103646082B publication Critical patent/CN103646082B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种文件校验的方法及装置,其中,所述方法包括:加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。本发明用以提升文件的可靠性校验的速度及准确性,充分利用机器中***资源。

Description

一种文件校验的方法及装置
技术领域
本发明涉及数据处理的技术领域,具体涉及一种文件校验的方法,以及,一种文件校验的装置。
背景技术
为了保证在企业网络,或者其他用户网络中的数据的安全,通常需要对文件进行校验操作。例如,在实际应用中,软件作者往往会事先采用MD5(信息-摘要算法5,Message-Digest Algorithm5)算出其开发的程序一个固定的MD5值并帖在网上。因此,在网上看到某个程序下载旁注明了MD5值时,可以把它记下来,下载了这个程序后用MD5计算所下载的文件的MD5值,与网上的MD5值进行比较,就知道下载的程序是不是原版了,如果两者相同,那么所下载的是原版,如果计算出来的和网上注明的不匹配,那么下载的这个程序不完整,或是被别人动过手脚。
虽然采用MD5可以很有效发现有问题的程序或者其他文件,但是,如果在普通机器上有大量的文件采用MD5进行校验,耗费时间长,效率低,同时也会对机器运行速度造成影响。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种文件校验的方法,以及,一种文件校验的装置。
依据本发明的一个方面,提供了一种文件校验的方法,包括:
加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
可选地,所述加载待校验的目标文件的步骤为:
将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
可选地,所述文件分段信息包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括:
获取所述目标文件中的数据地址;
按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
可选地,所述文件分段数据的校验信息为最新的内容数据标识;
所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括:
分别从所述起止数据地址读取对应的文件分段数据;
依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
判断所述当前的内容数据标识与最新的内容数据标识是否一致,若是,则判定文件分段数据校验成功;若否,则判定文件分段数据校验失败。
可选地,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
可选地,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为:
采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
可选地,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。
根据本发明的另一方面,提供了一种文件校验的装置,包括:
加载模块,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
标记模块,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
校验模块,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
获得模块,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
可选地,所述加载模块包括:
线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
可选地,所述文件分段信息包括分段数及分段大小,所述标记模块包括:
数据地址获取子模块,适于获取所述目标文件中的数据地址;
文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
可选地,所述文件分段数据的校验信息为最新的内容数据标识;
所述校验模块包括:
读取子模块,适于分别从所述起止数据地址读取对应的文件分段数据;
计算子模块,适于依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
判断子模块,适于判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则调用校验成功判定子模块,若否,则调用校验失败判定子模块;
校验成功判定子模块,适于判定文件分段数据校验成功;
校验失败判定子模块,适于判定文件分段数据校验失败。
可选地,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
可选地,所述校验模块包括:
线程校验子模块,适于采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
根据本发明的一种文件校验的方法,以及,一种文件校验的装置,可以将目标文件划分为至少两个文件分段数据,再采用各个文件分段数据对应的校验信息区校验文件分段数据,当有一个文件分段数据校验失败时,可以停止校验所述目标文件,获得所述目标文件校验失败的校验结果,由此解决了采用普通机器传统的文件校验方式耗时长的问题,取得了提升文件的可靠性校验的速度及准确性,充分利用机器中***资源的有益效果。
例如,在本发明实施例中,可以通过离线升级工具将目标文件下载并保存,再通过离线升级工具将目标文件移动到不能随意联网的局域网中机器,例如服务器。当移动到服务器中后,就可以在服务器中将目标文件进行分段并校验,由此可以快速对目标文件的合法性进行校验。如果校验成功,那么就可以将该目标文件分布到与其相连的其他机器中,以供其他机器利用该目标文件进行相应的升级或者修补漏洞的操作。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种文件校验的方法实施例的步骤流程图;
图2示出了根据本发明一个实施例的一种目标文件的文件分段信息及校验信息的示意图;
图3示出了根据本发明一个实施例的一种目标文件校验的示意图;
图4示出了根据本发明一个实施例的一种目标文件线程校验的示意图;
图5示出了根据本发明一个实施例的一种文件校验的装置实施例的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
由于安全的原因,部分企业和政府机关的网络都与外部网络隔离,即不能连接互联网。企业终端处于一个局域网内,终端上存储着企业的核心技术、商业机密、客户资料等重要信息,因此对安全有着更高的需求。企业整体安全的水平往往取决于最弱的一环。在复杂的企业网络中,任何一个员工的疏漏、漏洞管理疏漏,都可能给企业安全带来威胁。虽然企业和政府机关的网络都与外部网络隔离,但在其内部仍然需要运行软件,这些软件升级及漏洞修补的问题就变得棘手,目前通常采用离线升级的方式来解决软件升级的问题。
离线升级的方式是采用离线升级工具将用于更新的数据下载到终端上,终端采用更新数据执行相应的升级操作。但是,现有WINDWOS相关***补丁和其他应用程序补丁几千个,其中小到几十KB,大到几百M,为了保证数据安全,终端在下载或者导入升级的时候要做一次校验数据,而所有补丁数据总量可能达到18-20G,如果采用MD5(Message-DigestAlgorithm5,信息摘要算法5)的校验方式,普通机器很有可能需要长达到半个小时的时间。如果采用CRC(Cyclic Redundancy Check,循环冗余码校验)的方式判断文件可靠性,那样很容易有漏洞而被别人伪造数据,对企业安全造成威胁,而且CRC等其他的算法校验可靠性不强。
正是本专利发明人注意文件在连续加载的,由此提出本发明的核心构思之一在于,将目标文件划分成至少两个文件分段数据,再分别对该文件分段数据校验,只要该目标文件的任一文件分段数据校验失败,就可以认为该目标文件校验失败,其他正在进行或者尚未进行的文件分段数据的校验可以停止,可以有效提升文件的可靠性校验的速度及准确性。
参照图1,示出了根据本发明一个实施例的一种文件校验的方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
在具体实现中,目标文件可以是在网络中传递的各种数据文件,例如,所述目标文件可以包括补丁文件,安装包文件,和/或,病毒库等等。
在本发明实施例中,为了提高目标文件校验的速度,可以将大于某个数值的目标文件,在其公布之后,将目标文件数据连续区域分成N段,并计算分段对应的校验信息并保存。例如,可以参照图2示出了根据本发明一个实施例的一种目标文件的文件分段信息及校验信息的示意图,具体的格式如下所示:
3;size;md5-1|md5-2|md5-3。
其中,3表示文件的分段信息,size表示文件的大小,md5-1,md5-2,md5-3则表示各个文件分段数据的校验信息。
在本发明的一种优选实施例中,所述步骤101的步骤可以为:
将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
作为本发明具体应用的一种示例,可以采用实际内存存放连续文件数据或者虚拟内存的内存映射文件方式加载目标文件。具体而言,可以采用IO线程将采用离线升级工具下载到的目标文件直接加载到实际内存中,或者,也可以将下载或者历史已经下载的目标文件映射到内存,具体可以根据实际情况而定,本发明所述对此不作限制。
步骤102,按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
在本发明的一种优选实施例中,所述文件分段信息可以包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括:
子步骤S21,获取所述目标文件中的数据地址;
子步骤S22,按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
例如,假设目标文件划分为两个文件分段数据,则目标文件中的文件分段信息及各个文件分段数据的校验信息如下所示:
2|1000|95570fa152cd168b6007a1a39965cb74|23f44e3f8edad0be58b1cd735eb34811
其中,2表示文件的分段信息,1000表示文件的大小,95570fa152cd168b6007a1a39965cb74,23f44e3f8edad0be58b1cd735eb34811则表示两个文件分段数据的校验信息。
那么,假设目标文件从0的位置开始存放,那么第一个文件分段数据的起止数据地址可以为0-500,第二个分段数据的起止数据地址可以为501-1000。
在本发明实施例中,为了加快校验速度,可以将目标文件按照指定的分段数进行分段,并且按照目标文件所在的数据地址,以及,分段数及分段大小,来计算各个文件分段数据相应的起止数据地址。
步骤103,采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
在本发明的一种优选实施例中,所述文件分段数据的校验信息可以为最新的内容数据标识;
子步骤S31,所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括:
子步骤S32,分别从所述起止数据地址读取对应的文件分段数据;
子步骤S33,依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
子步骤S34,判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则执行子步骤S35,若否,则执行子步骤S36;
子步骤S35,判定文件分段数据校验成功;
子步骤S36,判定文件分段数据校验失败。
同样以上述的文件分段信息及各个文件分段数据的校验信息为例,首先根据目标文件划分后的起止数据地址读取对应的文件分段数据,例如,从0-500读取第一个文件分段数据,从501-1000读取第二文件分段数据,并分别依据读取到的文件分段数据的内容计算相应的校验信息。例如,如果计算出的第一个文件分段数据的校验信息不是95570fa152cd168b6007a1a39965cb74,或者,第二文件分段数据的校验信息不是23f44e3f8edad0be58b1cd735eb34811,则说明该目标文件可能下载不完整或者已经被改写,那么就可以判定该目标文件校验失败,如果计算出的第一个文件分段数据的校验信息是95570fa152cd168b6007a1a39965cb74,以及,第二文件分段数据的校验信息是23f44e3f8edad0be58b1cd735eb34811,则说明该目标文件可能下载完整并且没有被改写,那么就可以判定该目标文件校验成功。
在具体实现中,最新的校验信息可以是根据目标文件的内容生成的唯一的数据内容标识,例如,可以采用CRC来计算。当最新的目标文件发布后,可以同时将最新目标文件的内容标识发布给服务器或者客户端,由于数据内容标识是根据目标文件的内容生成,如果目标文件被改写,若计算出的当前的数据内容标识与最新的数据内容标识是不一致的,说明当前的目标文件很可能是有问题的。
在本发明的一种优选示例中,所述最新的数据内容标识可以为最新的MD5值;所述当前的数据内容标识可以为当前的MD5值。
在本发明实施例中,所述MD5值可以为采用MD5计算出的数据文件唯一标识。具体而言,可以是利用MD5算法根据文件的二进制信息来计算MD5值。
MD5算法是计算机广泛使用的杂凑算法之一,其将数据运算为另一固定长度值,将信息压缩成一种保密的格式。MD5具有碰撞率低的特点,使用MD5算法计算文件的唯一标识,能够有效防止文件的重复和碰撞。例如,假设文件被病毒或木马入侵了,或者文件不是最新的,那么计算到的MD5值将与客户端本地保存的MD5值不一致,就可以很容易发现该文件有问题了。
当然,在实际应用中,不限于MD5算法,本领域技术人员还可以以低碰撞率为原则,选择其它适当的算法生成文件的唯一标识,本发明对此无需加以限制。
本发明的一种优选实施例中,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为:
子步骤S41,采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
在具体实现中,可以在采用IO线程将目标文件加载到内存,采用内存映射的方式读取连续文件区域,然后放在虚拟内存或者是加到物理内存都可以,以便使其读取速度最大化。同时对于计算校验信息的采用多个线程分布式计算,充分利用当前多核的特点。具体而言,任务线程可以开辟为校验的机器的CPU的核数*2或者CPU核数*3,每个任务线程的输入文件分段数据的内存读取地址和当前的校验信息,计算该文件分段数据的合法性并输出进行统计。
步骤104,若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
作为本发明具体应用的一种示例,当目标文件的其中一个文件分段数据校验失败,则可以认定该目标文件校验失败,此时可以停止校验该目标文件的其他文件分段数据,故提升文件的可靠性校验的速度及准确性,并且充分利用机器中***资源。
为了使本领域技术人员进一步了解本发明实施例,以下采用一个具体的示例来进行说明。
参照图3示出了根据本发明一个实施例的一种目标文件校验的示意图,具体可以包括如下步骤:
步骤1,读取目标文件的文件分段信息及文件分段数据的校验信息;
步骤2,加载目标文件到内存中,并切分得到各个文件分段数据的读取地址;
步骤3,任务线程池中每个任务线程计算一个文件分段数据,任务线程校验完成后继续校验其他文件分段数据;
步骤4,对导出的任务线程的校验结果进行统计;
步骤5,判断目标文件是否存在一个不合法的文件分段数据;若是,则执行步骤6,若否,则执行步骤7;
步骤6,目标文件校验失败;
步骤7,目标文件校验成功。
在本发明实施例中,可以将目标文件的校验主要分成两部分,一部分是读取目标文件到内存,可以由一个线程完成,另外一部分是可以是多个线程,负责分段校验文件分段数据的线程。由于传统硬盘连续性读取文件速度是最快的,而且目前用户大部分使用的是传统的硬盘,因此采用连续读取到内存的方式可以最快获取信息到内存。当然,在其他硬盘,例如新型的SSD(Solid State Disk,固态硬盘)也可以使用,本发明对此不作限制。
具体而言,参照图4示出了根据本发明一个实施例的一种目标文件线程校验的示意图,在本发明实施例中,可以设置有两种线程,一种为IO线程,用于将目标文件一个个读取到内存中,另一种为任务线程,用于通过一个或者多个任务线程计算目标文件的校验信息并进行校验。当全部目标文件完成后,例如在服务器校验成功之后,与该服务器互相通信的客户端或者其他服务器就可以用校验成功的目标文件去进行升级或者修补漏洞等操作。对于目标文件的校验,如果发现一个文件分段数据的校验失败,那么对该目标文件的其他文件分段的校验就可以全部退出了。如果没有发现校验失败的文件分段数据,则说明该目标文件校验成功了。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参照图5,示出了根据本发明一个实施例的一种文件校验的装置实施例的结构框图,具体可以包括如下模块:
加载模块201,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
在本发明的一种优选实施例中,所述加载模块201可以包括:
线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
标记模块202,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
在本发明的一种优选实施例中,所述文件分段信息包括分段数及分段大小,所述标记模块202可以包括:
数据地址获取子模块,适于获取所述目标文件中的数据地址;
文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
校验模块203,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
在本发明的一种优选实施例中,所述校验模块203可以包括:
读取子模块,适于分别从所述起止数据地址读取对应的文件分段数据;
计算子模块,适于依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
判断子模块,适于判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则调用校验成功判定子模块,若否,则调用校验失败判定子模块;
校验成功判定子模块,适于判定文件分段数据校验成功;
校验失败判定子模块,适于判定文件分段数据校验失败。
在本发明的一种优选实施例中,所述最新的数据内容标识可以为最新的MD5值;所述当前的数据内容标识可以为当前的MD5值。
在本发明的一种优选实施例中,所述校验模块203可以包括:
线程校验子模块,适于采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
获得模块204,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
在本发明的一种优选实施例中,所述文件分段数据的校验信息可以为最新的内容数据标识;
在本发明的一种优选实施例中,所述目标文件可以包括补丁文件,安装包文件,和/或,病毒库。
对于装置实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件校验设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种文件校验的方法,包括:
加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
A2、如权利要求A1所述的方法,其特征在于,所述加载待校验的目标文件的步骤为:
将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
A3、如权利要求A1或A2所述的方法,其特征在于,所述文件分段信息包括分段数及分段大小,所述按照文件分段信息将所述目标文件标记成至少两个文件分段数据的步骤包括:
获取所述目标文件中的数据地址;
按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
A4、如权利要求A3所述的方法,其特征在于,所述文件分段数据的校验信息为最新的内容数据标识;
所述采用各个文件分段数据的校验信息分别校验所述至少两个文件分段数据的步骤包括:
分别从所述起止数据地址读取对应的文件分段数据;
依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
判断所述当前的内容数据标识与最新的内容数据标识是否一致,若是,则判定文件分段数据校验成功;若否,则判定文件分段数据校验失败。
A5、如权利要求A4所述的方法,其特征在于,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
A6、如权利要求A4或A5所述的方法,其特征在于,所述采用各个文件分段的校验信息分别校验所述至少两个文件分段数据的步骤为:
采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
A7、如权利要求A1所述的方法,其特征在于,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。
本发明还公开了一种文件校验的装置,包括:
加载模块,适于加载待校验的目标文件;所述目标文件中包括文件分段信息及各个文件分段数据的校验信息;
标记模块,适于按照所述文件分段信息将所述目标文件标记成至少两个文件分段数据;
校验模块,适于采用各个文件分段的校验信息分别校验所述至少两个文件分段数据;
获得模块,适于若存在至少一个文件分段数据校验失败,则获得所述目标文件校验失败的校验结果。
B9、如权利要求B8所述的装置,其特征在于,所述加载模块包括:
线程加载子模块,适于将所述待校验的目标文件采用预置的IO线程加载到物理内存或虚拟内存中。
B10、如权利要求B8或B9所述的装置,其特征在于,所述文件分段信息包括分段数及分段大小,所述标记模块包括:
数据地址获取子模块,适于获取所述目标文件中的数据地址;
文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
B11、如权利要求B10所述的装置,其特征在于,所述文件分段数据的校验信息为最新的内容数据标识;
所述校验模块包括:
读取子模块,适于分别从所述起止数据地址读取对应的文件分段数据;
计算子模块,适于依据所述文件分段数据计算当前的校验信息;所述当前的校验信息为当前的内容数据标识;
判断子模块,适于判断所述当前的内容数据标识与最新的内容数据标识是否一致;若是,则调用校验成功判定子模块,若否,则调用校验失败判定子模块;
校验成功判定子模块,适于判定文件分段数据校验成功;
校验失败判定子模块,适于判定文件分段数据校验失败。
B12、如权利要求B11所述的装置,其特征在于,所述最新的数据内容标识为最新的MD5值;所述当前的数据内容标识为当前的MD5值。
B13、如权利要求B11或B12所述的装置,其特征在于,所述校验模块包括:
线程校验子模块,适于采用多个任务线程分别对所述至少两个文件分段数据并发进行校验。
B14、如权利要求B8所述的装置,其特征在于,所述目标文件包括补丁文件,安装包文件,和/或,病毒库。

Claims (10)

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所述的装置,其特征在于,所述文件分段信息包括分段数及分段大小,所述标记模块包括:
数据地址获取子模块,适于获取所述目标文件中的数据地址;
文件划分子模块,适于按照所述分段数及分段大小,在所述目标文件中划分相应数量的,具有相应起止数据地址的文件分段数据。
CN201310683009.2A 2013-12-12 2013-12-12 一种文件校验的方法及装置 Active CN103646082B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310683009.2A CN103646082B (zh) 2013-12-12 2013-12-12 一种文件校验的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310683009.2A CN103646082B (zh) 2013-12-12 2013-12-12 一种文件校验的方法及装置

Publications (2)

Publication Number Publication Date
CN103646082A true CN103646082A (zh) 2014-03-19
CN103646082B CN103646082B (zh) 2017-04-05

Family

ID=50251296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310683009.2A Active CN103646082B (zh) 2013-12-12 2013-12-12 一种文件校验的方法及装置

Country Status (1)

Country Link
CN (1) CN103646082B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954353A (zh) * 2015-02-10 2015-09-30 腾讯科技(深圳)有限公司 Apk文件包的校验方法和装置
CN105302708A (zh) * 2014-06-30 2016-02-03 联发科技(新加坡)私人有限公司 一种移动终端及其检测方法
CN105487888A (zh) * 2015-11-26 2016-04-13 武汉光迅科技股份有限公司 一种生成在***升级和/或在应用升级的升级文件的方法
CN105739971A (zh) * 2016-01-20 2016-07-06 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
CN106776105A (zh) * 2016-11-15 2017-05-31 惠州Tcl移动通信有限公司 一种***启动文件的校验及编译方法
CN106777310A (zh) * 2016-12-30 2017-05-31 中国民航信息网络股份有限公司 信息的校验方法及装置
CN106909421A (zh) * 2017-02-22 2017-06-30 福建魔方电子科技有限公司 一种安全的金融pos机固件升级方法
CN107092824A (zh) * 2017-04-13 2017-08-25 北京洋浦伟业科技发展有限公司 一种应用程序的运行方法及装置
CN108874825A (zh) * 2017-05-12 2018-11-23 北京京东尚科信息技术有限公司 一种异常数据的校验方法和装置
CN110278267A (zh) * 2019-06-21 2019-09-24 浙江蓝卓工业互联网信息技术有限公司 一种工业互联网app的限制使用方法及***
CN111209597A (zh) * 2018-11-22 2020-05-29 迈普通信技术股份有限公司 数据校验方法及应用***
CN111274766A (zh) * 2018-11-16 2020-06-12 福建天泉教育科技有限公司 一种文件转码结果的校验方法及终端
CN111367926A (zh) * 2020-02-27 2020-07-03 星辰天合(北京)数据科技有限公司 分布式***的数据处理方法和装置
CN112732295A (zh) * 2020-12-31 2021-04-30 东风汽车集团有限公司 一种基于多核ECU的Boot loader刷写方法、电子设备及存储介质
CN113221116A (zh) * 2021-04-12 2021-08-06 烽火通信科技股份有限公司 镜像的摘要计算方法、装置、设备及可读存储介质
WO2021159639A1 (zh) * 2020-02-12 2021-08-19 平安科技(深圳)有限公司 迁移数据的校对方法、装置、设备及存储介质
CN113938269A (zh) * 2021-12-15 2022-01-14 亿次网联(杭州)科技有限公司 一种文件分片上传校验方法和***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110363027B (zh) * 2019-06-21 2021-04-09 捷德(中国)科技有限公司 一种电子合同的生成及电子签名方法

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302708A (zh) * 2014-06-30 2016-02-03 联发科技(新加坡)私人有限公司 一种移动终端及其检测方法
CN104954353A (zh) * 2015-02-10 2015-09-30 腾讯科技(深圳)有限公司 Apk文件包的校验方法和装置
CN104954353B (zh) * 2015-02-10 2018-03-30 腾讯科技(深圳)有限公司 Apk文件包的校验方法和装置
CN105487888A (zh) * 2015-11-26 2016-04-13 武汉光迅科技股份有限公司 一种生成在***升级和/或在应用升级的升级文件的方法
CN105739971A (zh) * 2016-01-20 2016-07-06 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
CN105739971B (zh) * 2016-01-20 2019-03-08 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
WO2018090759A1 (zh) * 2016-11-15 2018-05-24 捷开通讯(深圳)有限公司 一种***启动文件的校验及编译方法
US11061803B2 (en) 2016-11-15 2021-07-13 Jrd Communication (Shenzhen) Ltd Checking system, checking method and compiling method of system start-up file
CN106776105A (zh) * 2016-11-15 2017-05-31 惠州Tcl移动通信有限公司 一种***启动文件的校验及编译方法
CN106776105B (zh) * 2016-11-15 2020-02-21 惠州Tcl移动通信有限公司 一种***启动文件的校验及编译方法
CN106777310A (zh) * 2016-12-30 2017-05-31 中国民航信息网络股份有限公司 信息的校验方法及装置
CN106777310B (zh) * 2016-12-30 2020-05-22 中国民航信息网络股份有限公司 信息的校验方法及装置
CN106909421A (zh) * 2017-02-22 2017-06-30 福建魔方电子科技有限公司 一种安全的金融pos机固件升级方法
CN106909421B (zh) * 2017-02-22 2020-05-12 福建魔方电子科技有限公司 一种安全的金融pos机固件升级方法
CN107092824A (zh) * 2017-04-13 2017-08-25 北京洋浦伟业科技发展有限公司 一种应用程序的运行方法及装置
CN107092824B (zh) * 2017-04-13 2020-04-07 北京梆梆安全科技有限公司 一种应用程序的运行方法及装置
CN108874825A (zh) * 2017-05-12 2018-11-23 北京京东尚科信息技术有限公司 一种异常数据的校验方法和装置
CN111274766A (zh) * 2018-11-16 2020-06-12 福建天泉教育科技有限公司 一种文件转码结果的校验方法及终端
CN111274766B (zh) * 2018-11-16 2023-11-03 福建天泉教育科技有限公司 一种文件转码结果的校验方法及终端
CN111209597A (zh) * 2018-11-22 2020-05-29 迈普通信技术股份有限公司 数据校验方法及应用***
CN111209597B (zh) * 2018-11-22 2022-08-12 迈普通信技术股份有限公司 数据校验方法及应用***
CN110278267A (zh) * 2019-06-21 2019-09-24 浙江蓝卓工业互联网信息技术有限公司 一种工业互联网app的限制使用方法及***
CN110278267B (zh) * 2019-06-21 2021-10-29 浙江蓝卓工业互联网信息技术有限公司 一种工业互联网app的限制使用方法及***
WO2021159639A1 (zh) * 2020-02-12 2021-08-19 平安科技(深圳)有限公司 迁移数据的校对方法、装置、设备及存储介质
CN111367926A (zh) * 2020-02-27 2020-07-03 星辰天合(北京)数据科技有限公司 分布式***的数据处理方法和装置
CN112732295A (zh) * 2020-12-31 2021-04-30 东风汽车集团有限公司 一种基于多核ECU的Boot loader刷写方法、电子设备及存储介质
CN112732295B (zh) * 2020-12-31 2022-11-01 东风汽车集团有限公司 一种基于多核ECU的Boot loader刷写方法、电子设备及存储介质
CN113221116A (zh) * 2021-04-12 2021-08-06 烽火通信科技股份有限公司 镜像的摘要计算方法、装置、设备及可读存储介质
CN113938269A (zh) * 2021-12-15 2022-01-14 亿次网联(杭州)科技有限公司 一种文件分片上传校验方法和***

Also Published As

Publication number Publication date
CN103646082B (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
CN103646082A (zh) 一种文件校验的方法及装置
US10831933B2 (en) Container update system
US11275839B2 (en) Code package processing
US11455566B2 (en) Classifying code as introducing a bug or not introducing a bug to train a bug detection algorithm
CN102982121B (zh) 一种文件扫描方法、文件扫描装置及文件检测***
US20150363185A1 (en) Updating software based on utilized functions
US20120137138A1 (en) Package audit tool
CN103745158A (zh) 修复***漏洞的方法和装置
CN104915595A (zh) 云平台虚拟化漏洞修复的方法及装置
US9860230B1 (en) Systems and methods for digitally signing executables with reputation information
CN113590181A (zh) 配置文件的校验方法、装置、设备及存储介质
US11379215B1 (en) Application-update techniques
US11347533B2 (en) Enhanced virtual machine image management system
CN102999722B (zh) 文件检测***
CN104361094A (zh) 搜索结果中文件的保存方法、装置和浏览器客户端
US20210141891A1 (en) Identifying software provenance
CN103095698A (zh) 客户端软件的修复方法、装置和通信***
CN106569841A (zh) 一种文件加载方法和装置
US11809378B2 (en) Network file deduplication using decaying bloom filters
CN106372508A (zh) 恶意文档的处理方法及装置
CN103269352A (zh) 点对点p2p文件下载方法及装置
US9886472B2 (en) Verification of record based systems
CN104484198A (zh) 一种安装应用程序的方法和装置
CN115686380B (zh) 一种文件存储的方法、装置、计算机设备及存储介质
US11822663B2 (en) Supervisor-based firmware hardening

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161212

Address after: 100015 Jiuxianqiao Chaoyang District Beijing Road No. 10, building 15, floor 17, layer 1701-26, 3

Applicant after: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant before: Qizhi software (Beijing) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Cai Dongbin

Inventor after: Meng Jun

Inventor after: Liu Xuezhong

Inventor after: Yang Xiaobo

Inventor after: Huang Jianting

Inventor before: Cai Dongbin

Inventor before: Yang Xiaobo

Inventor before: Huang Jianting

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100032 NO.332, 3rd floor, Building 102, 28 xinjiekouwai street, Xicheng District, Beijing

Patentee after: QAX Technology Group Inc.

Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing.

Patentee before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.