买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】文件的去重处理方法和装置_北京二六三企业通信有限公司_201611016883.0 

申请/专利权人:北京二六三企业通信有限公司

申请日:2016-11-18

公开(公告)日:2021-01-05

公开(公告)号:CN106708927B

主分类号:G06F16/174(20190101)

分类号:G06F16/174(20190101)

优先权:

专利状态码:有效-授权

法律状态:2021.01.05#授权;2017.06.16#实质审查的生效;2017.05.24#公开

摘要:本发明提供一种文件的去重处理方法和装置。本发明提供的文件的去重处理方法,包括:从上述文件中获取至少两个数据块;根据预设的哈希算法分别计算每个数据块的消息摘要,并根据上述至少两个数据块的消息摘要得到组合消息摘要;根据上述组合消息摘要进行去重比对操作。本发明提供的文件的去重处理方法,可降低组合消息摘要碰撞的概率,进而降低进行全文比对的概率,从而避免因全文比对导致的增加比对的工作量、增加比对的成本的问题。

主权项:1.一种文件的去重处理方法,其特征在于,包括:从所述文件中获取至少两个数据块;根据预设的哈希算法分别计算每个数据块的消息摘要,并按照预设的组合顺序根据所述至少两个数据块的消息摘要得到组合消息摘要;根据所述组合消息摘要进行去重比对操作,具体为:将两个文件的所述组合消息摘要进行比对,判断所述两个文件的所述组合消息摘要是否相同,若所述组合消息摘要不相同,则确定两个文件不同;若所述组合消息摘要相同,则对所述两个文件进行全文比对,以判断所述两个文件是否相同;其中,所述从所述文件中获取至少两个数据块,具体包括:按照预设的内存间隔,间隔从所述文件中提取第一元数据块;根据预设的组合策略,将所述第一元数据块组合为所述至少两个数据块;或者,按照预设的数据块大小,顺序从所述文件中提取第二元数据块;根据预设的组合策略,将所述第二元数据块组合为所述至少两个数据块。

全文数据:文件的去重处理方法和装置技术领域[0001]本发明涉及数据处理技术,尤其涉及一种文件的去重处理方法和装置。背景技术[0002]为避免相同的文件被重复存储,占用存储系统的容量,需要进行文件去重处理。[0003]目前,采用如下方法来判断第一文件和第二文件是否相同,以在第一文件和第二文件相同时,进行文件去重处理。首先,对第一文件和第二文件分别进行哈希处理,得到第一文件的第一消息摘要和第二文件的第二消息摘要,然后,判断第一消息摘要与第二消息摘要是否相同。若第一消息摘要与第二消息摘要不相同,则确定第一文件和第二文件不同,不执行去重处理,两个文件分别进行存储,若第一消息摘要和第二消息摘要相同,则再判断第一文件的全文和第二文件的全文是否相同,若第一文件的全文和第二文件的全文相同,则确定第一文件和第二文件相同,执行去重处理,若第一文件的全文和第二文件的全文不相同,则确定第一文件与第二文件不相同,不执行去重处理,两个文件分别存储。[0004]采用上述方法来判断两个文件是否相同时,由于哈希处理自身的特性,不同文件进过哈希处理后,可能会得到同样的消息摘要,例如,将两个不同的文件经过MD5算法处理后,得到的消息摘要碰撞相同)的概率为12128,两个不同的文件的消息摘要碰撞的概率较高。这样,一旦两个不同的文件的消息摘要相同,为判断两个文件是否相同,就需要对两个文件进行全文比对,而这样因碰撞概率高导致的全文比对往往会增加比对的工作量,导致比对成本增加。发明内容[0005]本发明提供一种文件的去重处理方法,以解决现有的文件去重方法中,因文件的消息摘要碰撞的概率较高而导致的比对的工作量大、比对的成本高的问题。[0006]本发明第一方面提供一种文件的去重处理方法,包括:[0007]从所述文件中获取至少两个数据块;[0008]根据预设的哈希算法分别计算每个数据块的消息摘要,并根据所述至少两个数据块的消息摘要得到组合消息摘要;[0009]根据所述组合消息摘要进行去重比对操作。[0010]进一步地,所述从所述文件中获取至少两个数据块,具体包括:[0011]按照预设的内存间隔,间隔从所述文件中提取第一元数据块;[0012]根据预设的组合策略,将所述第一元数据块组合为所述至少两个数据块。[0013]进一步地,所述从所述文件中获取至少两个数据块,具体包括:[0014]按照预设的数据块大小,顺序从所述文件中提取第二元数据块;[0015]根据预设的组合策略,将所述第二元数据块组合为所述至少两个数据块。[0016]进一步地,所述哈希算法为Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一种。[0017]本发明第二方面提供一种文件的去重处理装置,包括:获取模块,计算模块和处理模块,其中,[0018]所述获取模块,用于从所述文件中获取至少两个数据块;[0019]所述计算模块,用于根据预设的哈希算法分别计算每个数据块的消息摘要,并根据所述至少两个数据块的消息摘要得到组合消息摘要;[0020]所述处理模块,用于根据所述组合消息摘要进行去重比对操作。[0021]进一步地,所述获取模块,具体用于按照预设的内存间隔,间隔从所述文件中提取第一元数据块,并根据预设的组合策略,将所述第一元数据块组合为所述至少两个数据块[0022]进一步地,所述获取模块,具体用于根据预设的数据块按照预设的数据块大小,顺序从所述文件中提取第二元数据块,并根据预设的组合策略,将所述第二元数据块组合为所述至少两个数据块。[0023]进一步地,所述哈希算法为Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一种。[0024]本发明提供的文件的去重处理方法和装置,通过从上述文件中获取至少两个数据块,并根据预设的哈希算法分别计算每个数据块的消息摘要,以及根据上述至少两个数据块的消息摘要得到组合消息摘要,进而根据上述组合消息摘要进行去重比对操作。这样,可降低组合消息摘要碰撞的概率,进而降低进行全文比对的概率,从而避免因全文比对导致的增加比对的工作量、增加比对的成本的问题。附图说明[0025]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0026]图1为本发明文件的去重处理方法实施例一的流程图;[0027]图2为本发明文件的去重处理方法实施例二的流程图;[0028]图3为本发明文件的去重处理方法实施例三的流程图;[0029]图4为本发明文件的去重处理装置实施例一的结构示意图。具体实施方式[003°]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0031]本发明提供一种文件的去重处理方法,以解决现有的文件去重方法中,因文件的消息摘要碰撞的概率较高而导致的比对的工作量大、比对的成本高的问题。[0032]本发明提供的文件的去重处理方法,可应用于文件数据处理领域,具体的,可应用本发明提供的文件的去重处理方法,来判断两个文件是否相同,进而决定是否进行去重处理,以避免相同的文件被重复存储,进而占用存储空间的容量。[0033]下面以具体的实施例来对本发明的技术方案进行详细说明,下面这几个具体的实施例可以相互结合,对于相同或相应的概念或过程可能在某些实施例中不再赘述。[0034]图1为本发明文件的去重处理方法实施例一的流程图。本发明实施例的执行主体可以是单独的文件的去重处理装置,还可以是集成了文件的去重处理装置的硬件设备,例如计算机。本发明实施例以执行主体为单独的文件的去重处理装置为例来进行说明。本实施例涉及的是计算文件的组合消息摘要,并根据组合消息摘要进行去重比对操作的具体过程。如图1所示,本实施例提供的文件的去重处理方法,可以包括如下步骤:[0035]S101、从上述文件中获取至少两个数据块。[0036]具体地,本实施例中,文件的类型可以为压缩文件类、音视频文件类,图像文件类、可执行文件类、文档类和数据文件类等。例如,压缩文件类可以是arc压缩文件、cab压缩文件、ddi压缩文件等;音视频文件类可以为avi音视频文件、cmf音视频文件、fli音视频文件、ins音视频文件、mp3音视频文件、mov音视频文件等;图像文件类可以是bmp图像文件、bgi图像文件、cad图像文件、cd图像文件、ico图像文件、jpg图像文件、lbm图像文件、caj图像文件等。文档类文件可以为doc文件、fmt文件、fnt文件、mbd文件、wps文件、xls文件等;可执行文件类可以为com文件、dl1文件、drv文件、exe文件、f0X文件、fxp文件等;数据文件类可以为dat文件、dbf文件、idx文件、img文件、mem文件等。[0037]此外,可以采用如下方法从上述文件中获取至少两个数据块。例如,在一种可能的实现方式中,可以将文件分为内存大小相等的至少两部分,得到至少两个数据块。再例如,在另一种可能的实现方式中,可以从文件中的任意位置任意获取至少两个数据块。在该种实现方式中,例如,假设将文件分为内存大小相等的三部分,这三部分按照在文件中的先后顺序依次记为第一部分、第二部分和第三部分,可以从文件的第一部分中的任意位置获取一个任意内存大小的数据块,再从文件的第三部分中的任意位置再获取一个任意内存大小的数据块,得到两个数据块。还可以从文件中的第二部分中直接获得至少两个数据块。[0038]需要说明的是,上面所介绍的几种获取数据块的方式仅仅是几种可能的实现方式,本实施例不对数据块的具体获取方式作出限制。此外,本实施例中,也不对数据块的内存大小作出限定。[0039]Sl〇2、根据预设的哈希算法分别计算每个数据块的消息摘要,并根据上述至少两个数据块的消息摘要得到组合消息摘要。[0040]具体地,哈希算法可以为Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA_384算法和SHA算法中的任一种。本实施例中,以采用MD5算法计算每个数据块的消息摘要为例来进行说明。例如,在步骤S101中,若获取了两个数据块:数据块々和数据块B,则在本步骤中,采用MD5算法分别计算数据块A的消息摘要MD5A和数据块B的消息摘要⑻。心、[0041]需要说明的是,本步骤中,按照预设的组合顺序根据上述至少两个数据块的消息摘要得到消息摘要。结合上面的例子,当根据数据块A的消息摘要MD5A和数据块B的消息摘要MD5⑻得到组合消息摘要时,可以按照如下组合顺序得到组合消息摘要。即组合消1摘要=MD5AMD5⑻,也可以按照以下组合顺序得到组合消息摘要,即组合消息摘要=皿|^BMD5A。再例如,当在步骤S101中,从文件中获取到三个数据块:数据块A1、数据块M数据块C1,且在本步骤中,采用MD5算法计算得到数据块消息摘要MD5A1、数据块犯的消息摘要MD5B1和数据块Cl的消息摘要MD5Cl。则再根据上述三个消息摘要得到组合消息摘要时,可以按照以下预设的组合顺序中的任意一种来得到组合消息摘要,其中,预设的组合顺序可以为:组合消息摘要=MD5A1MD5B1冊5C1、组合消息摘要=MD5AlMD5C1MD5B1、组合消息摘要=MD5BlMD5AlMD5Cl、组合消息摘要=MD5BlMD5ClMD5Al、组合消息摘要=MD5ClMD5AlMD5Bl、组合消息摘要=MD5ClMD5AlMD5B1。[0042]需要说明的是,上面所介绍的几种预设的组合顺序仅仅是几种可能的实现方式,本实施例不对预设的组合顺序进行限定。[0043]S103、根据上述组合消息摘要进行去重比对操作。[0044]具体地,本步骤中,当按照步骤S101和步骤S102得到两个文件的组合消息摘要后,将这两个文件的组合消息摘要进行比对,判断两个文件的组合消息摘要是否相同,若组合消息摘要不相同,则确定两个文件不同,若两个文件的组合消息摘要相同,则对上述两个文件进行全文比对,以通过全文比对判断两个文件是否相同。[0045]本实施例中,在进行文件的去重处理时,通过从文件中获取至少两个数据块,并根据预设的哈希算法分别计算每个数据块的消息摘要,以及根据上述至少两个数据块的消息摘要得到组合消息摘要,进而根据上述组合消息摘要进行去重比对操作。这样,可降低组合消息摘要碰撞的概率,进而降低进行全文比对的概率,从而避免因全文比对导致的增加比对的工作量,增加比对的成本的问题。[0046]下面以一个具体的例子来解释说明本实施例提供的文件的去重处理方法能降低组合消息摘要碰撞的概率的具体原理。具体地,本例子以从文件中获取两个数据块,且以预设的哈希算法为MD5算法为例来进行说明。例如,从文件中获取两个数据块:数据块1和数据块2,并根据MD5算法计算得到数据块1的消息摘要MD51和数据块2的消息摘要MD52,并根据这两个数据块的消息摘要得到组合消息摘要MD51MD52,结合本申请背景技术中记载的内容可知,由于MD5算法自身的特性,两个文件经过MD5处理后,得到的消息摘要碰撞的概率为I2128,因此,本实施例中,由于组合消息摘要是根据两个消息摘要组合得到的,因此,两个文件的组合消息摘要碰撞的概率为(121282。综上,本实施例提供的文件的去重处理的方法,可降低两个文件的组合消息摘要碰撞的概率。[0047]结合上述例子和上面的分析,当从文件中获取N个数据块其中,N大于等于2,且采用MD5算法来计算每个数据块的消息摘要时,最后根据上述N个数据块得到的组合消息摘要发生碰撞的概率为(12128N。与现有技术中的消息摘要发生碰撞的概率相比,该组合消息摘要发生碰撞的概率大大降低。这样,当将不同的两个文件通过本实施例提供的文件去重方法进行去重处理时,这两个文件的组合消息摘要发生碰撞的概率非常小,可避免现有技术中因消息摘要的碰撞的概率高导致的继续进行全文比对,进而因全文比对导致的增加比对的工作量、增加比对的成本的问题。[0048]本实施例提供的文件的去重处理方法,通过从文件中获取至少两个数据块,并根据预设的哈希算法分别计算每个数据块的消息摘要,以及根据上述至少两个数据块的消息摘要得到组合消息摘要,进而根据上述组合消息摘要进行去重比对操作。这样,可降低组合消息摘要碰撞的概率,进而降低进行全文比对的概率,从而避免因全文比对导致的增加比对的工作量、增加比对的成本的问题。[0049]图2为本发明文件的去重处理方法实施例二的流程图。本实施例涉及的是如何从又仵中获驭全少两个数据块的过程。在实施例一的基础上,本实施例提供的文件的去重处理方法,步骤S101具体包括:[0050]S2〇1、按照预设的内存间隔,间隔从上述文件中提取第一元数据块。[0051]具体地,预设的内存间隔的具体值可以根据需要设定,本实施例不对预设的内存间隔的具体值进行限定。例如,预设的内存间隔可以为500KB。[0052]需要说明的是,第一元数据块包括多个数据块,本实施例中,不对数据块的具体大小进行限定。例如,元数据块的大小可以为1000KB。结合上面的例子,本步骤中,可以从文件中每间隔500KB获取一个内存大小为1000KB的元数据块,得到多个元数据块,这多个元数据块构成第一元数据块。[0053]S202、根据预设的组合策略,将上述第一元数据块组合为上述至少两个数据块。[0054]需要说明的是,本实施例不对预设的组合策略进行限定。例如,可以将上述第一元数据块按照数据块的个数等分为至少两部分,得到至少两个数据块。例如,上述第一元数据块包括9个元数据块,可以将这9个元数据块分为三部分每部分包括三个元数据块),得到三个数据块。再例如,假设上述第一元数据块有5个元数据块,可以将第一个元数据块作为一个数据块,将中间的三个元数据块组合为第二个数据块,将最后的一个数据块作为一个数据块,得到三个数据块。[0055]本实施例提供的文件的去重处理方法,按照预设的内存间隔,间隔从上述文件中提取第一元数据块,并根据预设的组合策略,将上述第一元数据块组合为至少两个数据块,进而根据预设的哈希算法分别计算每个数据块的消息摘要,并根据上述至少两个数据块的消息摘要得到组合消息摘要,从而根据上述组合消息摘要进行去重比对操作。这样,可降低组合消息摘要碰撞的概率,降低进行全文比对的概率,进而避免因全文比对导致的增加比对的工作量、增加比对的成本的问题。[0056]图3为本发明文件的去重处理方法实施例三的流程图。本实施例涉及的是如何从文件中获取至少两个数据块的过程。在实施例一的基础上,本实施例提供的文件的去重处理方法,步骤S101具体包括:[0057]S301、按照预设的数据块大小,顺序从上述文件中提取第二元数据块。[0058]具体地,预设的数据块大小的具体值可以根据需要设定,本实施例不对预设的数据块大小的具体值进行限定。例如,预设的数据块大小可以为200KB;再例如,预设的数据块大小可以为整个文件大小的110。[0059]需要说明的是,第二元数据块包括多个元数据块。例如,一个文件的大小为10000KB,且预设的数据块大小为100KB,则按照上述预设的数据块大小,顺序从上述文件中提取第二元数据块时,可以从上述文件中提取出100个元数据块。[006°]S302、根据预设的组合策略,将上述第二元数据块组合为所述至少两个数据块。[0061]具体地,本步骤的具体实现方法及实现原理可以参见实施例二中步骤S202的描述,此处不再赘述。例如,结合上述的例子,当获取到100个元数据块时,可以将这100个元数据块中的前50个元数据块组合为一个数据块,将这100个元数据块中的后50个元数据块组合为一个数据块,得到两个数据块。[0062]本实施例提供的文件的去重处理方法,按照预设的数据块大小,顺序从上述文件中提取第二元数据块,并根据预设的组合策略,将上述第一元数据块组合为至少两个数据块,进而根据预设的哈希算法分别计算每个数据块的消息摘要,并根据上述至少两个数据块的消息摘要得到组合消息摘要,从而根据所述组合消息摘要进行去重比对操作。这样,可降低组合消息摘要碰撞的概率,降低进行全文比对的概率,进而避免因全文比对导致的增加比对的工作量、增加比对的成本的问题。[0063]图4为本发明文件的去重处理装置实施例一的结构示意图。该装置可以通过软件、硬件或者软硬结合的方式实现,且该装置可以是单独的文件的去重处理装置,也可以是集成了文件的去重处理装置的其他设备,例如计算机。如图4所示,本实施例提供的文件的去重处理装置,可以包括:获取模块100,计算模块200和处理模块300,其中,[00M]获取模块100,用于从上述文件中获取至少两个数据块;[0065]计算模块2〇〇,用于根据预设的哈希算法分别计算每个数据块的消息摘要,并根据上述至少两个数据块的消息摘要得到组合消息摘要;[0066]处理模块300,用于并根据上述组合消息摘要进行去重比对操作。[0067]具体地,本实施例提供的装置,可以用于执行图1所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。[0068]进一步地,上述哈希算法为Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-2邪算法、SHA-384算法和SHA算法中的任一种。[0069]在本发明一种可能的实现方式中,获取模块1〇〇,具体用于按照预设的内存间隔,间隔从上述文件中提取第一元数据块,并根据预设的组合策略,将上述第一元数据块组合为上述至少两个数据块。[0070]具体地,本实施例提供的装置,可以用于执行图2所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。[0071]在本发明另一种可能的实现方式中,获取模块100,具体用于根据预设的数据块按照预设的数据块大小,顺序从上述文件中提取第二元数据块,并根据预设的组合策略,将上述第二元数据块组合为上述至少两个数据块。[0072]具体地,本实施例提供的装置,可以用于执行图3所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。[0073]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。[0074]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

权利要求:1.一种文件的去重处理方法,其特征在于,包括:从所述文件中获取至少两个数据块;根据预设的哈希算法分别计算每个数据块的消息摘要,并根据所述至少两个数据块的消息摘要得到组合消息摘要;根据所述组合消息摘要进行去重比对操作。2.根据权利要求1所述的方法,其特征在于,所述从所述文件中获取至少两个数据块,具体包括:按照预设的内存间隔,间隔从所述文件中提取第一元数据块;根据预设的组合策略,将所述第一元数据块组合为所述至少两个数据块。3.根据权利要求1所述的方法,其特征在于,所述从所述文件中获取至少两个数据块,具体包括:按照预设的数据块大小,顺序从所述文件中提取第二元数据块;根据预设的组合策略,将所述第二元数据块组合为所述至少两个数据块。4.根据权利要求1_3任一项所述的方法,其特征在于,所述哈希算法为Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一种。5.—种文件的去重处理装置,其特征在于,包括:获取模块,计算模块和处理模块,其中,所述获取模块,用于从所述文件中获取至少两个数据块;所述计算模块,用于根据预设的哈希算法分别计算每个数据块的消息摘要,并根据所述至少两个数据块的消息摘要得到组合消息摘要;所述处理模块,用于根据所述组合消息摘要进行去重比对操作。6.根据权利要求5所述的装置,其特征在于,所述获取模块,具体用于按照预设的内存间隔,间隔从所述文件中提取第一元数据块,并根据预设的组合策略,将所述第一元数据块组合为所述至少两个数据块。7.根据权利要求5所述的装置,其特征在于,所述获取模块,具体用于根据预设的数据块按照预设的数据块大小,顺序从所述文件中提取第二元数据块,并根据预设的组合策略,将所述第二元数据块组合为所述至少两个数据块。8.根据权利要求5_7任一项所述的装置,其特征在于,所述哈希算法为Rabin算法、MD5算法、SHA-1算法、SHA-2¾算法、SHA-256算法、SHA-384算法和SHA算法中的任一种。

百度查询: 北京二六三企业通信有限公司 文件的去重处理方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。