国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      哈希計算處理方法及裝置的制作方法

      文檔序號:6358964閱讀:189來源:國知局
      專利名稱:哈希計算處理方法及裝置的制作方法
      技術領域
      本發(fā)明涉及數(shù)據(jù)處理技術領域,特別涉及一種哈希計算處理方法及裝置。
      背景技術
      哈希表(Hash Table)也叫散列表,它是一種用途很廣且查找效率很高的數(shù)據(jù)表。 通過映射函數(shù)將關鍵字映射成一個值,這個映射函數(shù)叫做哈希函數(shù),該值稱之為哈希值。哈希值通常作為表的位置來訪問記錄,以加快查找的速度。但是,對于不同的關鍵字在執(zhí)行哈希計算時,可能得到同一個哈希值,即關鍵字keyl興Key2,而哈希值H(keyl) = H(Key2), 這種現(xiàn)象稱為哈希沖突。為解決哈希沖突,通常做法是在同一個哈希值下建立哈希桶,每個哈希桶存儲N 個記錄,形成沖突鏈表,在查找時,首先通過哈希函數(shù)H找到給定值K的哈希地址H(K),然后以H(K)為地址讀出其哈希桶內的N個記錄,最后以關鍵字K對讀出的N個記錄進行精確匹配,如果發(fā)現(xiàn)有匹配的記錄,則查找成功,否則查找失敗。但是,這種方法存在的問題是在對報文中的關鍵字進行哈希計算時產(chǎn)生的哈希沖突鏈的長度無法控制,如果哈希沖突鏈的長度太長會導致報文的存儲的效率很低。三態(tài)內容尋址存儲器 CTernary Content Addressable Memory,簡稱 TCAM)是一種專用于進行查找操作的硬件芯片,主要用于快速查找訪問控制列表(Access Control List, ACL)、路由等表項,將沖突表項放入TCAM中,能夠使得哈希沖突鏈的長度可控。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題現(xiàn)有技術中為解決報文的哈希沖突的問題而采用建立哈希桶的方法,無法控制哈希沖突鏈的長度,如果哈希沖突鏈的長度太長會導致報文的存儲的效率很低;而通過TCAM實現(xiàn)哈希處理的方法,雖然能夠控制哈希沖突鏈的長度,但是實現(xiàn)成本較高。

      發(fā)明內容
      本發(fā)明的實施例提供一種哈希計算處理方法及裝置,用于解決現(xiàn)有技術存在著的哈希沖突鏈長度控制成本較高的問題。本發(fā)明實施例采用的技術方案為一種哈希計算處理方法,包括接收報文,提取所述報文中需要進行哈希計算的關鍵字;使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個關鍵字,每個所述第一沖突表項對應的關鍵字通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項;其中,所述主用哈希值與所述備用哈希值不相同,所述備用哈希存儲塊包括至少一個所述第二沖突表項,每個所述第二沖突表項對應一個關鍵字,每個所述第二沖突表項對應的關鍵字通過所述備用哈希函數(shù)計算后得到的所述備用哈希值相同。一種哈希計算處理裝置,包括接收模塊,用于接收報文;關鍵字提取模塊,用于提取所述報文中需要進行哈希計算的關鍵字;主用哈希計算模塊,用于使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;第一判斷模塊,用于判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個關鍵字,每個所述第一沖突表項對應的關鍵字通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;第一沖突表項建立模塊,用于當所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù)時,在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;備用哈希計算模塊,用于當所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù)時,使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;第二沖突表項建立模塊,用于在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項;其中,所述主用哈希值與所述備用哈希值不相同,所述備用哈希存儲塊包括至少一個所述第二沖突表項,每個所述第二沖突表項對應一個關鍵字,每個所述第二沖突表項對應的關鍵字通過所述備用哈希函數(shù)計算后得到的所述備用哈希值相同。本發(fā)明實施例提供的哈希計算處理方法及裝置,通過提取報文中需要進行哈希計算的關鍵字,使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值,判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù),如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項,如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項。本發(fā)明實施例提供的哈希計算處理方法及裝置,在對報文中的關鍵字進行哈希計算處理時,可以用低成本的方式解決現(xiàn)有技術對報文中的關鍵字進行哈希計算時生成的哈希沖突鏈的長度無法控制的問題,從而提高報文的存儲效率。


      為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明實施例一提供的哈希計算處理方法流程圖;圖2為本發(fā)明實施例二提供的哈希計算處理方法流程圖;圖3為本發(fā)明實施例二提供的哈希存儲塊的結構示意圖;圖4為本發(fā)明實施例二提供的第一沖突表項數(shù)小于最大沖突數(shù)時的主用哈希存儲塊的結構示意圖;圖5(a)為本發(fā)明實施例二提供的第一沖突表項數(shù)不小于最大沖突數(shù)時的主用哈希存儲塊的結構示意圖;圖5(b)為本發(fā)明實施例二提供的備用哈希存儲塊的結構示意圖;圖6為本發(fā)明實施例三提供的哈希計算處理方法流程圖;圖7為本發(fā)明實施例四提供的哈希計算處理方法流程圖;圖8為本發(fā)明實施例五提供的哈希計算處理裝置結構示意圖;圖9為本發(fā)明實施例五提供的哈希計算處理裝置工作流程圖;圖10為本發(fā)明實施例五提供的哈希計算處理裝置的硬件電路示意圖;圖11為本發(fā)明實施例五提供的哈希計算處理裝置結構示意圖;圖12為本發(fā)明實施例五提供的哈希計算處理裝置結構示意圖;圖13為本發(fā)明實施例五提供的哈希計算處理裝置結構示意圖。
      具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。為使本發(fā)明技術方案的優(yōu)點更加清楚,下面結合附圖和實施例對本發(fā)明作詳細說明。實施例一本實施例提供一種哈希計算處理方法,如圖1所示,所述方法包括101、接收報文,提取所述報文中需要進行哈希計算的關鍵字;102、使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;103、判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個關鍵字,每個所述第一沖突表項對應的關鍵字通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;104、如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;
      105、如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項;其中,所述主用哈希值與所述備用哈希值不相同,所述備用哈希存儲塊包括至少一個所述第二沖突表項,每個所述第二沖突表項對應一個關鍵字,每個所述第二沖突表項對應的關鍵字通過所述備用哈希函數(shù)計算后得到的所述備用哈希值相同。本發(fā)明實施例提供的哈希計算處理方法,通過提取報文中需要進行哈希計算的關鍵字,使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值,判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù),如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項,如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算, 得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項。本發(fā)明實施例提供的哈希計算處理方法,在對報文中的關鍵字進行哈希計算處理時,可以用低成本的方式解決現(xiàn)有技術對報文中的關鍵字進行哈希計算時生成的哈希沖突鏈的長度無法控制的問題,從而提高報文的存儲效率。實施例二本實施例提供一種哈希計算處理方法,如圖2所示,所述方法包括201、接收報文,提取所述報文中需要進行哈希計算的IP地址;202、使用主用哈希函數(shù)對所述報文的IP地址進行哈希計算,得到與所述報文的 IP地址對應的主用哈希值;203、判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個報文的IP地址,每個所述第一沖突表項對應的報文的IP地址通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;204、如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述報文的IP地址對應的第一沖突表項;其中,所述沖突表項包括是否使用備用哈希函數(shù)進行哈希計算的標記、表項有效標記以及所述報文的IP地址。如圖3所示,圖中的沖突表項中的是否使用備用哈希函數(shù)進行哈希計算的標記B用于標識對所述報文的IP地址使用主用哈希函數(shù)進行哈希計算,還是使用備用哈希函數(shù)進行哈希計算。例如,當B = 0時,表示使用主用哈希函數(shù)對所述報文的 IP地址進行哈希計算,當B = 1時,表示使用備用哈希函數(shù)對所述報文的IP地址進行哈希計算。圖中沖突表項中的表項有效標志D用于標識所述沖突表項是否有效,當D= 1時,表示所述沖突表項有效,當D = 0時,表示所述沖突表項無效。所述哈希存儲塊包括一個是否存在通過備用哈希函數(shù)建立的沖突表項的標志和一個備用哈希函數(shù)類型標志。具體地,如圖3所示,可以在哈希存儲塊中設置一個公共的備用哈希函數(shù)的計數(shù)器C,用于對通過備用哈希函數(shù)建立的第二沖突表項進行計數(shù),當C = 0 時,表示不存在通過備用哈希函數(shù)建立的第二沖突表項,當C = 1時,表示存在一個通過備用哈希函數(shù)建立的第二沖突表項。圖中的哈希存儲塊中的備用哈希函數(shù)類型標志T,表示是否設置了備用哈希函數(shù),當T = 0時,表示沒有設置備用哈希函數(shù)。205、當所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù)時,判斷所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志是否被設置;206、如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志已經(jīng)被設置,根據(jù)所述備用哈希函數(shù)類型標志,選擇與所述備用哈希函數(shù)類型標志對應的哈希函數(shù)作為備用哈希函數(shù);207、如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志沒有被設置,選擇一個哈希函數(shù)作為備用哈希函數(shù),并在所述主用哈希存儲塊中設置所述備用哈希函數(shù)的類型標志;具體地,可以選擇一個比所述主用哈希函數(shù)產(chǎn)生哈希沖突少的哈希函數(shù)作為備用哈希函數(shù);或者,通過使用至少一個哈希函數(shù)對所述報文的IP地址進行哈希計算,得到至少一個與所述報文的IP地址對應的哈希函數(shù)值,選擇一個與所述至少一個哈希函數(shù)值對應的哈希存儲塊中的沖突表項數(shù)小于所述最大沖突數(shù)的哈希函數(shù)作為備用哈希函數(shù)。208、使用所述備用哈希函數(shù)對所述報文的IP地址進行哈希計算,得到與所述報文的IP地址對應的備用哈希值;209、在與所述備用哈希值對應的備用哈希存儲塊中建立與所述報文的IP地址對應的第二沖突表項。具體地,可以將所述主用哈希存儲塊中的公共的備用哈希函數(shù)的計數(shù)器的初始值設為一個預定的數(shù)(例如0),當所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù)時,在所述備用哈希存儲塊中建立與所述報文的IP地址對應的第二沖突表項,并將所述主用哈希存儲塊中的所述公共的備用哈希函數(shù)的計數(shù)器的計數(shù)值加1。如圖4所示,例如預設在哈希存儲塊中產(chǎn)生哈希沖突的最大沖突數(shù)為6,在接收到報文以后,提取所述報文需要進行哈希計算的IP地址,假設所述報文的IP地址為 10. 0. 0. 1,使用主用哈希函數(shù)對所述報文的IP地址10. 0. 0. 1進行哈希計算,得到與所述報文的IP地址10. 0. 0. 1對應的主用哈希值為1,判斷與所述主用哈希值1對應的主用哈希存儲塊中的第一沖突表項數(shù)為0,小于所述最大沖突數(shù)6,在所述主用哈希存儲塊中建立與所述報文的IP地址10.0. 0. 1對應的第一沖突表項。如果又接收到報文11. 0. 0. 1,提取所述報文需要進行哈希計算的IP地址11.0. 0. 1,使用所述主用哈希函數(shù)對所述報文的 IP地址11.0. 0. 1進行哈希計算,得到與所述報文的IP地址11. 0. 0. 1對應的主用哈希值也是1,判斷與所述主用哈希值1對應的主用哈希存儲塊中的第一沖突表項數(shù)為1,小于所述最大沖突數(shù)6,在所述主用哈希存儲塊中建立與所述報文的IP地址11.0. 0. 1對應的第一沖突表項,此時所述主用哈希存儲塊中的第一沖突表項數(shù)為2。類似地,依次接收到報文
      12.0. 0. 1、報文13. 0. 0. 1、報文14. 0. 0. 1、報文15. 0. 0. 1,使用所述主用哈希函數(shù)依次對IP 地址 12. 0. 0. 1,13. 0. 0. 1,14. 0. 0. 1,15. 0. 0. 1 進行哈希計算,得到與 IP 地址 12. 0. 0. 1、
      13.0. 0. 1,14. 0. 0. 1,15. 0. 0. 1對應的主用哈希值都為1,判斷與所述主用哈希值1對應的主用哈希存儲塊中的第一沖突表項數(shù)分別為2,3,4,5,都小于所述最大沖突數(shù)6,在所述主用哈希存儲塊中建立與IP地址12. 0. 0. 1,13. 0. 0. 1,14. 0. 0. 1,15. 0. 0. 1對應的第一沖突表項,此時所述主用哈希存儲塊中的第一沖突表項數(shù)為6。
      如圖5所示(a)所示,假如這時接收到IP地址為16. 0. 0. 1的報文,使用所述主用哈希函數(shù)對所述報文的IP地址16. 0. 0. 1進行哈希計算,得到與所述報文的IP地址 16. 0. 0. 1對應的主用哈希值也為1,判斷與所述主用哈希值1對應的主用哈希存儲塊中的第一沖突表項數(shù)為6,不小于所述最大沖突數(shù)6,判斷所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志T是否被設置,如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志 T = 1,表示所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志已經(jīng)被設置,根據(jù)所述備用哈希函數(shù)類型標志,選擇與所述備用哈希函數(shù)類型標志對應的哈希函數(shù)作為備用哈希函數(shù);如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志T = 0,表示所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志沒有被設置,選擇一個比所述主用哈希函數(shù)產(chǎn)生哈希沖突少的哈希函數(shù)作為備用哈希函數(shù),或者通過使用至少一個哈希函數(shù)對所述報文的IP 地址進行哈希計算,得到至少一個與所述報文的IP地址對應的哈希函數(shù)值,選擇一個與所述至少一個哈希函數(shù)值對應的哈希存儲塊中的沖突表項數(shù)小于所述最大沖突數(shù)的哈希函數(shù)作為備用哈希函數(shù),使用所述備用哈希函數(shù)對所述報文的IP地址16. 0. 0. 1進行哈希計算,得到與所述報文的IP地址16. 0. 0. 1對應的備用哈希值為16,并在所述主用哈希存儲塊中設置所述備用哈希函數(shù)類型標志。如圖5(b)所示,在與所述備用哈希值16對應的備用哈希存儲塊中建立與所述報文的IP地址16. 0. 0. 1對應的第二沖突表項,并將所述主用哈希存儲塊中的備用哈希函數(shù)的計數(shù)器的計數(shù)值加1。本發(fā)明實施例提供的哈希計算處理方法,通過在主用哈希存儲塊中設置一個是否存在通過備用哈希函數(shù)建立的沖突表項的標志和一個備用哈希函數(shù)類型標志,當主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù)時,判斷所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志是否被設置,如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志已經(jīng)被設置,根據(jù)所述備用哈希函數(shù)類型標志,選擇與所述備用哈希函數(shù)類型標志對應的哈希函數(shù)作為備用哈希函數(shù),使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項。本發(fā)明實施例提供的哈希計算處理方法,在對報文中的關鍵字進行哈希計算處理時,可以用低成本的方式解決現(xiàn)有技術對報文中的關鍵字進行哈希計算時生成的哈希沖突鏈的長度無法控制的問題,從而提高報文的存儲效率。實施例三本實施例提供一種哈希計算處理方法,如圖6所示,所述方法包括601、使用主用哈希函數(shù)對報文的關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;602、在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項,判斷在所述主用哈希存儲塊中是否查到與所述關鍵字對應的所述第一沖突表項;603、如果在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項, 返回查找結果;604、如果在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;605、根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項;606、如果不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,返回沒有查到;607、如果存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項, 使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;608、在與所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的所述第二沖突表項,判斷在與所述備用哈希值對應的備用哈希存儲塊中是否查到與所述關鍵字對應的所述第二沖突表項;609、如果在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項, 返回查找結果,如果在所述備用哈希存儲塊中沒有查到與所述關鍵字對應的所述第二沖突表項,則返回沒有查到。本發(fā)明實施例提供的哈希計算處理方法,如果在主用哈希存儲塊中沒有查到與關鍵字對應的第一沖突表項,使用所述主用哈希存儲塊中的備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的第二沖突表項,返回查找結果。和現(xiàn)有技術相比,本發(fā)明實施例提供的哈希計算處理方法,當在主用哈希存儲塊中沒有找到與所述關鍵字對應的第一沖突表項時,則在備用哈希存儲塊中查找與所述關鍵字對應的第二沖突表項,可以縮短報文的查找時間,從而提高報文的查找效率。實施例四本實施例提供一種哈希計算處理方法,如圖7所示,所述方法包括701、在主用哈希存儲塊中查找與報文的關鍵字對應的第一沖突表項;702、判斷是否在所述主用哈希存儲塊中查到與所述關鍵字對應的第一沖突表項;703、如果在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項, 刪除所述與所述關鍵字對應的所述第一沖突表項;704、如果在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的第一沖突表項, 獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;705、根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項;具體地,可以通過所述主用哈希存儲塊中的公共的備用哈希函數(shù)的計數(shù)器判斷是否存在通過備用哈希函數(shù)建立的第二沖突表項,如果所述主用哈希存儲塊中的備用哈希函數(shù)的計數(shù)器的計數(shù)值不為0,則存在通過備用哈希函數(shù)建立的沖突表項,如果所述主用哈希存儲塊中的備用哈希函數(shù)的計數(shù)器的計數(shù)值為0,則不存在通過備用哈希函數(shù)建立的沖突表項。706、如果不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,返回沒有查到;707、如果存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項, 使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;708、在所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的第二的沖突表項;709、判斷在所述備用哈希值對應的備用哈希存儲塊中是否查找與所述關鍵字對應的第二的沖突表項;710、如果在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項, 刪除所述與所述關鍵字對應的所述第二沖突表項,如果在所述備用哈希值對應的備用哈希存儲塊中沒有查到與所述關鍵字對應的第二的沖突表項,則返回沒有查到。具體地,在所述備用哈希存儲塊中刪除與所述關鍵字對應的第二沖突表項之后, 將所述主用哈希存儲塊中的備用哈希函數(shù)的計數(shù)器的計數(shù)值減1。本發(fā)明實施例提供的哈希計算處理方法,如果在主用哈希存儲塊中查到與報文的關鍵字對應的第一沖突表項,在所述主用哈希存儲塊中刪除所述與所述關鍵字對應的第一沖突表項,如果在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的第一沖突表項,在備用哈希存儲塊中查找與所述關鍵字對應的第二沖突表項,如果查到,則在所述備用哈希存儲塊中刪除與所述關鍵字對應的第二沖突表項。和現(xiàn)有技術相比,本發(fā)明實施例提供的哈希計算處理方法,可以用低成本的方式解決現(xiàn)有技術對報文中的關鍵字進行哈希計算時生成的哈希沖突鏈的長度無法控制的問題,從而提高報文的存儲效率。實施例五本實施例提供一種哈希計算處理裝置,如圖8所示,所述裝置包括接收模塊801,用于接收報文;關鍵字提取模塊802,用于提取所述報文中需要進行哈希計算的關鍵字;主用哈希計算模塊803,用于使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;第一判斷模塊804,用于判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個關鍵字,每個所述第一沖突表項對應的關鍵字通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;第一沖突表項建立模塊805,用于當所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù)時,在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;備用哈希計算模塊806,用于當所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù)時,使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;第二沖突表項建立模塊807,用于在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項;其中,所述主用哈希值與所述備用哈希值不相同, 所述備用哈希存儲塊包括至少一個所述第二沖突表項,每個所述第二沖突表項對應一個關鍵字,每個所述第二沖突表項對應的關鍵字通過所述備用哈希函數(shù)計算后得到的所述備用哈希值相同。如圖9所示,通過所述接收模塊接收到報文以后,通過所述關鍵字提取模塊提取所述報文中需要進行哈希計算的關鍵字,通過主用哈希計算模塊使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值,通過所述第一判斷模塊判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù),如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),通過所述第一沖突表項建立模塊在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),通過所述備用哈希計算模塊使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值, 通過第二沖突表項建立模塊在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項。具體地,如圖10所示,所述接收模塊在接收到報文以后,所述關鍵字提取模塊通過處理器(如CPU)提取所述報文中需要進行哈希計算的關鍵字,所述主用哈希計算模塊通過所述處理器使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值,并將所述主用哈希值發(fā)送到存儲器進行存儲。所述第一判斷模塊通過所述處理器判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于在所述存儲器中預設的最大沖突數(shù),如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),所述第一沖突表項建立模塊通過所述處理器在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項,并通過接口單元將哈希計算處理結果發(fā)送到其他設備;如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),所述備用哈希計算模塊通過所述處理器使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,所述第二沖突表項建立模塊通過所述處理器在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項,并通過接口單元將哈希計算處理結果發(fā)送到其他設備。進一步的,所述沖突表項包括是否使用備用哈希函數(shù)進行哈希計算的標記、表項有效標記以及所述關鍵字。進一步的,所述哈希存儲塊包括一個是否存在通過備用哈希函數(shù)建立的沖突表項的標志和一個備用哈希函數(shù)類型標志。進一步的,如圖11所示,所述主用哈希計算模塊803包括判斷單元8031,用于判斷所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志是否被設置;第一選擇單元8032,用于當所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志已經(jīng)被設置時,根據(jù)所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志,選擇與所述備用哈希函數(shù)類型標志對應的哈希函數(shù)作為備用哈希函數(shù);第一計算單元8033,用于使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算。進一步的,如圖11所示,所述主用哈希計算模塊803還可以包括第二選擇單元8034,用于當所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志沒有被設置時,選擇一個哈希函數(shù)作為備用哈希函數(shù);所述第一計算單元8033,還用于使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算;設置單元8035,用于在所述主用哈希存儲塊中設置所述備用哈希函數(shù)類型標志。進一步的,如圖11所示,所述第二選擇單元8034還包括第一選擇子單元80341,用于選擇一個比所述主用哈希函數(shù)產(chǎn)生哈希沖突少的哈希函數(shù)作為備用哈希函數(shù);第二選擇子單元80342,用于通過使用至少一個哈希函數(shù)對所述關鍵字進行哈希計算,得到至少一個與所述關鍵字對應的哈希函數(shù)值,選擇一個與所述至少一個哈希函數(shù)值對應的哈希存儲塊中的沖突表項數(shù)小于所述最大沖突數(shù)的哈希函數(shù)作為備用哈希函數(shù)。進一步的,如圖12所示,所述裝置還可以包括查找模塊808,在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項;返回模塊809,用于當在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項時,返回查找結果;獲得模塊810,用于當在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項時,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;第二判斷模塊811,用于根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項;所述返回模塊809,用于當不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,返回沒有查到;所述備用哈希計算模塊806,還用于當存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項時,使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;所述查找模塊808,還用于在與所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的所述第二沖突表項;所述返回模塊809,還用于當在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項時,返回查找結果;所述返回模塊809,還用于當在所述備用哈希存儲塊中沒有查到與所述關鍵字對應的所述第二沖突表項,返回沒有查到。進一步的,如圖13所示,所述裝置還可以包括所述查找模塊808,還用于在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項;刪除模塊812,用于當在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項時,刪除所述與所述關鍵字對應的所述第一沖突表項。 進一步的,如圖13所示,所述裝置還可以包括 所述獲得模塊810,還用于當在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;
      所述第二判斷模塊811,還用于根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項;所述返回模塊809,還用于當不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項時,返回沒有查到;所述備用哈希計算模塊806,還用于當存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項時,使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;所述查找模塊808,還用于在所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的第二的沖突表項;所述刪除模塊812,還用于當在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項時,刪除所述與所述關鍵字對應的所述第二沖突表項;所述返回模塊809,還用于當在所述備用哈希值對應的備用哈希存儲塊中沒有查到與所述關鍵字對應的第二的沖突表項時,返回沒有查到。本發(fā)明實施例提供的哈希計算處理裝置,通過關鍵字提取模塊提取報文中需要進行哈希計算的關鍵字,通過主用哈希計算模塊使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值,通過第一判斷模塊判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù),如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),通過第一沖突表項建立模塊在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項,如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,通過第二沖突建立模塊在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項。本發(fā)明實施例提供的哈希計算處理裝置,在對報文中的關鍵字進行哈希計算處理時,可以用低成本的方式解決現(xiàn)有技術對報文中的關鍵字進行哈希計算時生成的哈希沖突鏈的長度無法控制的問題,從而提高報文的存儲效率。本發(fā)明實施例提供的哈希計算處理裝置可以實現(xiàn)上述提供的方法實施例,具體功能實現(xiàn)請參見方法實施例中的說明,在此不再贅述。本發(fā)明實施例提供的哈希計算處理方法及裝置可以適用于數(shù)據(jù)通信領域或無線通信領域的交換機路由器產(chǎn)品中,但不僅限于此。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。以上所述,僅為本發(fā)明的具體實施方式
      ,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。
      權利要求
      1.一種哈希計算處理方法,其特征在于,包括接收報文,提取所述報文中需要進行哈希計算的關鍵字;使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個關鍵字,每個所述第一沖突表項對應的關鍵字通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值,在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項;其中,所述主用哈希值與所述備用哈希值不相同,所述備用哈希存儲塊包括至少一個所述第二沖突表項,每個所述第二沖突表項對應一個關鍵字,每個所述第二沖突表項對應的關鍵字通過所述備用哈希函數(shù)計算后得到的所述備用哈希值相同。
      2.根據(jù)權利要求1述的方法,其特征在于,所述沖突表項包括是否使用備用哈希函數(shù)進行哈希計算的標記、表項有效標記以及所述關鍵字。
      3.根據(jù)權利要求2所述的方法,其特征在于,所述哈希存儲塊包括一個是否存在通過備用哈希函數(shù)建立的沖突表項的標志和一個備用哈希函數(shù)類型標志。
      4.根據(jù)權利要求3所述的方法,其特征在于,所述使用備用哈希函數(shù)對所述關鍵字進行哈希計算,具體包括判斷所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志是否被設置,如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志已經(jīng)被設置,根據(jù)所述備用哈希函數(shù)類型標志,選擇與所述備用哈希函數(shù)類型標志對應的哈希函數(shù)作為備用哈希函數(shù),使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算。
      5.根據(jù)權利要求4所述的方法,其特征在于,還包括如果所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志沒有被設置,選擇一個哈希函數(shù)作為備用哈希函數(shù),使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算;在所述主用哈希存儲塊中設置所述備用哈希函數(shù)類型標志。
      6.根據(jù)權利要求5所述的方法,其特征在于,所述選擇一個哈希函數(shù)作為備用哈希函數(shù),包括選擇一個比所述主用哈希函數(shù)產(chǎn)生哈希沖突少的哈希函數(shù)作為備用哈希函數(shù);或者,通過使用至少一個哈希函數(shù)對所述關鍵字進行哈希計算,得到至少一個與所述關鍵字對應的哈希函數(shù)值,選擇一個與所述至少一個哈希函數(shù)值對應的哈希存儲塊中的沖突表項數(shù)小于所述最大沖突數(shù)的哈希函數(shù)作為備用哈希函數(shù)。
      7.根據(jù)權利要求3所述的方法,其特征在于,還包括在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項,如果在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項,返回查找結果;如果在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,如果不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,返回沒有查到;如果存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;在與所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的所述第二沖突表項,如果在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項,返回查找結果;如果在所述備用哈希存儲塊中沒有查到與所述關鍵字對應的所述第二沖突表項,則返回沒有查到。
      8.根據(jù)權利要求3所述的方法,其特征在于,還包括在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項,如果在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項,刪除所述與所述關鍵字對應的所述第一沖突表項。
      9.根據(jù)權利要求8所述的方法,其特征在于,還包括如果在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,如果不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,返回沒有查到;如果存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;在所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的第二的沖突表項,如果在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項,刪除所述與所述關鍵字對應的所述第二沖突表項;如果在所述備用哈希值對應的備用哈希存儲塊中沒有查到與所述關鍵字對應的第二的沖突表項,則返回沒有查到。
      10.一種哈希計算處理裝置,其特征在于,包括 接收模塊,用于接收報文;關鍵字提取模塊,用于提取所述報文中需要進行哈希計算的關鍵字; 主用哈希計算模塊,用于使用主用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的主用哈希值;第一判斷模塊,用于判斷與所述主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);其中,所述主用哈希存儲塊包括至少一個所述第一沖突表項,每個所述第一沖突表項對應一個關鍵字,每個所述第一沖突表項對應的關鍵字通過所述主用哈希函數(shù)計算后得到的所述主用哈希值相同;第一沖突表項建立模塊,用于當所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù)時,在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;備用哈希計算模塊,用于當所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù)時,使用備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;第二沖突表項建立模塊,用于在與所述備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項;其中,所述主用哈希值與所述備用哈希值不相同,所述備用哈希存儲塊包括至少一個所述第二沖突表項,每個所述第二沖突表項對應一個關鍵字,每個所述第二沖突表項對應的關鍵字通過所述備用哈希函數(shù)計算后得到的所述備用哈希值相同。
      11.根據(jù)權利要求10所述的裝置,其特征在于,所述沖突表項包括是否使用備用哈希函數(shù)進行哈希計算的標記、表項有效標記以及所述關鍵字。
      12.根據(jù)權利要求11所述的方法,其特征在于,所述哈希存儲塊包括一個是否存在通過備用哈希函數(shù)建立的沖突表項的標志和一個備用哈希函數(shù)類型標志。
      13.根據(jù)權利要求12所述的裝置,其特征在于,所述主用哈希計算模塊還包括 判斷單元,用于判斷所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志是否被設置;第一選擇單元,用于當所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志已經(jīng)被設置時,根據(jù)所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志,選擇與所述備用哈希函數(shù)類型標志對應的哈希函數(shù)作為備用哈希函數(shù);第一計算單元,用于使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算。
      14.根據(jù)權利要求13所述的裝置,其特征在于,所述主用哈希計算模塊還包括第二選擇單元,用于當所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志沒有被設置時,選擇一個哈希函數(shù)作為備用哈希函數(shù);所述第一計算單元,還用于使用所述備用哈希函數(shù)對所述關鍵字進行哈希計算; 設置單元,用于在所述主用哈希存儲塊中設置所述備用哈希函數(shù)類型標志。
      15.根據(jù)權利要求14所述的裝置,其特征在于,所述第二選擇單元還包括第一選擇子單元,用于選擇一個比所述主用哈希函數(shù)產(chǎn)生哈希沖突少的哈希函數(shù)作為備用哈希函數(shù);第二選擇子單元,用于通過使用至少一個哈希函數(shù)對所述關鍵字進行哈希計算,得到至少一個與所述關鍵字對應的哈希函數(shù)值,選擇一個與所述至少一個哈希函數(shù)值對應的哈希存儲塊中的沖突表項數(shù)小于所述最大沖突數(shù)的哈希函數(shù)作為備用哈希函數(shù)。
      16.根據(jù)權利要求12所述的裝置,其特征在于,還包括查找模塊,在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項; 返回模塊,用于當在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項時,返回查找結果;獲得模塊,用于當在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項時,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;第二判斷模塊,用于根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項;所述返回模塊,用于當不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項,返回沒有查到;所述備用哈希計算模塊,還用于當存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項時,使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;所述查找模塊,還用于在與所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的所述第二沖突表項;所述返回模塊,還用于當在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項時,返回查找結果;所述返回模塊,還用于當在所述備用哈希存儲塊中沒有查到與所述關鍵字對應的所述第二沖突表項,返回沒有查到。
      17.根據(jù)權利要求12所述的裝置,其特征在于,還包括所述查找模塊,還用于在所述主用哈希存儲塊中查找與所述關鍵字對應的所述第一沖突表項;刪除模塊,用于當在所述主用哈希存儲塊中查到與所述關鍵字對應的所述第一沖突表項時,刪除所述與所述關鍵字對應的所述第一沖突表項。
      18.根據(jù)權利要求17所述的裝置,其特征在于,還包括所述獲得模塊,還用于當在所述主用哈希存儲塊中沒有查到與所述關鍵字對應的所述第一沖突表項,獲得所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志和所述備用哈希函數(shù)類型標志;所述第二判斷模塊,還用于根據(jù)所述主用哈希存儲塊中的所述是否存在通過備用哈希函數(shù)建立的沖突表項的標志,判斷是否存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項;所述返回模塊,還用于當不存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項時,返回沒有查到;所述備用哈希計算模塊,還用于當存在通過備用哈希函數(shù)建立的與所述關鍵字對應的所述第二沖突表項時,使用所述主用哈希存儲塊中的所述備用哈希函數(shù)類型標志對應的備用哈希函數(shù)對所述關鍵字進行哈希計算,得到與所述關鍵字對應的備用哈希值;所述查找模塊,還用于在所述備用哈希值對應的備用哈希存儲塊中查找與所述關鍵字對應的第二的沖突表項;所述刪除模塊,還用于當在所述備用哈希存儲塊中查到與所述關鍵字對應的所述第二沖突表項時,刪除所述與所述關鍵字對應的所述第二沖突表項;所述返回模塊,還用于當在所述備用哈希值對應的備用哈希存儲塊中沒有查到與所述關鍵字對應的第二的沖突表項時,返回沒有查到。
      全文摘要
      本發(fā)明實施例公開了一種哈希計算處理方法及裝置,所述方法包括接收報文,提取所述報文中需要進行哈希計算的關鍵字;使用主用哈希函數(shù)對所述關鍵字進行哈希計算,判斷與主用哈希值對應的主用哈希存儲塊中的第一沖突表項數(shù)是否小于預設的最大沖突數(shù);如果所述主用哈希存儲塊中的第一沖突表項數(shù)小于所述最大沖突數(shù),則在所述主用哈希存儲塊中建立與所述關鍵字對應的第一沖突表項;如果所述主用哈希存儲塊中的第一沖突表項數(shù)不小于所述最大沖突數(shù),使用備用哈希函數(shù)對所述關鍵字進行哈希計算,在與備用哈希值對應的備用哈希存儲塊中建立與所述關鍵字對應的第二沖突表項。本發(fā)明適用于數(shù)據(jù)處理技術領域中的哈希計算處理。
      文檔編號G06F17/30GK102308296SQ201180001122
      公開日2012年1月4日 申請日期2011年7月22日 優(yōu)先權日2011年7月22日
      發(fā)明者盧勝文 申請人:華為技術有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1