文件指纹校验方法及装置的制造方法_2

文档序号:9888061阅读:来源:国知局
m函数将预处理后的文件内容信息进行划分,得到多个指纹分块;计算每个指纹分块对应的哈希值,作为提取的指纹信息。
[0043]例如,对一段为“今天天气不错”的文件内容,预设分块大小k为5,划分为两个分块,分别为hl、h2,分别对应“今天天气不”、“天天气不错”两个内容片段。计算hi对应的哈希值,具体通过公式hl=AX2~4+BX2~3+CX2~2+DX2~l+EX2~0计算出hi对应的哈希值,其中,A至E为“今”、“天”、“天”、“气”、“不”在Unicode中对应的数字表示。可以通过相同的方式,可以计算出h2对应的哈希值,进而将h1、h2分别对应的哈希值作为提取的指纹信息。
[0044]对于本发明实施例,所述根据所述指纹信息,构建预置指纹库之前,还包括:对所述指纹信息进行筛选;所述根据所述指纹信息,构建预置指纹库具体包括:根据筛选后的指纹信息,构建预置指纹库。具体地,所述对所述指纹信息进行筛选包括:通过预置Winnowing函数,对所述指纹信息进行筛选。其中,所述预置Winnowing函数可以为根据Winnowing算法编写的函数。所述Winnowing算法所采用的策略是:选择每个窗口中最小的哈希值,如果一个窗口中存在多个最小值,则选择最右边的,该策略既保证选取足够的指纹信息,又保证了不会产生太庞大的指纹。
[0045]例如,当前有111、112、113、114这些分块指纹,窗口大小为3、即存在(111、112、113)、(112、h3、h4)两个窗口,分别记为窗口 1、窗口 2,在窗口 I中hi对应的哈希值最小,则将h2和h3去除,只保留hi对应的哈希值;而窗口 2中h3和h4的哈希值最小,选择保留窗口最右边的h4的哈希值,将h2和h3去除,进而只剩下hi和h4两个分块指纹,作为筛选后的指纹信息。
[0046]进一步地,所述根据筛选后的指纹信息,构建预置指纹库之后,还包括:将所述预置指纹库保存在布隆过滤器中,以便进行文件相似性校验。其中,所述布隆过滤器(BloomFilter)的实现基础是一个很长的二进制位向量和一系列随机散列函数,是一种基于散列的查找算法,用于查找一个元素是否在集合中,和散列表相比,所述布隆过滤器的优点是空间效率和查询时间都远远超过一般的算法,可以对海量数据集进行表示和查找操作,存储空间和插入/查询时间都是常数,另外,哈希函数相互之间没有关系,方便由硬件并行实现;布隆过滤器不需要存储元素本身,在对保密要求非常严格的场合有优势。
[0047 ] 202、通过预置Karp-Rabin函数,提取预处理后的文件内容信息中的指纹信息。
[0048]对于本发明实施例,所述步骤202具体包括:通过预置K-gram函数将所述预处理后的文件内容信息进行划分,得到多个指纹分块;计算每个指纹分块对应的哈希值,作为提取的指纹信息。
[0049]进一步地,所述计算每个指纹分块对应的哈希值,作为提取的指纹信息包括:按照每个指纹分块在文件内容信息中位置的先后顺序,计算所述每个指纹分块对应的哈希值;当需要计算处于除首位外其余位置的指纹分块的哈希值时,获取前一个指纹分块对应的哈希值;计算所述前一个指纹分块中第一个字符对应的哈希值,以及所述处于除首位外其余位置的指纹分块中最后一个字符对应的哈希值;计算所述前一个指纹分块对应的哈希值与所述前一个指纹分块中第一个字符对应的哈希值之差,再与所述处于除首位外其余位置的指纹分块中最后一个字符对应的哈希值求和,得到所述处于除首位外其余位置的指纹分块对应的哈希值。
[0050]例如,对一段为“今天天气不错”的文件内容,预设分块大小k为5,划分为两个分块,分别为hl、h2,分别对应“今天天气不”、“天天气不错”两个内容片段。已经计算出了hi对应的哈希值,这时计算h2对应的哈希值时,计算hi的哈希值与“今”字符对应的哈希值之差,再与“错”字符对应的哈希值求和,最后得到h2对应的哈希值。
[0051]需要说明的是,当需要计算处于除首位外其余位置的指纹分块的哈希值时,通过上述方式可以提尚计算效率,进而提尚了指纹?目息提取的效率。
[0052]203、检测指纹信息与预置指纹库中的指纹信息之间的相似度是否大于或等于预设阈值。
[0053]其中,所述预设阈值可以根据实际需求进行配置。例如,可以配置为60%、70%等。
[0054]204、若相似度大于或等于预设阈值,则确定待校验文件为内容相似文件。
[0055]本发明实施例提供的另一种文件指纹校验方法,首先提取待校验文件中的文件内容信息并进行预处理;提取预处理后的文件内容信息中的指纹信息;检测所述指纹信息与预置指纹库中的指纹信息之间的相似度是否大于或等于预设阈值;若所述相似度大于或等于所述预设阈值,则确定所述待校验文件为内容相似文件。本发明通过对待校验文件进行指纹信息提取并与预置指纹库中的指纹信息之间进行相似度进行检测,提供了对非结构化数据进行指纹校验的方式,可以实现对文件数据的相似性进行准确校验,从而可以提高处理日益增长的海量电子化文档的效率。
[0056]进一步地,作为图1所述方法的具体实现,本发明实施例提供了一种文件指纹校验装置,如图3所示,所述装置包括:提取单元31、预处理单元32、检测单元33、确定单元34。
[0057]所述提取单元31,可以用于提取待校验文件中的文件内容信息。
[0058]所述预处理单元32,可以用于对所述提取单元31提取的待校验文件中的文件内容信息进行预处理。
[0059]所述提取单元31,还可以用于提取预处理后的文件内容信息中的指纹信息。
[0060]所述检测单元33,可以用于检测所述提取单元31提取的指纹信息与预置指纹库中的指纹信息之间的相似度是否大于或等于预设阈值。
[0061 ]所述确定单元34,可以用于若所述检测单元33检测出所述相似度大于或等于所述预设阈值,则确定所述待校验文件为内容相似文件。
[0062]需要说明的是,本发明实施例提供的一种文件指纹校验装置所涉及各功能单元的其他相应描述,可以参考图1中的对应描述,在此不再赘述。
[0063]本发明实施例提供的一种文件指纹校验装置,首先提取待校验文件中的文件内容信息并进行预处理;提取预处理后的文件内容信息中的指纹信息;检测所述指纹信息与预置指纹库中的指纹信息之间的相似度是否大于或等于预设阈值;若所述相似度大于或等于所述预设阈值,则确定所述待校验文件为内容相似文件。本发明通过对待校验文件进行指纹信息提取并与预置指纹库中的指纹信息之间进行相似度进行检测,提供了对非结构化数据进行指纹校验的方式,可以实现对文件数据的相似性进行准确校验,从而可以提高处理日益增长的海量电子化文档的效率。
[0064]进一步地,作为图2所述方法的具体实现,本发明实施例提供了另一种文件指纹校验装置,如图4所示,所述装置包括:提取单元41、预处理单元42、检测单元43、确定单元44。
[0065]所述提取单元41,可以用于提取待校验文件中的文件内容信息。
[0066]所述预处理单元42,可以用于对所述提取单元41提取的待校验文件中的文件内容信息进行预处理。
[0067]所述提取单元41,还可以用于提取预处理后的文件内容信息中的指纹信息。
[0068]所述检测单元43,可以用于检测所述提取单元41提取的指纹信息与预置指纹库中的指纹信息之间的相似度是否大于或等于预设阈值。
[0069]所述确定单元44,可以用于若所述检测单元43检测出所述相似度大于或等于所述预设阈值,则确定所述待校验文件为内容相似文件。
[0070]所述提取单元41,具体可以用于通过预置Karp-Rabin函数,提取预处理后的文件内容信息中的指纹信息。[007?]进一步地,所述提取单元41包括:划分模块411、计算模块412。
[0072]所述划分模块411,可以用于通过预置K-gram函数将所述预处理后的文件内容信息进行划分,得到多个指纹分块。
[0073]所述计算模块412,可以用于计算每个指纹分块对应的哈希值,作为提取的指纹信息。
[0074]所述计算模块412,具体可以用于按照每个指纹分块在文件内容信息中位置的先后顺序,计算所述每个指纹分块对应的哈希值。
[0075]所述计算模块412,具体还可以用于当需要计算处于除首位外其余位置的指纹分块的哈希值时,获取前一个指纹分块对应的哈希值。
[0076]所述计算模块412,具体还可以用于计算所述前一个指纹分块中第一个字符对应的哈希值,以及所述处于除首位外其余位置的指纹分块中最后一个字符对应的
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1