專(zhuān)利名稱(chēng):構(gòu)建數(shù)據(jù)指紋的方法、裝置及電子設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及一種構(gòu)建數(shù)據(jù)指紋的方法、裝置及電子設(shè)備。
背景技術(shù):
數(shù)據(jù)指紋(fingerprint)是根據(jù)目標(biāo)數(shù)據(jù)所生成的獨(dú)一無(wú)二的定長(zhǎng)數(shù)字片段, 所以數(shù)據(jù)指紋技術(shù)應(yīng)當(dāng)具有確認(rèn)原始目標(biāo)數(shù)據(jù)內(nèi)容獨(dú)一無(wú)二的特性,即唯一的目標(biāo)數(shù)據(jù) 具有唯一的數(shù)據(jù)指紋,目標(biāo)數(shù)據(jù)一旦發(fā)生改變,其數(shù)據(jù)指紋必然發(fā)生改變。數(shù)據(jù)指紋在實(shí) 際使用中應(yīng)該能完全代表目標(biāo)數(shù)據(jù)進(jìn)行相同性比較等操作。例如內(nèi)容尋址CAS(Content Addressable Storage)存儲(chǔ)系統(tǒng)的內(nèi)容尋址方式會(huì)根據(jù)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)指紋生成其唯 一的“內(nèi)容地址”以存取數(shù)據(jù);在單實(shí)例(Single-Instance)存儲(chǔ)系統(tǒng)中,系統(tǒng)根據(jù)存 儲(chǔ)數(shù)據(jù)的數(shù)據(jù)指紋判斷此數(shù)據(jù)是否已經(jīng)存在于存儲(chǔ)系統(tǒng)內(nèi);而在數(shù)據(jù)去重技術(shù)(Data De-duplication)中,系統(tǒng)根據(jù)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)指紋判斷該存儲(chǔ)數(shù)據(jù)是否是系統(tǒng)中已經(jīng)存 在的重復(fù)數(shù)據(jù)。由此可以看出,在上述應(yīng)用中數(shù)據(jù)指紋完全代表了存儲(chǔ)數(shù)據(jù)本身在系統(tǒng)中 進(jìn)行比較操作。如果數(shù)據(jù)指紋不能唯一的代表存儲(chǔ)數(shù)據(jù),即當(dāng)兩個(gè)“內(nèi)容不同”的存儲(chǔ)數(shù)據(jù) 具有相同數(shù)據(jù)指紋時(shí),那么在存儲(chǔ)系統(tǒng)中會(huì)引發(fā)災(zāi)難性后果。所以如何根據(jù)目標(biāo)數(shù)據(jù)構(gòu)建 唯一的、可靠的數(shù)據(jù)指紋的方法顯得非常關(guān)鍵。而發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)中存在的問(wèn)題在于目前根據(jù)目 標(biāo)數(shù)據(jù)構(gòu)建唯一的、可靠的數(shù)據(jù)指紋的方法大多比較復(fù)雜,構(gòu)建時(shí)需要進(jìn)行大量的運(yùn)算,系 統(tǒng)的工作負(fù)擔(dān)太大。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種構(gòu)建數(shù)據(jù)指紋的方法、裝置及電子設(shè)備,使得 通過(guò)本發(fā)明實(shí)施例提供的方法、裝置及電子設(shè)備,可以降低構(gòu)建數(shù)據(jù)指紋的運(yùn)算量,提高數(shù) 據(jù)指紋的可靠性。本發(fā)明實(shí)施例提供一種構(gòu)建數(shù)據(jù)指紋的方法,所述方法包括根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo)數(shù)據(jù)的第一摘要值;截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段,根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn) 算,獲取所述數(shù)據(jù)片段的第二摘要值;根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。本發(fā)明實(shí)施例還提供一種構(gòu)建數(shù)據(jù)指紋的裝置,所述裝置包括第一獲取單元,用于根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo) 數(shù)據(jù)的第一摘要值;數(shù)據(jù)截取單元,用于截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段;第二獲取單元,根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù) 片段的第二摘要值;數(shù)據(jù)指紋生成單元,根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。本發(fā)明實(shí)施例還提供一種電子設(shè)備,其包括上述構(gòu)建數(shù)據(jù)指紋的裝置。本發(fā)明實(shí)施例的有益效果包括通過(guò)對(duì)目標(biāo)數(shù)據(jù)及所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段 進(jìn)行哈希運(yùn)算,即可獲得有獨(dú)立特征的數(shù)據(jù)參數(shù),即摘要值,再根據(jù)所述摘要值生成數(shù)據(jù)指 紋,這種方案比較簡(jiǎn)單,運(yùn)算量小,獲得的數(shù)據(jù)指紋具有一定的唯一性和可靠性。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用 的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本 領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。圖1為本發(fā)明實(shí)施例一的構(gòu)建數(shù)據(jù)指紋的方法的示意流程圖;圖2為本發(fā)明實(shí)施例二的構(gòu)建數(shù)據(jù)指紋的方法的示意流程圖;圖3為本發(fā)明實(shí)施例三的第一種構(gòu)建數(shù)據(jù)指紋的方法的示意流程圖;圖4為本發(fā)明實(shí)施例三的第二種構(gòu)建數(shù)據(jù)指紋的方法的示意流程圖;圖5為本發(fā)明實(shí)施例三的第三種構(gòu)建數(shù)據(jù)指紋的方法的示意流程圖;圖6為本發(fā)明實(shí)施例四的一種構(gòu)建數(shù)據(jù)指紋的裝置的結(jié)構(gòu)框圖;圖7為本發(fā)明實(shí)施例四的另一種構(gòu)建數(shù)據(jù)指紋的裝置的結(jié)構(gòu)框圖;圖8為本發(fā)明實(shí)施例五的電子設(shè)備的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā) 明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施 例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例為一種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的技術(shù),這種技術(shù)通過(guò)對(duì)目標(biāo)數(shù)據(jù) 以及該數(shù)據(jù)的片段進(jìn)行哈希運(yùn)算獲得摘要值,再根據(jù)所述摘要值生成該目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。在此,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的 限定。實(shí)施例一如圖1所示,圖1為本實(shí)施例的構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法的示意流程圖,該 流程包括如下步驟101、根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo)數(shù)據(jù)的第一摘要 值;102、截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段;103、根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù)片段的第二 摘要值;104、根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。
本發(fā)明實(shí)施例中的第一哈希算法和第二哈希算法可以為相同的哈希算法,也可以 為不同的哈希算法。但不管是用相同的哈希算法還是用不同的哈希算法,所獲得的第一摘 要值和第二摘要值都是不同的。生成的數(shù)據(jù)指紋包括了第一摘要值和第二摘要值,比如所 述數(shù)據(jù)指紋可以是將第一摘要值和第二摘要值首尾相接組合而成的,其中第一摘要值和第 二摘要值可以任意組合前后次序。這樣獲得的數(shù)據(jù)指紋不再單純的依靠于某種哈希算法, 從而保證了所述數(shù)據(jù)指紋的“碰撞約束”強(qiáng)度能夠不低于在本實(shí)施例的方法中所使用的最 脆弱哈希算法正常使用下的設(shè)計(jì)強(qiáng)度,具有較好的可靠性。需要說(shuō)明的是,本發(fā)明實(shí)施例方法可以根據(jù)實(shí)際需要對(duì)各個(gè)步驟順序進(jìn)行調(diào)整。 比如可先依序執(zhí)行步驟102、103,再執(zhí)行步驟101,最后執(zhí)行步驟104,這樣仍然可以獲得上 述本實(shí)施例方法中的相同的數(shù)據(jù)指紋,本發(fā)明實(shí)施例并不以此作為限制。
本發(fā)明實(shí)施例與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于,通過(guò)對(duì)目標(biāo)數(shù)據(jù)及所述目標(biāo)數(shù)據(jù)中的 數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,即可獲得有獨(dú)立特征的數(shù)據(jù)參數(shù),即摘要值,再根據(jù)所述摘要值生 成數(shù)據(jù)指紋,通過(guò)這種方法獲得的數(shù)據(jù)指紋不僅簡(jiǎn)單實(shí)用,運(yùn)算量小,減小了系統(tǒng)的工作負(fù) 擔(dān),而且唯一性、可靠性都非常高。實(shí)施例二如圖2所示,圖2為本實(shí)施例的構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法的示意流程圖,該 流程包括如下步驟201、根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo)數(shù)據(jù)的第一摘要 值;202、截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段;203、判斷所述數(shù)據(jù)片段的長(zhǎng)度是否至少為128字節(jié);若所述數(shù)據(jù)片段的長(zhǎng)度至少 為128字節(jié),則執(zhí)行步驟204 ;若所述數(shù)據(jù)片段的長(zhǎng)度小于128字節(jié),則執(zhí)行步驟202。204、根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù)片段的第二 摘要值;205、根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。本發(fā)明實(shí)施例中,在截取了所述目標(biāo)數(shù)據(jù)片段后,還要判斷所述截取的數(shù)據(jù)片段 長(zhǎng)度是否至少為128個(gè)字節(jié),若所述數(shù)據(jù)片段的長(zhǎng)度至少為128字節(jié),則執(zhí)行步驟204 ;若 所述數(shù)據(jù)片段的長(zhǎng)度小于128字節(jié),則執(zhí)行步驟202。這么做的目的主要是為了保證生成的 數(shù)據(jù)指紋有足夠的強(qiáng)度,因?yàn)閿?shù)據(jù)指紋的強(qiáng)度與第一摘要值和第二摘要值的長(zhǎng)度有關(guān),而 所述的第一摘要值和第二摘要值的長(zhǎng)度又分別與第一哈希算法強(qiáng)度和第二哈希算法強(qiáng)度 有關(guān),而第一哈希算法是對(duì)目標(biāo)數(shù)據(jù)進(jìn)行的運(yùn)算,由于目標(biāo)數(shù)據(jù)長(zhǎng)度是固定的,所以第一哈 希算法強(qiáng)度主要由第一哈希算法相關(guān)聯(lián);第二哈希算法是對(duì)目標(biāo)數(shù)據(jù)的數(shù)據(jù)片段進(jìn)行的運(yùn) 算,所述數(shù)據(jù)片段的長(zhǎng)度若太小,則通過(guò)第二哈希算法獲得的第二摘要值長(zhǎng)度就小,所以數(shù) 據(jù)指紋的強(qiáng)度就弱。其中,數(shù)據(jù)指紋的強(qiáng)度可以通過(guò)常數(shù)關(guān)系來(lái)表示,當(dāng)所述第一哈希算法的算法強(qiáng) 度為2的N次方時(shí),所述第二哈希算法的算法強(qiáng)度為2的M次方時(shí),所述數(shù)據(jù)指紋的長(zhǎng)度即 為第一摘要值與第二摘要值的長(zhǎng)度之和一N+M位,所以,所生成數(shù)據(jù)指紋在正常使用或“碰 撞攻擊”條件下的算法強(qiáng)度范圍就是“2K 2ν+μ”,其中,常數(shù)K為N與M之間的最小值。當(dāng) 所述數(shù)據(jù)指紋強(qiáng)度為2Κ時(shí),其強(qiáng)度最弱。
上述截取所述目標(biāo)數(shù)據(jù)中的至少128字節(jié)長(zhǎng)度的數(shù)據(jù)片段,具體可以是從所述目 標(biāo)數(shù)據(jù)的頭部截取至少128字節(jié)長(zhǎng)度的數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的尾部截取至少 128字節(jié)長(zhǎng)度的數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間截取至少128字節(jié)長(zhǎng)度 的數(shù)據(jù)片段。本發(fā)明實(shí)施例與實(shí)施例一相比優(yōu)點(diǎn)在于,可以對(duì)截取的數(shù)據(jù)片段的長(zhǎng)度進(jìn)行判 斷,使得截取的數(shù)據(jù)片段長(zhǎng)度滿足一定的要求,保證了最終生成的數(shù)據(jù)指紋的強(qiáng)度最弱也 可以正常使用或抵御“碰撞攻擊”。并且還提供了有效截取數(shù)據(jù)片段方法,進(jìn)一步保證了截 取數(shù)據(jù)片段對(duì)數(shù)據(jù)指紋可靠性的要求。需要說(shuō)明的是,本發(fā)明實(shí)施例方法可以根據(jù)實(shí)際需要對(duì)各個(gè)步驟順序進(jìn)行調(diào)整。 比如可先依序執(zhí)行步驟202、203、204,再執(zhí)行步驟201,最后執(zhí)行步驟205,這樣仍然可以獲 得上述本實(shí)施例方法中的相同的數(shù)據(jù)指紋,本發(fā)明實(shí)施例并不以此作為限制。實(shí)施例三 根據(jù)實(shí)施例一或?qū)嵤├龅姆椒?,在此,分別用三個(gè)獨(dú)立的實(shí)施例來(lái)說(shuō)明本 發(fā)明實(shí)施例的技術(shù)方案。如圖3所示,圖3為本發(fā)明實(shí)施例的第一種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法的示 意流程圖,該流程包括如下步驟301、根據(jù)MD5 (Message-Digest Algorithm 5,數(shù)據(jù)摘要算法5)哈希算法對(duì)目標(biāo) 數(shù)據(jù)File進(jìn)行哈希運(yùn)算,獲取所述File的摘要值Digest-File ;302、從File頭部截取一個(gè)長(zhǎng)度為128Byte (1024bit)的數(shù)據(jù)片段File-Seg ;303、使用所述MD5哈希算法對(duì)所述數(shù)據(jù)片段File-Seg進(jìn)行哈希運(yùn)算,獲取所述 File-Seg 的摘要值 Digest-Seg ;304、將所述摘要值Digest-File與所述摘要值Digest-Seg首尾相接,生成目標(biāo)數(shù) 據(jù)文件File的數(shù)據(jù)指紋Fingerprint-File。在本發(fā)明實(shí)施例的第一種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法中,第一哈希算法和 第二哈希算法相同,都是MD5哈希算法,這種哈希算法的強(qiáng)度是216,所以Digest-File與 Digest-Seg的長(zhǎng)度都為16位,生成目標(biāo)數(shù)據(jù)文件File的數(shù)據(jù)指紋Fingerprint-File長(zhǎng) 度就等于32位,而所生成數(shù)據(jù)指紋在正常使用或“碰撞攻擊”條件下的算法強(qiáng)度范圍就是 “216 232”,即當(dāng)所述數(shù)據(jù)指紋強(qiáng)度為216時(shí)其強(qiáng)度最弱。如圖4所示,圖4為本發(fā)明實(shí)施例的第二種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法的示 意流程圖,該流程包括如下步驟401、根據(jù)SHA-I (Secure Hash Algorithm安全哈希算法)哈希算法對(duì)目標(biāo)數(shù)據(jù) File進(jìn)行一次哈希運(yùn)算,獲取所述File的摘要值Digest-File_SHA_l ;402、從File尾部截取一個(gè)長(zhǎng)度為128Byte (1024bit)的數(shù)據(jù)片段File-Seg ;403、使用MD5哈希算法對(duì)所述數(shù)據(jù)片段File-Seg進(jìn)行一次哈希運(yùn)算,獲取所述 File-Seg 的摘要值 Digest_Seg_MD5 ;404、將所述摘要值Digest-File_SHA_l與所述摘要值Digest_Seg_MD5首尾相接, 生成目標(biāo)數(shù)據(jù)文件File的數(shù)據(jù)指紋Fingerprint-File。在本發(fā)明實(shí)施例的第二種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法中,第一哈希算法和第 二哈希算法不同,第一哈希算法為SHA-I哈希算法,這種哈希算法的強(qiáng)度是22°,而第二哈希算法為MD5哈希算法,這種哈希算法的強(qiáng)度是216,所以Digest-File_SHA-l的長(zhǎng)度為20位, Digest-Seg_MD5的長(zhǎng)度為16位,生成目標(biāo)數(shù)據(jù)文件File的數(shù)據(jù)指紋Fingerprint-File長(zhǎng) 度就等于36位,而所生成數(shù)據(jù)指紋在正常使用或“碰撞攻擊”條件下的算法強(qiáng)度范圍就是 “216 236”,即當(dāng)所述數(shù)據(jù)指紋強(qiáng)度為216時(shí)其強(qiáng)度最弱。如圖5所示,圖5為本發(fā)明實(shí)施例的第三種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法的示 意流程圖,該流程包括如下步驟501、根據(jù)MD5哈希算法對(duì)目標(biāo)數(shù)據(jù)File進(jìn)行哈希運(yùn)算,獲取所述File的摘要值 Digest-File ;502、從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間截取128字節(jié)長(zhǎng)度的數(shù)據(jù)片段File-Seg ;503、判斷所述數(shù)據(jù)片段File-Seg的長(zhǎng)度是否為128字節(jié);若所述數(shù)據(jù)片段的長(zhǎng)度 為128字節(jié),則執(zhí)行步驟504 ;若所述數(shù)據(jù)片段的長(zhǎng)度小于128字節(jié),則執(zhí)行步驟502。504、使用所述MD5哈希算法對(duì)所述數(shù)據(jù)片段File-Seg進(jìn)行哈希運(yùn)算,獲取所述 File-Seg 的摘要值 Digest-Seg ;505、將所述摘要值Digest-File與所述摘要值Digest-Seg首尾相接,生成目標(biāo)數(shù) 據(jù)文件File的數(shù)據(jù)指紋Fingerprint-File。在本發(fā)明實(shí)施例的第三種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法中,第一哈希算法和第 二哈希算法相同,都是MD5哈希算法,這種哈希算法的強(qiáng)度是216;但本方法中截取數(shù)據(jù)片段 是從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間來(lái)截取的,具體從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間截 取的方法可以為根據(jù)目標(biāo)數(shù)據(jù)File中16字節(jié)的數(shù)據(jù)長(zhǎng)度除以128取整得到P,再將P與 16相除取余得到Q,將Q乘以128即獲得所抽取文件片斷的偏移量Q*128字節(jié),從File文 件的Q*128字節(jié)的偏移量處讀取128字節(jié)的File-Seg ;判斷所述數(shù)據(jù)片段File-Seg的長(zhǎng) 度是否為128字節(jié);若讀取的所述數(shù)據(jù)片段的長(zhǎng)度為128字節(jié),則執(zhí)行步驟504 ;若所述數(shù) 據(jù)片段File-Seg的原始數(shù)據(jù)長(zhǎng)度小于128字節(jié),則返回502重復(fù)讀取的所述數(shù)據(jù)片段直到 滿足128字節(jié)的長(zhǎng)度要求。最后生成目標(biāo)數(shù)據(jù)文件File的數(shù)據(jù)指紋Fingerprint-File長(zhǎng) 度就等于32位,而所生成數(shù)據(jù)指紋在正常使用或“碰撞攻擊”條件下的算法強(qiáng)度范圍就是 “216 232”,即當(dāng)所述數(shù)據(jù)指紋強(qiáng)度為216時(shí)其強(qiáng)度最弱。需要說(shuō)明的是,與實(shí)施例一和實(shí)施例二類(lèi)似,本發(fā)明實(shí)施例方法也可以根據(jù)實(shí)際 需要對(duì)各個(gè)步驟順序進(jìn)行調(diào)整。這樣仍然可以獲得本實(shí)施例各方法中相同的數(shù)據(jù)指紋,本 發(fā)明實(shí)施例并不以此作為限制。由上述三種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的方法可以看出,不管第一哈希算法和第二 哈希算法相同還是不同,不管截取數(shù)據(jù)片段是從目標(biāo)數(shù)據(jù)的頭部、尾部還是通過(guò)特定算法 截取,本發(fā)明實(shí)施例都不需要經(jīng)過(guò)大量運(yùn)算即可獲得可靠性較高的數(shù)據(jù)指紋,減小了系統(tǒng) 的工作負(fù)擔(dān),簡(jiǎn)單實(shí)用,并保證了最終生成的數(shù)據(jù)指紋的強(qiáng)度最弱也可以正常使用或抵御 “碰撞攻擊”。實(shí)施例四本發(fā)明實(shí)施例 還提供一種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的裝置,如圖6所示,圖6為本 發(fā)明實(shí)施例的一種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的裝置的結(jié)構(gòu)框圖,該裝置包括第一獲取單 元601、數(shù)據(jù)截取單元602、第二獲取單元603、數(shù)據(jù)指紋生成單元604,還可以包括判斷模塊 621,其中
第一獲取單元601,主要用于根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所 述目標(biāo)數(shù)據(jù)的第一摘要值;數(shù)據(jù)截取單元602,主要用于截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段;比如從所述目標(biāo) 數(shù)據(jù)的頭部截取至少128字節(jié)長(zhǎng)度的數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的尾部截取至少128 字節(jié)長(zhǎng)度的數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間截取至少128字節(jié)長(zhǎng)度的數(shù) 據(jù)片段。第二獲取單元603,主要用于根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù)片段的第二摘要值;數(shù)據(jù)指紋生成單元604,主要用于根據(jù)所述第一摘要值和所述第二摘要值,生成所 述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。其中,所述數(shù)據(jù)截取單元602可以包括判斷模塊621,主要用于判斷所述數(shù)據(jù)片 段的長(zhǎng)度是否至少為128字節(jié),并生成判斷結(jié)果;當(dāng)判斷結(jié)果為是時(shí),則所述數(shù)據(jù)截取單元 602將截取到的所述至少為128字節(jié)的數(shù)據(jù)片段發(fā)送至第二獲取單元603 ;當(dāng)判斷結(jié)果為否 時(shí),則不發(fā)送截取到的數(shù)據(jù)片段,并重新截取數(shù)據(jù)片段。當(dāng)上述第一哈希算法與所第二哈希算法為同一算法時(shí),所述第二獲取單元603為 所述第一獲取單元601,所以所述第一獲取單元601還可以用于根據(jù)第二哈希算法對(duì)所述 數(shù)據(jù)片段進(jìn)行哈希運(yùn)算(如圖7所示),獲取所述數(shù)據(jù)片段的第二摘要值。如圖7所示,圖 7為本發(fā)明實(shí)施例的另一種構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的裝置的結(jié)構(gòu)框圖。所以根據(jù)本發(fā)明實(shí)施例的裝置,當(dāng)所述第一哈希算法的算法強(qiáng)度為2的N次方時(shí), 所述第二哈希算法的算法強(qiáng)度為2的M次方時(shí),所述數(shù)據(jù)指紋的長(zhǎng)度為N+M位。不管第一 哈希算法和第二哈希算法相同還是不同,不管截取數(shù)據(jù)片段是從目標(biāo)數(shù)據(jù)的頭部、尾部還 是通過(guò)特定算法截取,本發(fā)明實(shí)施例都不需要經(jīng)過(guò)大量運(yùn)算即可獲得可靠性較高的數(shù)據(jù)指 紋,減小了系統(tǒng)的工作負(fù)擔(dān),簡(jiǎn)單實(shí)用,并保證了最終生成的數(shù)據(jù)指紋的強(qiáng)度最弱也可以正 常使用或抵御“碰撞攻擊”。需要說(shuō)明的是,本發(fā)明實(shí)施例的裝置可以集成電路或芯片中,包括CPU、或DSP(數(shù) 字信號(hào)處理,Digital Signal Processing)、或通信芯片等,也可以是軟件模塊,也可以是 軟件和硬件的結(jié)合體。本發(fā)明實(shí)施例的各個(gè)單元可以集成于一體,也可以分離部署。上述 單元可以合并為一個(gè)單元,也可以進(jìn)一步拆分成多個(gè)子單元。實(shí)施例五本發(fā)明實(shí)施例還提供一種電子設(shè)備,如圖8所示,該電子設(shè)備包括應(yīng)用數(shù)據(jù)指紋 的裝置81和上述實(shí)施例提供的構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的裝置82,其中構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的裝置82,用于根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希 運(yùn)算,獲取所述目標(biāo)數(shù)據(jù)的第一摘要值,截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段,根據(jù)第二哈希算 法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù)片段的第二摘要值,根據(jù)所述第一摘要值 和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。該構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的裝置82 的技術(shù)方案可以結(jié)合參考實(shí)施例一至實(shí)施例四提供的技術(shù)方案,在此不作贅述。應(yīng)用數(shù)據(jù)指紋的裝置81可以用于根據(jù)數(shù)據(jù)指紋判斷該存儲(chǔ)數(shù)據(jù)是否是系統(tǒng)中 已經(jīng)存在的重復(fù)數(shù)據(jù)或者根據(jù)數(shù)據(jù)指紋判斷對(duì)應(yīng)的目標(biāo)數(shù)據(jù)是否已經(jīng)存在等。本發(fā)明實(shí)施例電子設(shè)備的類(lèi)型可以是路由器、交換機(jī)、基站、基站控制器、數(shù)字用戶(hù)線路接入復(fù)用器(DSLAM)、歸屬位置寄存器(Home Location Register, HLR)、手機(jī)、個(gè)人 數(shù)碼助理(Personal Digital Assistant,PDA)、計(jì)算機(jī)、服務(wù)器、機(jī)頂盒、家用電器、以及各 種電子設(shè)備、網(wǎng)絡(luò)設(shè)備或計(jì)算機(jī)相關(guān)設(shè)備等。本發(fā)明實(shí)施例的有益效果在于,本發(fā)明實(shí)施例提供構(gòu)建目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋的技 術(shù)不僅簡(jiǎn)單實(shí)用,運(yùn)算量小,減小了系統(tǒng)的工作負(fù)擔(dān),而且生成的數(shù)據(jù)指紋唯一性、可靠性 都非常高,保證了最終生成的數(shù)據(jù)指紋的最弱強(qiáng)度也可以正常使用或抵御“碰撞攻擊”,大 大提高了數(shù)據(jù)的安全性。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,或者二者的結(jié)合來(lái)實(shí)施。 基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件 產(chǎn)品的形式體現(xiàn)出來(lái),該軟件模塊或計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若 干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā) 明各個(gè)實(shí)施例所述的方法。存儲(chǔ)介質(zhì)可以是隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電 可編程ROM、電可擦除可編程ROM、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知 的任意其它形式的存儲(chǔ)介質(zhì)。以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳 細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保 護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本 發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種構(gòu)建數(shù)據(jù)指紋的方法,其特征在于,所述方法包括,根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo)數(shù)據(jù)的第一摘要值;截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段,根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù)片段的第二摘要值;根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。
2.根據(jù)權(quán)利要求1所述的構(gòu)建數(shù)據(jù)指紋的方法,其特征在于,所述第一哈希算法與所 述第二哈希算法相同或不同。
3.根據(jù)權(quán)利要求1或2所述的構(gòu)建數(shù)據(jù)指紋的方法,其特征在于,所述截取所述目標(biāo)數(shù) 據(jù)中的數(shù)據(jù)片段包括從所述目標(biāo)數(shù)據(jù)的頭部截取數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的尾部截取數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間截取數(shù)據(jù)片段。
4.根據(jù)權(quán)利要求3所述的構(gòu)建數(shù)據(jù)指紋的方法,其特征在于,在截取所述目標(biāo)數(shù)據(jù)中 的數(shù)據(jù)片段之后,還包括判斷所述數(shù)據(jù)片段的長(zhǎng)度是否至少為128字節(jié);若所述數(shù)據(jù)片段的長(zhǎng)度至少為128字 節(jié),則執(zhí)行后續(xù)步驟;若所述數(shù)據(jù)片段的長(zhǎng)度小于128字節(jié),則重新截取所述目標(biāo)數(shù)據(jù)中的 數(shù)據(jù)片段。
5.根據(jù)權(quán)利要求1或4所述的構(gòu)建數(shù)據(jù)指紋的方法,其特征在于,當(dāng)所述第一哈希算法 的算法強(qiáng)度為2的N次方時(shí),所述第二哈希算法的算法強(qiáng)度為2的M次方時(shí),所述數(shù)據(jù)指紋 的長(zhǎng)度為N+M位。
6.一種構(gòu)建數(shù)據(jù)指紋的裝置,其特征在于,所述裝置包括第一獲取單元,用于根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo)數(shù)據(jù) 的第一摘要值;數(shù)據(jù)截取單元,用于截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段;第二獲取單元,用于根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù) 片段的第二摘要值;數(shù)據(jù)指紋生成單元,用于根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù) 的數(shù)據(jù)指紋。
7.根據(jù)權(quán)利要求6所述的構(gòu)建數(shù)據(jù)指紋的裝置,其特征在于,當(dāng)所述第一哈希算法與 所述第二哈希算法相同時(shí),所述第二獲取單元與所述第一獲取單元為同一單元。
8.根據(jù)權(quán)利要求6或7所述的構(gòu)建數(shù)據(jù)指紋的裝置,其特征在于,所述數(shù)據(jù)截取單元包括判斷模塊,用于判斷所述數(shù)據(jù)片段的長(zhǎng)度是否至少為128字節(jié),并生成判斷結(jié)果;當(dāng)判 斷結(jié)果為是時(shí),則所述數(shù)據(jù)截取單元將截取到的所述至少為128字節(jié)的數(shù)據(jù)片段發(fā)送至第 二獲取單元;當(dāng)判斷結(jié)果為否時(shí),則不發(fā)送截取到的數(shù)據(jù)片段,重新截取數(shù)據(jù)片段。
9.根據(jù)權(quán)利要求8所述的構(gòu)建數(shù)據(jù)指紋的裝置,其特征在于,所述數(shù)據(jù)截取單元具體 用于從所述目標(biāo)數(shù)據(jù)的頭部截取至少128字節(jié)長(zhǎng)度的數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的尾 部截取至少128字節(jié)長(zhǎng)度的數(shù)據(jù)片段;或者從所述目標(biāo)數(shù)據(jù)的頭部與尾部之間截取至少 128字節(jié)長(zhǎng)度的數(shù)據(jù)片段。
10.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括如權(quán)利要求6 9任一項(xiàng)所述的裝置。
11.根據(jù)權(quán)利要求10的電子設(shè)備,其特征在于,所述電子設(shè)備的類(lèi)型包括路由器、或 交換機(jī)、或網(wǎng)關(guān)、或手機(jī)、或計(jì)算機(jī)、或服務(wù)器。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種構(gòu)建數(shù)據(jù)指紋的方法、裝置及電子設(shè)備,所述方法包括根據(jù)第一哈希算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲取所述目標(biāo)數(shù)據(jù)的第一摘要值;截取所述目標(biāo)數(shù)據(jù)中的數(shù)據(jù)片段,根據(jù)第二哈希算法對(duì)所述數(shù)據(jù)片段進(jìn)行哈希運(yùn)算,獲取所述數(shù)據(jù)片段的第二摘要值;根據(jù)所述第一摘要值和所述第二摘要值,生成所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)指紋。通過(guò)本發(fā)明實(shí)施例,可以降低構(gòu)建數(shù)據(jù)指紋的運(yùn)算量。
文檔編號(hào)G06K9/00GK101882216SQ20091013825
公開(kāi)日2010年11月10日 申請(qǐng)日期2009年5月8日 優(yōu)先權(quán)日2009年5月8日
發(fā)明者劉利鋒, 楊琴琴, 王雨晨 申請(qǐng)人:成都市華為賽門(mén)鐵克科技有限公司