CN102364458B - 一种文件摘要的提取方法 - Google Patents
一种文件摘要的提取方法 Download PDFInfo
- Publication number
- CN102364458B CN102364458B CN 201110375121 CN201110375121A CN102364458B CN 102364458 B CN102364458 B CN 102364458B CN 201110375121 CN201110375121 CN 201110375121 CN 201110375121 A CN201110375121 A CN 201110375121A CN 102364458 B CN102364458 B CN 102364458B
- Authority
- CN
- China
- Prior art keywords
- byte
- separator
- mentioned
- sequence
- value
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000005520 cutting process Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种文件摘要的提取方法,属于数据处理技术领域。首先生成一个由多个字节组成的字节序列,将文件按照单位长度切分为一个或多个数据块,扫描组成各数据块的字节取值,将该字节取值与字节序列中各字节取值进行比较,统计两者相等的字节数量;设定一个数量分隔符,检查字节数量的符号,当字节数量符号超过一个时,在其两侧添加该数量分隔符,将所有字节数量和数量分隔符组成一个或多个中间序列;设定边界分隔符,将多个中间序列依次相互连接,每两个中间序列之间添加上述边界分隔符,得到文件摘要。本发明方法可以根据摘要值迅速判断出两个文件的相似程度,在没有得到原始文件数据的情况下,也可以得出不同原始文件的相似程度。
Description
技术领域
本发明涉及一种文件摘要的提取方法,属于数据处理技术领域。
背景技术
现有的被广泛采用的文件摘要方法,大部分都是利用散列(哈希)函数对文件数据进行扫描,从而生成固定长度的散列值,把该散列值作为文件的摘要。数学表述为:h=H(M),其中H()为单向散列函数,M为任意长度原始文件数据,h为固定长度散列值。由于大部分散列算法主要应用在信息安全领域,它的优点是即使M有极小的变化(增加、删除或修改任意一个字节)所产成的散列值h也会完全不同,所以这种文件摘要方法具有很强的防篡改特性。
但是,由于以上的防篡改特性,通过现有的生成文件摘要的方法,无法根据已经生成的两个文件摘要来判断原始两个文件之间的相似程度。
发明内容
本发明的目的是提出一种新的文件摘要提取方法,使得通过不同原始文件的摘要可以判断出原始文件之间的相似程度。
本发明提出的文件摘要提取方法,包括以下各步骤:
(1)生成一个由多个字节组成的字节序列,字节序列中每个字节的值互不相同;
(2)将文件按照单位长度切分为一个或多个数据块,;
(3)分别扫描组成上述各数据块的字节取值,将该字节取值与上述字节序列中各字节取值进行比较,分别统计数据块的字节取值与上述字节序列中的字节取值相等的字节数量;
(4)设定一个非数字的数量分隔符,使得该分隔符与表示上述字节数量的符号不相等,依次检查一个或多个数据块中的所有字节数量的符号,当字节数量符号超过一个时,在该字节数量符号的两侧添加该数量分隔符,将所有字节数量和数量分隔符组成一个或多个中间序列;
(5)设定一个非数字的符号作为边界分隔符,该边界分隔符与上述数量分隔符和上述数量符号不相等;
(6)将上述多个中间序列依次相互连接,每两个中间序列之间添加上述边界分隔符,得到文件摘要。
本发明提出的文件摘要提取方法,提取原始文件数据中不同的字节值出现的数量,同 时采用分块的方法兼顾了数据的顺序特征。采用本发明的摘要提取方法,可以根据摘要值迅速判断出两个文件的相似程度,在没有得到原始文件数据的情况下,也可以得出不同原始文件的相似程度。
具体实施方式
本发明提出的文件摘要提取方法,包括以下步骤:
(1)生成一个由多个字节组成的字节序列,字节序列中每个字节的值互不相同;
(2)将文件按照单位长度切分为一个或多个数据块,;
(3)分别扫描组成上述各数据块的字节取值,将该字节取值与上述字节序列中各字节取值进行比较,分别统计数据块的字节取值与上述字节序列中的字节取值相等的字节数量;
(4)设定一个非数字的数量分隔符,使得该分隔符与表示上述字节数量的符号不相等,依次检查一个或多个数据块中的所有字节数量的符号,当字节数量符号超过一个时,在该字节数量符号的两侧添加该数量分隔符,将所有字节数量和数量分隔符组成一个或多个中间序列;
(5)设定一个非数字的符号作为边界分隔符,该边界分隔符与上述数量分隔符和上述数量符号不相等;
(6)将上述多个中间序列依次相互连接,每两个中间序列之间添加上述边界分隔符,得到文件摘要。
以下详细介绍本发明的内容:
首先:根据用户对文件摘要的准确性要求,生成一个字节序列,生成一个由多个字节组成的字节序列,字节序列中每个字节的值互不相同。准确性要求越高,字节序列的长度越长,由于每个字节的取值范围是0到255,所以该字节序列最长等于256,即包含所有在文件数据中出现的字节可能的取值情况。对于某些文件类型,有可能预知文件数据中出现的字节可能的取值范围。
比如某种英文文本文件,只可能出现取ASCII码小写26个英文字母码值的字节,那么字节序列就可以由26个ASCII码值组成,因为其它的字节值不会在文件数据中出现,这样可以减小摘要的长度。
也可以随机取少数字节值组成字节序列,这样摘要长度可以更短,但是准确性会降低,因为在后面统计过程中,字节序列中没包含的字节值不会被统计到,这些信息就会丢失。
将文件按照单位长度切分为一个或多个数据块,通常情况下单位长度等于文件长度即可,这时文件只存在一个数据块,把文件分成多块实际上相当于把文件分成若干子文件分别提取摘要。当单位长度小于文件长度时,文件分块数量等于文件长度除以单位长度后向上取整后的值,除最后一个数据块长度等于文件长度相对单位长度取余的结果外,其它数据块长度等于单位长度。
对文件中的每个数据块进行扫描,分别统计各数据块中字节值与上述字节序列中字节值相等的字节数量,然后选定一个非数字的数量分隔符,使得该分隔符不与表示数量的符号或者上述字节序列中的值相等,该分隔符可以取“、”“,”“;”等等,并将该数量组成一个中间序列,当序列中的数量存在超过一位的符号时,超过一位的数量符号两侧要用数量分隔符与其它数量分隔开以避免歧义,共得到一个或多个中间序列。这里的数量可以是简单的十进制或者十六进制字符表示(这时该数量最为精确,但是位数可能很长);也可以是一系列字符代表的数字区间,比如“o”代表大于等于0并且小于10的范围、“p”代表大于等于10并且小于100的范围、“q”代表大于等于100的范围,这样只用三个符号代表统计结果的数量,也不会出现需要使用数量分隔符的情况(因为只有一位符号,不会产生歧义),比如某个字节序列中字节的统计结果等于2500时,只需要用“q”表示即可,这样做的缺点是摘要的准确性会降低,因为统计结果2500与25000都会用“q”表示,两者的差异就表现不出来了。实际使用中需要根据数据特点以及准确性要求来确定数量的表示方式。
选定1个非数字的符号作为边界分隔符(比如“|”),使得该边界分隔符不与数量分隔符或者表示数量的符号或者上述字节序列中的值相等。
将上述多个中间序列依次相互连接(中间通过边界分隔符分隔)即得到文件在上述字节序列下的文件摘要。
在实际使用中,传递文件摘要的同时,要告知对方在摘要提取过程中使用的字节序列以及单位长度,双方也可以根据不同的文件类型以及精度要求约定默认的字节序列以及单位长度,当每个数据块的中间序列长度固定时,由于对方可以确定中间序列的分界线,所以可以省略边界分隔符。比如对方已知提取摘要的字节序列,也知道扫描数据块时统计字节序列中的字节在文件中出现的数量时表示数量的符号只有固定长度(比如只用“o”、“p”、“q”代表统计数量),那么每个数据块扫描统计后得到的中间序列长度也是固定的,这时可以省略边界分隔符(比如“|”)以简化文件摘要。
以下介绍本发明的一个比较简单和一个比较复杂的两个实施例来说明摘要提取的详细过程:
实施例1:
假设文件长度为10个字节,每个字节用十六进制表示依次为:
3 F2 4F 2 0 F2 4F 4F F2 FF。
首先生成一个字节序列:用十六进制表示为0 1 4F FF共4个字节,然后将文件按照单位长度10(等于文件总长度)切分为1个数据块。
对该数据块进行扫描,分别统计各数据块中字节值与上述字节序列中字节值相等的字节数量:我们可以统计出,字节序列中的“0”在数据块中相等的字节数量为1,字节序列中的“1”在数据块中相等的字节数量为0,字节序列中的“4F”在数据块中相等的字节数量为3,字节序列中的“FF”在数据块中相等的字节数量为1,选定数量分隔符为”,”, 将以上数量组成一个中间序列:1031。由于所有数量都是1位符号,所以没有使用数量分隔符”,”,共得到1个中间序列。
选定符号“|”作为边界分隔符,这个符号满足不与数量分隔符或者表示数量的符号或者上述字节序列中的值相等的条件。
述中间序列1031(由于只有一个序列,所以不需要通过边界分隔符分隔),既是文件在上述字节序列0 1 4F FF下的文件摘要。
实施例2:
假设文件长度为40个字节,每个字节用十六进制表示依次为:
8 8 8 8 8 8 8 8 FF 8 8 8 8 8 8 8 8 8 FF F2 0 3 24 4F F2 6A 2B 3A 0 0 8F 9 090 8F 8A 0 4 7 FF
首先生成一个字节序列:用十六进制表示为0 1 8 FF共4个字节,然后将文件按照单位长度12切分为4个数据块,其中前三个数据块长度为12,第四个数据块长度为:总长度40相对于单位长度12取余,等于4。
这四个数据块分别为:
数据块1:8 8 8 8 8 8 8 8 FF 8 8 8
数据块2:8 8 8 8 8 8 FF F2 0 3 24 4F
数据块3:F2 6A 2B 3A 0 0 8F 9 0 90 8F 8A
数据块4:0 4 7 FF
对以上四个数据块进行扫描,分别统计各数据块中字节值与上述字节序列中字节值相等的字节数量,选定数量分隔符为”,”,可以统计出:
数据块1的中间序列为:00,11,1
由于第三个数量超过了位字符,所以两侧用数量分隔符“,”与其它数量分隔
数据块2的中间序列为:1061
数据块3的中间序列为:3000
数据块4的中间序列为:1001
共得到上述四个中间序列。
选定符号“|”作为边界分隔符,这个符号满足不与数量分隔符或者表示数量的符号或者上述字节序列中的值相等的条件。
将上述中间序列依次相互连接(中间边界分隔符分隔),得到文件在字节序列0 1 8
FF下的文件摘要:00,11,1|1061|3000|1001。
Claims (1)
1.一种文件摘要提取方法,其特征在于该方法包括以下各步骤:
(1)生成一个由多个字节组成的字节序列,字节序列中每个字节的值互不相同;
(2)将文件按照单位长度切分为一个或多个数据块;
(3)分别扫描组成上述各数据块的字节取值,将该字节取值与上述字节序列中各字节取值进行比较,分别统计数据块的字节取值与上述字节序列中的字节取值相等的字节数量;
(4)设定一个非数字的数量分隔符,使得该分隔符与表示上述字节数量的符号不相等,依次检查一个或多个数据块中的所有字节数量的符号,当字节数量符号超过一个时,在该字节数量符号的两侧添加该数量分隔符,将所有字节数量和数量分隔符组成一个或多个中间序列;
(5)设定一个非数字的符号作为边界分隔符,该边界分隔符与上述数量分隔符和上述数量符号不相等;
(6)将上述多个中间序列依次相互连接,每两个中间序列之间添加上述边界分隔符,得到文件摘要。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110375121 CN102364458B (zh) | 2011-11-23 | 2011-11-23 | 一种文件摘要的提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110375121 CN102364458B (zh) | 2011-11-23 | 2011-11-23 | 一种文件摘要的提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102364458A CN102364458A (zh) | 2012-02-29 |
CN102364458B true CN102364458B (zh) | 2013-11-06 |
Family
ID=45691024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110375121 Active CN102364458B (zh) | 2011-11-23 | 2011-11-23 | 一种文件摘要的提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102364458B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678645A (zh) * | 2013-12-20 | 2014-03-26 | 中电长城网际系统应用有限公司 | 文档匹配方法和文档匹配装置 |
US10372695B2 (en) * | 2014-12-27 | 2019-08-06 | Intel Corporation | Technologies for computing rolling hashes |
CN106326292B (zh) * | 2015-06-29 | 2020-05-19 | 杭州海康威视数字技术股份有限公司 | 数据结构和文件聚合、读取方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886767A (zh) * | 2003-11-28 | 2006-12-27 | 语言的森林有限公司 | 作文的评估和评分装置 |
CN101088082A (zh) * | 2004-10-25 | 2007-12-12 | 英孚威尔公司 | 全文查询和搜索系统及其使用方法 |
-
2011
- 2011-11-23 CN CN 201110375121 patent/CN102364458B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886767A (zh) * | 2003-11-28 | 2006-12-27 | 语言的森林有限公司 | 作文的评估和评分装置 |
CN101088082A (zh) * | 2004-10-25 | 2007-12-12 | 英孚威尔公司 | 全文查询和搜索系统及其使用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102364458A (zh) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Breitinger et al. | FRASH: A framework to test algorithms of similarity hashing | |
Roussev et al. | File fragment encoding classification—An empirical approach | |
CN103425639A (zh) | 一种基于信息指纹的相似信息识别方法 | |
CN102750379B (zh) | 一种基于过滤型的字符串快速匹配方法 | |
CN108595710B (zh) | 一种快速的海量图片去重方法 | |
CN101369278B (zh) | 一种近似匹配方法和装置 | |
CN103955539B (zh) | 一种获取二进制协议数据中控制字段划分点的方法及装置 | |
Harichandran et al. | Bytewise approximate matching: the good, the bad, and the unknown | |
CN102364458B (zh) | 一种文件摘要的提取方法 | |
CN101794378B (zh) | 基于图片编码的垃圾图片过滤方法 | |
CN105589894B (zh) | 文档索引建立方法和装置、文档检索方法和装置 | |
CN103514238A (zh) | 基于分类查找的敏感词识别处理方法 | |
CN112800008A (zh) | 日志消息的压缩、搜索和解压缩 | |
CN110362560B (zh) | 一种无业务主键数据在存储数据库时去重的方法 | |
CN101576872B (zh) | 一种中文文本处理方法及装置 | |
CN109359481B (zh) | 一种基于bk树的反碰撞搜索约减方法 | |
CN103365934A (zh) | 复杂命名实体抽取方法及装置 | |
JP2015534795A (ja) | セキュアで損失のないデータ圧縮 | |
CN116827354B (zh) | 一种文件数据分布式存储管理系统 | |
CN111447188B (zh) | 基于语言隐写特征空间的无载体文本隐写方法 | |
CN110007955B (zh) | 一种指令集模拟器译码模块代码的压缩方法 | |
CN113378163A (zh) | 基于DEX文件分区特性的Android恶意软件家族分类方法 | |
Chang et al. | Security analysis of MVhash-B similarity hashing | |
CN114841256A (zh) | 一种基于多维特征融合的dga域名分类方法 | |
CN101729076A (zh) | 一种基于非完备码表解析码长的哈夫曼解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240419 Address after: Room 701, Building 2, Wuchan Tiandi Center, Shangcheng District, Hangzhou City, Zhejiang Province, 311500 Patentee after: Alternating (Hangzhou) Digital Technology Co.,Ltd. Country or region after: China Address before: No. 9 Nanhu South Road, Chaoyang District, Beijing, 100101 Patentee before: Zhao Shuqiao Country or region before: China |
|
TR01 | Transfer of patent right |