麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

文件的去重處理方法和裝置與流程

文檔序號:12063775閱讀:432來源:國知局
文件的去重處理方法和裝置與流程

本發明涉及數據處理技術,尤其涉及一種文件的去重處理方法和裝置。



背景技術:

為避免相同的文件被重復存儲,占用存儲系統的容量,需要進行文件去重處理。

目前,采用如下方法來判斷第一文件和第二文件是否相同,以在第一文件和第二文件相同時,進行文件去重處理。首先,對第一文件和第二文件分別進行哈希處理,得到第一文件的第一消息摘要和第二文件的第二消息摘要,然后,判斷第一消息摘要與第二消息摘要是否相同。若第一消息摘要與第二消息摘要不相同,則確定第一文件和第二文件不同,不執行去重處理,兩個文件分別進行存儲,若第一消息摘要和第二消息摘要相同,則再判斷第一文件的全文和第二文件的全文是否相同,若第一文件的全文和第二文件的全文相同,則確定第一文件和第二文件相同,執行去重處理,若第一文件的全文和第二文件的全文不相同,則確定第一文件與第二文件不相同,不執行去重處理,兩個文件分別存儲。

采用上述方法來判斷兩個文件是否相同時,由于哈希處理自身的特性,不同文件進過哈希處理后,可能會得到同樣的消息摘要,例如,將兩個不同的文件經過MD5算法處理后,得到的消息摘要碰撞(相同)的概率為1/2128,兩個不同的文件的消息摘要碰撞的概率較高。這樣,一旦兩個不同的文件的消息摘要相同,為判斷兩個文件是否相同,就需要對兩個文件進行全文比對,而這樣因碰撞概率高導致的全文比對往往會增加比對的工作量,導致比對成本增加。



技術實現要素:

本發明提供一種文件的去重處理方法,以解決現有的文件去重方法中,因文件的消息摘要碰撞的概率較高而導致的比對的工作量大、比對的成本高的問題。

本發明第一方面提供一種文件的去重處理方法,包括:

從所述文件中獲取至少兩個數據塊;

根據預設的哈希算法分別計算每個數據塊的消息摘要,并根據所述至少兩個數據塊的消息摘要得到組合消息摘要;

根據所述組合消息摘要進行去重比對操作。

進一步地,所述從所述文件中獲取至少兩個數據塊,具體包括:

按照預設的內存間隔,間隔從所述文件中提取第一元數據塊;

根據預設的組合策略,將所述第一元數據塊組合為所述至少兩個數據塊。

進一步地,所述從所述文件中獲取至少兩個數據塊,具體包括:

按照預設的數據塊大小,順序從所述文件中提取第二元數據塊;

根據預設的組合策略,將所述第二元數據塊組合為所述至少兩個數據塊。

進一步地,所述哈希算法為Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一種。

本發明第二方面提供一種文件的去重處理裝置,包括:獲取模塊,計算模塊和處理模塊,其中,

所述獲取模塊,用于從所述文件中獲取至少兩個數據塊;

所述計算模塊,用于根據預設的哈希算法分別計算每個數據塊的消息摘要,并根據所述至少兩個數據塊的消息摘要得到組合消息摘要;

所述處理模塊,用于根據所述組合消息摘要進行去重比對操作。

進一步地,所述獲取模塊,具體用于按照預設的內存間隔,間隔從所述文件中提取第一元數據塊,并根據預設的組合策略,將所述第一元數據塊組合為所述至少兩個數據塊

進一步地,所述獲取模塊,具體用于根據預設的數據塊按照預設的數據塊大小,順序從所述文件中提取第二元數據塊,并根據預設的組合策略,將所述第二元數據塊組合為所述至少兩個數據塊。

進一步地,所述哈希算法為Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一種。

本發明提供的文件的去重處理方法和裝置,通過從上述文件中獲取至少兩個數據塊,并根據預設的哈希算法分別計算每個數據塊的消息摘要,以及根據上述至少兩個數據塊的消息摘要得到組合消息摘要,進而根據上述組合消息摘要進行去重比對操作。這樣,可降低組合消息摘要碰撞的概率,進而降低進行全文比對的概率,從而避免因全文比對導致的增加比對的工作量、增加比對的成本的問題。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明文件的去重處理方法實施例一的流程圖;

圖2為本發明文件的去重處理方法實施例二的流程圖;

圖3為本發明文件的去重處理方法實施例三的流程圖;

圖4為本發明文件的去重處理裝置實施例一的結構示意圖。

具體實施方式

為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

本發明提供一種文件的去重處理方法,以解決現有的文件去重方法中,因文件的消息摘要碰撞的概率較高而導致的比對的工作量大、比對的成本高的問題。

本發明提供的文件的去重處理方法,可應用于文件數據處理領域,具體的,可應用本發明提供的文件的去重處理方法,來判斷兩個文件是否相同,進而決定是否進行去重處理,以避免相同的文件被重復存儲,進而占用存儲空間的容量。

下面以具體的實施例來對本發明的技術方案進行詳細說明,下面這幾個具體的實施例可以相互結合,對于相同或相應的概念或過程可能在某些實施例中不再贅述。

圖1為本發明文件的去重處理方法實施例一的流程圖。本發明實施例的執行主體可以是單獨的文件的去重處理裝置,還可以是集成了文件的去重處理裝置的硬件設備,例如計算機。本發明實施例以執行主體為單獨的文件的去重處理裝置為例來進行說明。本實施例涉及的是計算文件的組合消息摘要,并根據組合消息摘要進行去重比對操作的具體過程。如圖1所示,本實施例提供的文件的去重處理方法,可以包括如下步驟:

S101、從上述文件中獲取至少兩個數據塊。

具體地,本實施例中,文件的類型可以為壓縮文件類、音視頻文件類,圖像文件類、可執行文件類、文檔類和數據文件類等。例如,壓縮文件類可以是arc壓縮文件、cab壓縮文件、ddi壓縮文件等;音視頻文件類可以為avi音視頻文件、cmf音視頻文件、fli音視頻文件、ins音視頻文件、mp3音視頻文件、mov音視頻文件等;圖像文件類可以是bmp圖像文件、bgi圖像文件、cad圖像文件、cd圖像文件、ico圖像文件、jpg圖像文件、lbm圖像文件、caj圖像文件等。文檔類文件可以為doc文件、fmt文件、fnt文件、mbd文件、wps文件、xls文件等;可執行文件類可以為com文件、dll文件、drv文件、exe文件、fox文件、fxp文件等;數據文件類可以為dat文件、dbf文件、idx文件、img文件、mem文件等。

此外,可以采用如下方法從上述文件中獲取至少兩個數據塊。例如,在一種可能的實現方式中,可以將文件分為內存大小相等的至少兩部分,得到至少兩個數據塊。再例如,在另一種可能的實現方式中,可以從文件中的任意位置任意獲取至少兩個數據塊。在該種實現方式中,例如,假設將文件分為內存大小相等的三部分,這三部分按照在文件中的先后順序依次記為第一部分、第二部分和第三部分,可以從文件的第一部分中的任意位置獲取一個任意內存大小的數據塊,再從文件的第三部分中的任意位置再獲取一個任意內存大小的數據塊,得到兩個數據塊。還可以從文件中的第二部分中直接獲得至少兩個數據塊。

需要說明的是,上面所介紹的幾種獲取數據塊的方式僅僅是幾種可能的實現方式,本實施例不對數據塊的具體獲取方式作出限制。此外,本實施例中,也不對數據塊的內存大小作出限定。

S102、根據預設的哈希算法分別計算每個數據塊的消息摘要,并根據上述至少兩個數據塊的消息摘要得到組合消息摘要。

具體地,哈希算法可以為Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一種。本實施例中,以采用MD5算法計算每個數據塊的消息摘要為例來進行說明。例如,在步驟S101中,若獲取了兩個數據塊:數據塊A和數據塊B,則在本步驟中,采用MD5算法分別計算數據塊A的消息摘要MD5(A)和數據塊B的消息摘要(B)。

需要說明的是,本步驟中,按照預設的組合順序根據上述至少兩個數據塊的消息摘要得到消息摘要。結合上面的例子,當根據數據塊A的消息摘要MD5(A)和數據塊B的消息摘要MD5(B)得到組合消息摘要時,可以按照如下組合順序得到組合消息摘要。即組合消息摘要=MD5(A)MD5(B),也可以按照以下組合順序得到組合消息摘要,即組合消息摘要=MD5(B)MD5(A)。再例如,當在步驟S101中,從文件中獲取到三個數據塊:數據塊A1、數據塊B1、數據塊C1,且在本步驟中,采用MD5算法計算得到數據塊A1的消息摘要MD5(A1)、數據塊B1的消息摘要MD5(B1)和數據塊C1的消息摘要MD5(C1)。則再根據上述三個消息摘要得到組合消息摘要時,可以按照以下預設的組合順序中的任意一種來得到組合消息摘要,其中,預設的組合順序可以為:組合消息摘要=MD5(A1)MD5(B1)MD5(C1)、組合消息摘要=MD5(A1)MD5(C1)MD5(B1)、組合消息摘要=MD5(B1)MD5(A1)MD5(C1)、組合消息摘要=MD5(B1)MD5(C1)MD5(A1)、組合消息摘要=MD5(C1)MD5(A1)MD5(B1)、組合消息摘要=MD5(C1)MD5(A1)MD5(B1)。

需要說明的是,上面所介紹的幾種預設的組合順序僅僅是幾種可能的實現方式,本實施例不對預設的組合順序進行限定。

S103、根據上述組合消息摘要進行去重比對操作。

具體地,本步驟中,當按照步驟S101和步驟S102得到兩個文件的組合消息摘要后,將這兩個文件的組合消息摘要進行比對,判斷兩個文件的組合消息摘要是否相同,若組合消息摘要不相同,則確定兩個文件不同,若兩個文件的組合消息摘要相同,則對上述兩個文件進行全文比對,以通過全文比對判斷兩個文件是否相同。

本實施例中,在進行文件的去重處理時,通過從文件中獲取至少兩個數據塊,并根據預設的哈希算法分別計算每個數據塊的消息摘要,以及根據上述至少兩個數據塊的消息摘要得到組合消息摘要,進而根據上述組合消息摘要進行去重比對操作。這樣,可降低組合消息摘要碰撞的概率,進而降低進行全文比對的概率,從而避免因全文比對導致的增加比對的工作量,增加比對的成本的問題。

下面以一個具體的例子來解釋說明本實施例提供的文件的去重處理方法能降低組合消息摘要碰撞的概率的具體原理。具體地,本例子以從文件中獲取兩個數據塊,且以預設的哈希算法為MD5算法為例來進行說明。例如,從文件中獲取兩個數據塊:數據塊1和數據塊2,并根據MD5算法計算得到數據塊1的消息摘要MD5(1)和數據塊2的消息摘要MD5(2),并根據這兩個數據塊的消息摘要得到組合消息摘要MD5(1)MD5(2),結合本申請背景技術中記載的內容可知,由于MD5算法自身的特性,兩個文件經過MD5處理后,得到的消息摘要碰撞的概率為1/2128,因此,本實施例中,由于組合消息摘要是根據兩個消息摘要組合得到的,因此,兩個文件的組合消息摘要碰撞的概率為(1/2128)2。綜上,本實施例提供的文件的去重處理的方法,可降低兩個文件的組合消息摘要碰撞的概率。

結合上述例子和上面的分析,當從文件中獲取N個數據塊(其中,N大于等于2),且采用MD5算法來計算每個數據塊的消息摘要時,最后根據上述N個數據塊得到的組合消息摘要發生碰撞的概率為(1/2128)N。與現有技術中的消息摘要發生碰撞的概率相比,該組合消息摘要發生碰撞的概率大大降低。這樣,當將不同的兩個文件通過本實施例提供的文件去重方法進行去重處理時,這兩個文件的組合消息摘要發生碰撞的概率非常小,可避免現有技術中因消息摘要的碰撞的概率高導致的繼續進行全文比對,進而因全文比對導致的增加比對的工作量、增加比對的成本的問題。

本實施例提供的文件的去重處理方法,通過從文件中獲取至少兩個數據塊,并根據預設的哈希算法分別計算每個數據塊的消息摘要,以及根據上述至少兩個數據塊的消息摘要得到組合消息摘要,進而根據上述組合消息摘要進行去重比對操作。這樣,可降低組合消息摘要碰撞的概率,進而降低進行全文比對的概率,從而避免因全文比對導致的增加比對的工作量、增加比對的成本的問題。

圖2為本發明文件的去重處理方法實施例二的流程圖。本實施例涉及的是如何從文件中獲取至少兩個數據塊的過程。在實施例一的基礎上,本實施例提供的文件的去重處理方法,步驟S101具體包括:

S201、按照預設的內存間隔,間隔從上述文件中提取第一元數據塊。

具體地,預設的內存間隔的具體值可以根據需要設定,本實施例不對預設的內存間隔的具體值進行限定。例如,預設的內存間隔可以為500KB。

需要說明的是,第一元數據塊包括多個數據塊,本實施例中,不對數據塊的具體大小進行限定。例如,元數據塊的大小可以為1000KB。結合上面的例子,本步驟中,可以從文件中每間隔500KB獲取一個內存大小為1000KB的元數據塊,得到多個元數據塊,這多個元數據塊構成第一元數據塊。

S202、根據預設的組合策略,將上述第一元數據塊組合為上述至少兩個數據塊。

需要說明的是,本實施例不對預設的組合策略進行限定。例如,可以將上述第一元數據塊按照數據塊的個數等分為至少兩部分,得到至少兩個數據塊。例如,上述第一元數據塊包括9個元數據塊,可以將這9個元數據塊分為三部分(每部分包括三個元數據塊),得到三個數據塊。再例如,假設上述第一元數據塊有5個元數據塊,可以將第一個元數據塊作為一個數據塊,將中間的三個元數據塊組合為第二個數據塊,將最后的一個數據塊作為一個數據塊,得到三個數據塊。

本實施例提供的文件的去重處理方法,按照預設的內存間隔,間隔從上述文件中提取第一元數據塊,并根據預設的組合策略,將上述第一元數據塊組合為至少兩個數據塊,進而根據預設的哈希算法分別計算每個數據塊的消息摘要,并根據上述至少兩個數據塊的消息摘要得到組合消息摘要,從而根據上述組合消息摘要進行去重比對操作。這樣,可降低組合消息摘要碰撞的概率,降低進行全文比對的概率,進而避免因全文比對導致的增加比對的工作量、增加比對的成本的問題。

圖3為本發明文件的去重處理方法實施例三的流程圖。本實施例涉及的是如何從文件中獲取至少兩個數據塊的過程。在實施例一的基礎上,本實施例提供的文件的去重處理方法,步驟S101具體包括:

S301、按照預設的數據塊大小,順序從上述文件中提取第二元數據塊。

具體地,預設的數據塊大小的具體值可以根據需要設定,本實施例不對預設的數據塊大小的具體值進行限定。例如,預設的數據塊大小可以為200KB;再例如,預設的數據塊大小可以為整個文件大小的1/10。

需要說明的是,第二元數據塊包括多個元數據塊。例如,一個文件的大小為10000KB,且預設的數據塊大小為100KB,則按照上述預設的數據塊大小,順序從上述文件中提取第二元數據塊時,可以從上述文件中提取出100個元數據塊。

S302、根據預設的組合策略,將上述第二元數據塊組合為所述至少兩個數據塊。

具體地,本步驟的具體實現方法及實現原理可以參見實施例二中步驟S202的描述,此處不再贅述。例如,結合上述的例子,當獲取到100個元數據塊時,可以將這100個元數據塊中的前50個元數據塊組合為一個數據塊,將這100個元數據塊中的后50個元數據塊組合為一個數據塊,得到兩個數據塊。

本實施例提供的文件的去重處理方法,按照預設的數據塊大小,順序從上述文件中提取第二元數據塊,并根據預設的組合策略,將上述第一元數據塊組合為至少兩個數據塊,進而根據預設的哈希算法分別計算每個數據塊的消息摘要,并根據上述至少兩個數據塊的消息摘要得到組合消息摘要,從而根據所述組合消息摘要進行去重比對操作。這樣,可降低組合消息摘要碰撞的概率,降低進行全文比對的概率,進而避免因全文比對導致的增加比對的工作量、增加比對的成本的問題。

圖4為本發明文件的去重處理裝置實施例一的結構示意圖。該裝置可以通過軟件、硬件或者軟硬結合的方式實現,且該裝置可以是單獨的文件的去重處理裝置,也可以是集成了文件的去重處理裝置的其他設備,例如計算機。如圖4所示,本實施例提供的文件的去重處理裝置,可以包括:獲取模塊100,計算模塊200和處理模塊300,其中,

獲取模塊100,用于從上述文件中獲取至少兩個數據塊;

計算模塊200,用于根據預設的哈希算法分別計算每個數據塊的消息摘要,并根據上述至少兩個數據塊的消息摘要得到組合消息摘要;

處理模塊300,用于并根據上述組合消息摘要進行去重比對操作。

具體地,本實施例提供的裝置,可以用于執行圖1所示的方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。

進一步地,上述哈希算法為Rabin算法、MD5算法、SHA-1算法、SHA-224算法、SHA-256算法、SHA-384算法和SHA算法中的任一種。

在本發明一種可能的實現方式中,獲取模塊100,具體用于按照預設的內存間隔,間隔從上述文件中提取第一元數據塊,并根據預設的組合策略,將上述第一元數據塊組合為上述至少兩個數據塊。

具體地,本實施例提供的裝置,可以用于執行圖2所示的方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。

在本發明另一種可能的實現方式中,獲取模塊100,具體用于根據預設的數據塊按照預設的數據塊大小,順序從上述文件中提取第二元數據塊,并根據預設的組合策略,將上述第二元數據塊組合為上述至少兩個數據塊。

具體地,本實施例提供的裝置,可以用于執行圖3所示的方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。

本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。

最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 土默特右旗| 阳西县| 呼图壁县| 财经| 镶黄旗| 新建县| 绥中县| 七台河市| 南和县| 永修县| 泽库县| 柘城县| 临江市| 尼木县| 焦作市| 吉木乃县| 唐河县| 高雄县| 资阳市| 安远县| 广安市| 潞城市| 古田县| 富源县| 大名县| 东台市| 商河县| 博爱县| 湖口县| 孙吴县| 茌平县| 夹江县| 丹棱县| 永安市| 宜昌市| 巩义市| 广昌县| 界首市| 长乐市| 营口市| 汶川县|