CN111782591B - 一种计算文件相似哈希的方法 - Google Patents
一种计算文件相似哈希的方法 Download PDFInfo
- Publication number
- CN111782591B CN111782591B CN202010575989.4A CN202010575989A CN111782591B CN 111782591 B CN111782591 B CN 111782591B CN 202010575989 A CN202010575989 A CN 202010575989A CN 111782591 B CN111782591 B CN 111782591B
- Authority
- CN
- China
- Prior art keywords
- file
- hash
- files
- byte
- stream
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种计算文件相似哈希的方法,其中,包括:将文件看成字节流,比较文件一个字节与前后字节的大小,根据比较结果,设置文件中间哈希的比特值,得到比特流;将得到的比特流组装成新的字节流;如果新的字节流长度大于一定的值,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希;计算两个文件相似哈希的差异,判断两个文件的相似程度。本发明提出的计算文件相似哈希的方法,计算简单,相似文件的相似哈希差异较小,不同文件的相似哈希差异较大,能够有效地区分不同文件,在文件快速检索、文件云存储系统中去重等应用中具有重要的应用价值。
Description
技术领域
本发明涉及云存储技术,特别涉及一种计算文件相似哈希的方法。
背景技术
随着云计算技术的发展,人们在云存储中上共享的文件数量急剧增长。存储在云存储上的文件中,大部分是相同或相似的,浪费了大量上传文件使用的网络带宽,也浪费了大量的存储空间。如果能快速判断两份文件的相似性,人们在上传共享文件前,就可能消除这些重复或相似的文件,就可以节省带宽和存储资源。
人们提出了许多计算文件哈希的方法,如安全散列算法SHA1、SHA2、SHA3等。如果两份文件完全相同,则这些算法计算出的两个文件哈希就一致;如果两份文件有很小差异,则这些算法计算出的两个文件哈希就有很大差异,不能用于文件相似性判断。
为此,人们提出了文件模糊哈希方法,如SSDEEP、SDBF、TLSH等,如果两份文件相同或相似,则这些算法计算出的两个文件哈希就相同或相似,但计算过程比较复杂。
图像是一种特殊的文件。人们提出了图像感知哈希方法,如块均值哈希、离散余弦变换哈希,以及201910526184.8《一种计算图像感知哈希的方法》中公开的图像感知哈希方法。图像感知哈希计算简单,获得广泛应用。
如果能像图像感知哈希一样计算文件的相似哈希,就可能用比较统一的方式处理图像文件和一般文件。本发明正是基于这种现实需求而产生的。
发明内容
本发明的目的在于提供一种计算文件相似哈希的方法,用于解决上述现有技术的问题。
本发明一种计算文件相似哈希的方法,其中,包括:将文件看成字节流,比较文件一个字节与前后字节的大小,根据比较结果,设置文件中间哈希的比特值,得到比特流;将得到的比特流组装成新的字节流;如果新的字节流长度大于一定的值,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希;计算两个文件相似哈希的差异,判断两个文件的相似程度。
根据本发明的一种计算文件相似哈希的方法的一实施例,其中,如果一个文件从头到尾有n个字节,比特流为B1,B2,…,Bn,则转换成n个比特的比特流b1,b2,…,bn,转换过程包括:采用循环贯序差分方法包括:如果Bi≥Bi+1,则bi=1,否则bi=0,i=1,2,…,n,当i=n时,i+1的值取为1;采用普通差分方法包括:如果Bi+Bi≥Bi-1+Bi+1,则bi=1,否则bi=0,i=1,2,…,n,当i=1时,i-1的值取为n,当i=n时,i+1的值取为1。
根据本发明的一种计算文件相似哈希的方法的一实施例,其中,得到的比特流为b1,b2,…,bn,如果比特流中比特数目n的值不是8的倍数,则在bn后面添加若干个值为0的比特,使得比特流的比特数目n为8的倍数。每连续8个比特组装成一个字节,将比特流顺序组成新的字节流B’1,B’2,…,B’m,其中,m=n÷8,B’i=bi*8bi*8+1bi*8+2…bi*8+7,i=1,2,…,m。
根据本发明的一种计算文件相似哈希的方法的一实施例,其中,如果新的字节流长度大于256,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希。
本发明提出的计算文件相似哈希的方法,计算简单,相似文件的相似哈希差异较小,不同文件的相似哈希差异较大,能够有效地区分不同文件,在文件快速检索、文件云存储系统中去重等应用中具有重要的应用价值。
附图说明
图1是本发明的一种计算文件相似哈希的方法的流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明提出了一种计算文件相似哈希的方法,该方法包括:
(1)字节比较步骤。将文件看成字节流,比较文件一个字节与前后字节的大小,根据比较结果,设置文件中间哈希的比特值,得到比特流。
(2)相似哈希组装步骤。将得到的比特流组装成新的字节流。
(3)再次哈希步骤。如果新的字节流长度大于一定的值,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希。
(4)文件相似哈希比较步骤。计算两个文件相似哈希的差异,判断两个文件的相似程度。
本方法在计算文件相似哈希的过程中,利用循环贯序差分或普通差分将文件字节流比特化,仅需要简单的整数加、减运算就能完成,简单快速。同时使得相似文件的相似哈希差异较小,不同文件的相似哈希差异较大,可以提高云存储系统中用户对于去重的体验。因此,本发明在文件检索、文件去重中将发挥重要作用。
图1是本发明的一种计算文件相似哈希的方法的流程图。如图1所示,该方法包括:
(1)字节比较步骤。将文件看成字节流,比较文件一个字节与前后字节的大小,根据比较结果,设置文件中间哈希的比特值,得到比特流。
具体实施时,如果一个文件从头到尾有n个字节,比特流为B1,B2,…,Bn,则转换成由n个比特的比特流b1,b2,…,bn。转换过程如下:
采用循环贯序差分方法:如果Bi≥Bi+1,则bi=1,否则bi=0,i=1,2,…,n,当i=n时,i+1的值取为1。
采用普通差分方法:如果Bi+Bi≥Bi-1+Bi+1,则bi=1,否则bi=0,i=1,2,…,n,当i=1时,i-1的值取为n。当i=n时,i+1的值取为1。
(2)相似哈希组装步骤。将得到的比特流组装成新的字节流。
具体实施时,如果得到的比特流为b1,b2,…,bn,如果比特流中比特数目n的值不是8的倍数,则在bn后面添加若干个值为0的比特,使得比特流的比特数目n为8的倍数。每连续8个比特组装成一个字节,将比特流顺序组成新的字节流B’1,B’2,…,B’m,其中,m=n÷8,B’i=bi*8bi*8+1bi*8+2…bi*8+7,i=1,2,…,m。
(3)再次哈希步骤。如果新的字节流长度大于一定的值,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希。
具体实施时,如果新的字节流长度大于256,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希。
(4)文件相似哈希比较步骤。计算两个文件相似哈希的差异,判断两个文件的相似程度。
具体实施时,计算两个文件相似哈希比特流的差异可以采用常规的编辑距离法,在计算编辑距离时,插入1个比特的代价为1,删除1个比特的代价为1。两个文件相似哈希的编辑距离越小,就说明相应的两份文件就越相似。
本发明公开了一种计算文件相似哈希的方法,该方法包括:(1)字节比较步骤。将文件看成字节流,比较文件一个字节与前后字节的大小,根据比较结果,设置文件中间哈希的比特值,得到比特流。(2)相似哈希组装步骤。将得到的比特流组装成新的字节流。(3)再次哈希步骤。如果新的字节流长度大于一定的值,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希。(4)文件相似哈希比较步骤。计算两个文件相似哈希的差异,判断两个文件的相似程度。
本发明提出的计算文件相似哈希的方法,计算简单,相似文件的相似哈希差异较小,不同文件的相似哈希差异较大,能够有效地区分不同文件,在文件快速检索、文件云存储系统中去重等应用中具有重要的应用价值。能够满足云存储系统文件去重功能中的简单快速判断两份文件相似性的需求。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (3)
1.一种计算文件相似哈希的方法,其特征在于,包括:
将文件看成字节流,比较文件一个字节与前后字节的大小,根据比较结果,设置文件中间哈希的比特值,得到比特流;
将得到的比特流组装成新的字节流;
如果新的字节流长度大于256,则将新的字节流看成是文件,返回字节比较步骤;否则就得到文件相似哈希;
计算两个文件相似哈希的差异,判断两个文件的相似程度。
2.如权利要求1所述的一种计算文件相似哈希的方法,其特征在于,如果一个文件从头到尾有n个字节,比特流为B1,B2,…,Bn,则转换成n个比特的比特流b1,b2,…,bn,转换过程包括:
采用循环贯序差分方法包括:如果Bi≥Bi+1,则bi=1,否则bi=0,i=1,2,…,n,当i=n时,i+1的值取为1;
采用普通差分方法包括:如果Bi+Bi≥Bi-1+Bi+1,则bi=1,否则bi=0,i=1,2,…,n,当i=1时,i-1的值取为n,当i=n时,i+1的值取为1。
3.如权利要求2所述的一种计算文件相似哈希的方法,其特征在于,得到的比特流为b1,b2,…,bn,如果比特流中比特数目n的值不是8的倍数,则在bn后面添加若干个值为0的比特,使得比特流的比特数目n为8的倍数,每连续8个比特组装成一个字节,将比特流顺序组成新的字节流B’1,B’2,…,B’m,其中,m=n÷8,B’i=bi*8bi*8+1bi*8+2…bi*8+7,i=1,2,…,m。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010575989.4A CN111782591B (zh) | 2020-06-22 | 2020-06-22 | 一种计算文件相似哈希的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010575989.4A CN111782591B (zh) | 2020-06-22 | 2020-06-22 | 一种计算文件相似哈希的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782591A CN111782591A (zh) | 2020-10-16 |
CN111782591B true CN111782591B (zh) | 2023-05-16 |
Family
ID=72756136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010575989.4A Active CN111782591B (zh) | 2020-06-22 | 2020-06-22 | 一种计算文件相似哈希的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782591B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832520A (en) * | 1996-07-03 | 1998-11-03 | Miller, Call, Plauck And Miller | Automatic file differencing and updating system |
CN105868305A (zh) * | 2016-03-25 | 2016-08-17 | 西安电子科技大学 | 一种支持模糊匹配的云存储数据去重复方法 |
CN108595975A (zh) * | 2018-05-07 | 2018-09-28 | 南京信息工程大学 | 一种基于近重复图像检索的无载体信息隐藏方法 |
CN110414528A (zh) * | 2019-06-18 | 2019-11-05 | 北京计算机技术及应用研究所 | 一种计算图像感知哈希的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925467B2 (en) * | 2002-05-13 | 2005-08-02 | Innopath Software, Inc. | Byte-level file differencing and updating algorithms |
US8527482B2 (en) * | 2008-06-06 | 2013-09-03 | Chrysalis Storage, Llc | Method for reducing redundancy between two or more datasets |
-
2020
- 2020-06-22 CN CN202010575989.4A patent/CN111782591B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832520A (en) * | 1996-07-03 | 1998-11-03 | Miller, Call, Plauck And Miller | Automatic file differencing and updating system |
CN105868305A (zh) * | 2016-03-25 | 2016-08-17 | 西安电子科技大学 | 一种支持模糊匹配的云存储数据去重复方法 |
CN108595975A (zh) * | 2018-05-07 | 2018-09-28 | 南京信息工程大学 | 一种基于近重复图像检索的无载体信息隐藏方法 |
CN110414528A (zh) * | 2019-06-18 | 2019-11-05 | 北京计算机技术及应用研究所 | 一种计算图像感知哈希的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111782591A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2256934B1 (en) | Method and apparatus for content-aware and adaptive deduplication | |
US7733910B2 (en) | Data segmentation using shift-varying predicate function fingerprinting | |
US9823975B2 (en) | Efficient computation of sketches | |
CN105868305B (zh) | 一种支持模糊匹配的云存储数据去重复方法 | |
RU2382511C2 (ru) | Эффективный алгоритм и протокол для удаленного дифференциального сжатия | |
US7478113B1 (en) | Boundaries | |
KR101653692B1 (ko) | 데이터 오브젝트 처리 방법 및 장치 | |
US7562186B2 (en) | Efficient data storage using resemblance of data segments | |
US7949824B2 (en) | Efficient data storage using two level delta resemblance | |
US10416915B2 (en) | Assisting data deduplication through in-memory computation | |
US20240022648A1 (en) | Systems and methods for data deduplication by generating similarity metrics using sketch computation | |
WO2017096532A1 (zh) | 一种数据保存方法和装置 | |
WO2012159532A1 (zh) | 数据处理方法及装置 | |
CN103152606B (zh) | 视频文件处理方法及装置、系统 | |
CN101800761A (zh) | 一种基于网络字典的无损数据压缩方法 | |
CN111782591B (zh) | 一种计算文件相似哈希的方法 | |
Talasila et al. | Generalized deduplication: Lossless compression by clustering similar data | |
US11343272B2 (en) | Proof of work based on compressed video | |
WO2022120626A1 (zh) | 基于dna的数据存储方法、数据恢复方法、装置及终端设备 | |
US11347424B1 (en) | Offset segmentation for improved inline data deduplication | |
US10877945B1 (en) | Optimized block storage for change block tracking systems | |
CN117097717B (zh) | 一种用于仿真结果的文件传输优化方法、系统和电子设备 | |
CN110968575B (zh) | 一种大数据处理系统的去重方法 | |
CN116150117A (zh) | 一种资源库文件增量同步方法、装置及存储介质 | |
CN114625316A (zh) | 应用在重复数据删除的基于内容分块方法、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |