WO2012106916A1

Method and apparatus for processing hash calculations

Abstract

Disclosed in the embodiment of the present invention is a method and device for processing Hash calculations. The method comprises: receiving a message and extracting keywords from the message that requires Hash calculation; using a primary Hash function to perform a Hash calculation for the keywords; and determining whether the number of first conflict terms in a primary Hash storage block corresponding to a primary Hash value is smaller than a preset maximum conflict number. If the number of first conflict terms in the primary Hash storage block is smaller than the maximum conflict number, establishing a first conflict term corresponding to the keywords in the primary Hash storage block; if the number of first conflict entries in the primary Hash storage block is not smaller than the maximum conflict number, performing a Hash calculation for the keywords using a secondary Hash function, and establishing a secondary conflict term corresponding to the keywords in the secondary Hash storage block that corresponds to the secondary Hash value. The present invention applies to Hash calculation processing in the field of data processing technology.

WO2012106916A1, drawing sheet 1
Sheet 1 of 10

Term

No projected expiry on record.

  1. Priority and filed
  2. Published
  3. Today

18 claims: 2 independent, 16 dependent

  1. 1
    权利 要求 书 1、 一种哈希计算处理方法, 其特征在于, 包括: 接收报文, 提取所述报文中需要进行哈希计算的关键字; 使用主用哈希函数对所述关键字进行哈希计算, 得到与所述关键字对应的 主用哈希值; 判断与所述主用哈希值对应的主用哈希存储块中的第一冲突表项数是否小 于预设的最大冲突数; 其中, 所述主用哈希存储块包括至少一个所述第一冲突 表项, 每个所述第一冲突表项对应一个关键字, 每个所述第一冲突表项对应的 关键字通过所述主用哈希函数计算后得到的所述主用哈希值相同; 如果所述主用哈希存储块中的第一冲突表项数小于所述最大冲突数, 则在 所述主用哈希存储块中建立与所述关键字对应的第一冲突表项; 如果所述主用哈希存储块中的第一冲突表项数不小于所述最大冲突数, 使 用备用哈希函数对所述关键字进行哈希计算, 得到与所述关键字对应的备用哈 希值, 在与所述备用哈希值对应的备用哈希存储块中建立与所述关键字对应的 第二冲突表项; 其中, 所述主用哈希值与所述备用哈希值不相同, 所述备用哈 希存储块包括至少一个所述第二冲突表项, 每个所述第二冲突表项对应一个关 键字, 每个所述第二冲突表项对应的关键字通过所述备用哈希函数计算后得到 的所述备用哈希值相同。
  2. 2
    2、 根据权利要求 1述的方法, 其特征在于, 所述冲突表项包括: 是否使用 备用哈希函数进行哈希计算的标记、 表项有效标记以及所述关键字。
  3. 3
    3、 根据权利要求 2所述的方法, 其特征在于, 所述哈希存储块包括: 一个 是否存在通过备用哈希函数建立的冲突表项的标志和一个备用哈希函数类型标 志。
  4. 4
    4、 根据权利要求 3所述的方法, 其特征在于, 所述使用备用哈希函数对所 述关键字进行哈希计算, 具体包括: 判断所述主用哈希存储块中的所述备用哈希函数类型标志是否被设置, 如 果所述主用哈希存储块中的所述备用哈希函数类型标志已经被设置, 根据所述 备用哈希函数类型标志, 选择与所述备用哈希函数类型标志对应的哈希函数作 为备用哈希函数, 使用所述备用哈希函数对所述关键字进行哈希计算。
  5. 5
    5、 根据权利要求 4所述的方法, 其特征在于, 还包括: 如果所述主用哈希存储块中的所述备用哈希函数类型标志没有被设置, 选 择一个哈希函数作为备用哈希函数, 使用所述备用哈希函数对所述关键字进行 哈希计算; 在所述主用哈希存储块中设置所述备用哈希函数类型标志。
  6. 6
    6、 根据权利要求 5所述的方法, 其特征在于, 所述选择一个哈希函数作为 备用哈希函数, 包括: 选择一个比所述主用哈希函数产生哈希冲突少的哈希函数作为备用哈希函 数; 或者, 通过使用至少一个哈希函数对所述关键字进行哈希计算, 得到至少一个与 所述关键字对应的哈希函数值, 选择一个与所述至少一个哈希函数值对应的哈 希存储块中的冲突表项数小于所述最大冲突数的哈希函数作为备用哈希函数。
  7. 7
    7、 根据权利要求 3所述的方法, 其特征在于, 还包括: 在所述主用哈希存储块中查找与所述关键字对应的所述第一冲突表项, 如 果在所述主用哈希存储块中查到与所述关键字对应的所述第一冲突表项, 返回 查找结果; 如果在所述主用哈希存储块中没有查到与所述关键字对应的所述第一冲突 表项, 获得所述主用哈希存储块中的所述是否存在通过备用哈希函数建立的冲 突表项的标志和所述备用哈希函数类型标志; 根据所述主用哈希存储块中的所述是否存在通过备用哈希函数建立的冲突 表项的标志, 判断是否存在通过备用哈希函数建立的与所述关键字对应的所述 第二冲突表项, 如果不存在通过备用哈希函数建立的与所述关键字对应的所述 第二冲突表项, 返回没有查到; 如果存在通过备用哈希函数建立的与所述关键字对应的所述第二冲突表 项, 使用所述主用哈希存储块中的所述备用哈希函数类型标志对应的备用哈希 函数对所述关键字进行哈希计算, 得到与所述关键字对应的备用哈希值; 在与所述备用哈希值对应的备用哈希存储块中查找与所述关键字对应的所 述第二冲突表项, 如果在所述备用哈希存储块中查到与所述关键字对应的所述 第二冲突表项, 返回查找结果; 如果在所述备用哈希存储块中没有查到与所述关键字对应的所述第二冲突 表项, 则返回没有查到。
  8. 8
    8、 根据权利要求 3所述的方法, 其特征在于, 还包括: 在所述主用哈希存储块中查找与所述关键字对应的所述第一冲突表项, 如 果在所述主用哈希存储块中查到与所述关键字对应的所述第一冲突表项, 删除 所述与所述关键字对应的所述第一冲突表项。
  9. 9
    9、 根据权利要求 8所述的方法, 其特征在于, 还包括: 如果在所述主用哈希存储块中没有查到与所述关键字对应的所述第一冲突 表项, 获得所述主用哈希存储块中的所述是否存在通过备用哈希函数建立的冲 突表项的标志和所述备用哈希函数类型标志; 根据所述主用哈希存储块中的所述是否存在通过备用哈希函数建立的冲突 表项的标志, 判断是否存在通过备用哈希函数建立的与所述关键字对应的所述 第二冲突表项, 如果不存在通过备用哈希函数建立的与所述关键字对应的所述 第二冲突表项, 返回没有查到; 如果存在通过备用哈希函数建立的与所述关键字对应的所述第二冲突表 项, 使用所述主用哈希存储块中的所述备用哈希函数类型标志对应的备用哈希 函数对所述关键字进行哈希计算, 得到与所述关键字对应的备用哈希值; 在所述备用哈希值对应的备用哈希存储块中查找与所述关键字对应的第二 的冲突表项, 如果在所述备用哈希存储块中查到与所述关键字对应的所述第二 冲突表项, 删除所述与所述关键字对应的所述第二冲突表项; 应的第二的冲突表项, 则返回没有查到。
  10. 10
    10、 一种哈希计算处理装置, 其特征在于, 包括: 接收模块, 用于接收报文; 关键字提取模块, 用于提取所述报文中需要进行哈希计算的关键字; 主用哈希计算模块, 用于使用主用哈希函数对所述关键字进行哈希计算, 得到与所述关键字对应的主用哈希值; 第一判断模块, 用于判断与所述主用哈希值对应的主用哈希存储块中的第 一冲突表项数是否小于预设的最大冲突数; 其中, 所述主用哈希存储块包括至 少一个所述第一冲突表项, 每个所述第一冲突表项对应一个关键字, 每个所述 第一冲突表项对应的关键字通过所述主用哈希函数计算后得到的所述主用哈希 值相同; 第一冲突表项建立模块, 用于当所述主用哈希存储块中的第一冲突表项数 小于所述最大冲突数时, 在所述主用哈希存储块中建立与所述关键字对应的第 一冲突表项; 备用哈希计算模块, 用于当所述主用哈希存储块中的第一冲突表项数不小 于所述最大冲突数时, 使用备用哈希函数对所述关键字进行哈希计算, 得到与 所述关键字对应的备用哈希值; 第二冲突表项建立模块, 用于在与所述备用哈希值对应的备用哈希存储块 中建立与所述关键字对应的第二冲突表项; 其中, 所述主用哈希值与所述备用 哈希值不相同, 所述备用哈希存储块包括至少一个所述第二冲突表项, 每个所 述第二冲突表项对应一个关键字, 每个所述第二冲突表项对应的关键字通过所 述备用哈希函数计算后得到的所述备用哈希值相同。
  11. 11
    11、 根据权利要求 10所述的装置, 其特征在于, 所述冲突表项包括: 是否 使用备用哈希函数进行哈希计算的标记、 表项有效标记以及所述关键字。
  12. 12
    12、 根据权利要求 11所述的方法, 其特征在于, 所述哈希存储块包括: 一 个是否存在通过备用哈希函数建立的冲突表项的标志和一个备用哈希函数类型 标志。
  13. 13
    13、 根据权利要求 12所述的装置, 其特征在于, 所述主用哈希计算模块还 包括: 判断单元, 用于判断所述主用哈希存储块中的所述备用哈希函数类型标志 是否被设置; 志已经被设置时, 根据所述主用哈希存储块中的所述备用哈希函数类型标志, 选择与所述备用哈希函数类型标志对应的哈希函数作为备用哈希函数; 第一计算单元, 用于使用所述备用哈希函数对所述关键字进行哈希计算。
  14. 14
    14、 根据权利要求 13所述的装置, 其特征在于, 所述主用哈希计算模块还 包括: 志没有被设置时, 选择一个哈希函数作为备用哈希函数; 所述第一计算单元, 还用于使用所述备用哈希函数对所述关键字进行哈希 设置单元, 用于在所述主用哈希存储块中设置所述备用哈希函数类型标志。
  15. 15
    15、 根据权利要求 14所述的装置, 其特征在于, 所述第二选择单元还包括: 第一选择子单元, 用于选择一个比所述主用哈希函数产生哈希冲突少的哈 希函数作为备用哈希函数; 第二选择子单元, 用于通过使用至少一个哈希函数对所述关键字进行哈希 计算, 得到至少一个与所述关键字对应的哈希函数值, 选择一个与所述至少一 个哈希函数值对应的哈希存储块中的冲突表项数小于所述最大冲突数的哈希函 数作为备用哈希函数。
  16. 16
    16、 根据权利要求 12所述的装置, 其特征在于, 还包括: 查找模块, 在所述主用哈希存储块中查找与所述关键字对应的所述第一冲 突表项; 返回模块, 用于当在所述主用哈希存储块中查到与所述关键字对应的所述 第一冲突表项时, 返回查找结果; 获得模块, 用于当在所述主用哈希存储块中没有查到与所述关键字对应的 所述第一冲突表项时 , 获得所述主用哈希存储块中的所述是否存在通过备用哈 希函数建立的冲突表项的标志和所述备用哈希函数类型标志; 第二判断模块, 用于根据所述主用哈希存储块中的所述是否存在通过备用 哈希函数建立的冲突表项的标志, 判断是否存在通过备用哈希函数建立的与所 述关键字对应的所述第二冲突表项; 所述返回模块, 用于当不存在通过备用哈希函数建立的与所述关键字对应 的所述第二冲突表项, 返回没有查到; 所述备用哈希计算模块, 还用于当存在通过备用哈希函数建立的与所述关 键字对应的所述第二冲突表项时, 使用所述主用哈希存储块中的所述备用哈希 函数类型标志对应的备用哈希函数对所述关键字进行哈希计算, 得到与所述关 键字对应的备用哈希值; 与所述关键字对应的所述第二冲突表项; 所述返回模块, 还用于当在所述备用哈希存储块中查到与所述关键字对应 的所述第二冲突表项时, 返回查找结果; 所述返回模块, 还用于当在所述备用哈希存储块中没有查到与所述关键字 对应的所述第二冲突表项, 返回没有查到。
  17. 17
    17、 根据权利要求 12所述的装置, 其特征在于, 还包括: 所述查找模块, 还用于在所述主用哈希存储块中查找与所述关键字对应的 所述第一冲突表项; 删除模块, 用于当在所述主用哈希存储块中查到与所述关键字对应的所述 第一冲突表项时, 删除所述与所述关键字对应的所述第一冲突表项。
  18. 18
    18、 根据权利要求 17所述的装置, 其特征在于, 还包括: 所述获得模块, 还用于当在所述主用哈希存储块中没有查到与所述关键字 对应的所述第一冲突表项 , 获得所述主用哈希存储块中的所述是否存在通过备 用哈希函数建立的冲突表项的标志和所述备用哈希函数类型标志; 所述第二判断模块, 还用于根据所述主用哈希存储块中的所述是否存在通 过备用哈希函数建立的冲突表项的标志, 判断是否存在通过备用哈希函数建立 的与所述关键字对应的所述第二冲突表项; 所述返回模块, 还用于当不存在通过备用哈希函数建立的与所述关键字对 应的所述第二冲突表项时, 返回没有查到; 所述备用哈希计算模块, 还用于当存在通过备用哈希函数建立的与所述关 键字对应的所述第二冲突表项时, 使用所述主用哈希存储块中的所述备用哈希 函数类型标志对应的备用哈希函数对所述关键字进行哈希计算, 得到与所述关 键字对应的备用哈希值; 所述关键字对应的第二的冲突表项; 所述删除模块, 还用于当在所述备用哈希存储块中查到与所述关键字对应 的所述第二冲突表项时, 删除所述与所述关键字对应的所述第二冲突表项; 查到与所述关键字对应的第二的冲突表项时, 返回没有查到。
Independent claims18