CN112685612B - 一种特征码查找和匹配方法、设备及存储介质 - Google Patents
一种特征码查找和匹配方法、设备及存储介质 Download PDFInfo
- Publication number
- CN112685612B CN112685612B CN202011639355.7A CN202011639355A CN112685612B CN 112685612 B CN112685612 B CN 112685612B CN 202011639355 A CN202011639355 A CN 202011639355A CN 112685612 B CN112685612 B CN 112685612B
- Authority
- CN
- China
- Prior art keywords
- key value
- hash
- feature code
- chain table
- rule
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种特征码查找和匹配方法、设备及存储介质,方法包括:获取报文,并提取所述报文携带的规则ID和报文偏移字段后,计算出报文的第一键值;根据所述第一键值,在预设的特征码规则的哈希链表中查找与所述第一键值对应的第二键值,并在查找到后提取所述查找到的第二键值对应的特征码;当没有查找到与所述第一键值对应的第二键值时,根据所述报文的数据与特征码规则的哈希链表计算出报文的掩码键值;根据所述掩码键值,在所述哈希链表中查找与所述掩码键值对应的第三键值,并在查找到后提取所述查找到的第三键值对应的特征码。本发明解决了目前因采用硬件来实现特征码查找和匹配而导致的开发周期和成本增加的问题。
Description
技术领域
本发明涉及特征码查找技术领域,尤其涉及一种特征码查找和匹配方法、设备及存储介质。
背景技术
现有的特征码查找、匹配大部分都是基于硬件加速模块模块实现特征码的查找和匹配,基于硬件的DPI、HFA加速单元达到快速查找和匹配特征的目的。
但是依赖具有具体加速单元的硬件来实现特征码查找和匹配时,当硬件变更所有的功能后都需要基于新硬件重新适配和测试,导致产品开发的周期和成本都会显著增加。
发明内容
有鉴于此,有必要提供一种特征码查找和匹配方法、设备及存储介质,用以解决目前因采用硬件来实现特征码查找和匹配而导致的开发周期和成本增加的问题。
第一方面,本发明提供一种特征码查找和匹配方法,包括如下步骤:
获取报文,并提取所述报文携带的规则ID和报文偏移字段后,计算出报文的第一键值;
根据所述第一键值,在预设的特征码规则的哈希链表中查找与所述第一键值对应的第二键值,并在查找到后提取所述查找到的第二键值对应的特征码;其中,所述哈希链表存储有各个特征码对应的键值;
当没有查找到与所述第一键值对应的第二键值时,根据所述报文的数据与特征码规则的哈希链表计算出报文的掩码键值;
根据所述掩码键值,在所述哈希链表中查找与所述掩码键值对应的第三键值,并在查找到后提取所述查找到的第三键值对应的特征码。
优选的,所述的特征码查找和匹配方法中,所述哈希链表通过哈希桶的方式建立,所述哈希桶的大小与规则ID的规格对应。
优选的,所述的特征码查找和匹配方法中,通过CRC算法或MD5算法进行第一键值的计算。
优选的,所述的特征码查找和匹配方法中,还包括:
当查找到与所述掩码键值对应的第三键值后,根据第一键值计算哈希索引值,并将第一键值以及与所述第一键值对应的规则ID存储到所述哈希链表中;其中,所述第一键值与所述哈希索引值对应。
优选的,所述的特征码查找和匹配方法中,所述将第一键值以及与所述第一键值对应的规则ID存储到所述哈希链表中的步骤具体为:
根据第一键值和与所述第一键值对应的规则ID生成一哈希桶,并将所述哈希桶存储至哈希链表中,并对所述第一键值对应的哈希索引值进行加锁。
优选的,所述的特征码查找和匹配方法中,还包括:对哈希链表进行特征码添加;具体为:
获取控制参数,根据控制参数提取出特征码,根据提取的特征码计算出第四键值,并将第四键值存入所述初始链表中。
优选的,所述的特征码查找和匹配方法中,所述控制参数至少包括特征码、掩码和规则ID。
优选的,所述的特征码查找和匹配方法中,还包括:对哈希链表进行特征码修改和删除;具体为:
获取删除或修改命令,根据所述删除或修改命令中携带的规则ID,删除或修改所述哈希链表中对应的哈希桶。
第二方面,本发明还提供一种特征码查找和匹配设备,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如上所述的特征码查找和匹配方法中的步骤。
第三方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的特征码查找和匹配方法中的步骤。
相较于现有技术,本发明提供的特征码查找和匹配方法、设备及存储介质,通过建立一哈希链表,在进行特征码匹配和查找时,只需计算出键值,然后与哈希链表中的键值进行比较,即可快速查找到特征码,简单方便,而且可以随时实现添加、删除和查找功能,可移植性高,而且占用内存较低,不依赖特定加速单元的硬件,产品的成本低,利润更高,应用场景更加多元化。
附图说明
图1为本发明提供的特征码查找和匹配方法的一较佳实施例的流程图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
请参阅图1,本发明实施例提供的特征码查找和匹配方法,包括如下步骤:
S100、获取报文,并提取所述报文携带的规则ID和报文偏移字段后,计算出报文的第一键值。
具体来说,在进行特征码查找时,首先由数据面进入特征码流程,根据报文携带的规则ID和报文偏移字段来计算出第一键值,所述第一键值为与特征码对应的键值,通过查找与第一键值对应的键值,即可快速找到特征码。具体实施时,通过基于硬件或软件的CRC算法或MD5算法进行第一键值的计算。其中,MD5算法(Message-Digest Algorithm5,又叫摘要算法和哈希算法)是由MD4、MD3、MD2改进而来、MD5三列长度通常是128位,是目前被大量广泛使用的散列算法之一,主要用于密码加密和文件校验等。CRC算法(英文:Cyclicredundancy check)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。
S200、根据所述第一键值,在预设的特征码规则的哈希链表中查找与所述第一键值对应的第二键值,并在查找到后提取所述查找到的第二键值对应的特征码;其中,所述哈希链表存储有各个特征码对应的键值。
本实施例中,所述哈希链表通过哈希桶的方式建立,所述哈希桶的大小与规则ID的规格对应。为每个Hash值,建立一个Hash桶(Bucket),桶的容量是固定的,也就是只能处理固定次数的冲突,如1048576个Hash桶,每个桶中有4个表项(Entry),总计4M个表项;查找的时候首先第一键值通过哈希函数获取哈希值,根据哈希值获取到对应的哈希桶,然后遍历哈希桶内的pairs数组获取。本发明通过预设一哈希链表,在查找时只需查找到与第一键值对应的键值即可快速实现特征码的查找,故基于此,在进行特征码查找之前,需要进行哈希链表的建立,哈希链表的建立过程为特征码添加、删除和修改的过程,故具体的,所述特征码查找和匹配方法还包括:
对哈希链表进行特征码添加;具体为:
获取控制参数,根据控制参数提取出特征码,根据提取的特征码计算出第四键值,并将第四键值存入所述初始链表中。
其中,所述控制参数包括至少包括特征码、掩码和规则ID。
换而言之,在进行特征码添加时,控制面板根据通过IPC将特征码、掩码和规则ID等参数下发给数据面,然后数据面控制进程初始化一个HASH链表、HASH桶大小根据规则ID规格决定,之后数据面控制进程处理控制面进程的IPC消息,数据面控制进程根据下发的特征码字符串和掩码抽取特征码,根据提取的特征码,基于硬件或者软件的CRC32、MD5计算得到一个键值V,存入HASH链表,从而实现特征码的添加,在查找时,只需找到与键值V对应的键值即可快速查找和匹配到特征码,简单方面,而且便于维护。
在维护时,一般是进行特征码修改和删除,故本发明实施例还包括:
对哈希链表进行特征码修改和删除;具体为:
获取删除或修改命令,根据所述删除或修改命令中携带的规则ID,删除或修改所述哈希链表中对应的哈希桶。
具体来说,当收到删除或修改命令后,需要根据删除或修改消息中的规则ID删除HASH桶上对应规则ID的节点,此时只需查找并删除或修改HASH链表相匹配的规则ID节点即可,此外,节点的删除或修改也需要对当前HASH索引链表加锁。
S300、当没有查找到与所述第一键值对应的第二键值时,根据所述报文的数据与特征码规则的哈希链表计算出报文的掩码键值。
S400、根据所述掩码键值,在所述哈希链表中查找与所述掩码键值对应的第三键值,并在查找到后提取所述查找到的第三键值对应的特征码。
本实施例中,由于可能查找不到与所述第一键值对应的键值,此时需要重新计算出一个键值以实现特征码的查找,具体的,基于报文的Data与特征码规则HASH链表计算报文的掩码键值M,如果掩码键值与哈希链表中的所有键值都不相同,则重新遍历所述哈希链表,然后重新计算出一个掩码键值后,重新进行匹配,如果掩码键值与哈希链表中的键值相同,则此时即可查找到对应的特征码。
进一步来说,为了在没有查找到与第一键值相同的键值时,方便后续的查找,本发明实施例还将所述第一键值对应存储入哈希链表中,故优选的实施例中,所述特征码查找和匹配方法还包括:
当查找到与所述掩码键值对应的第三键值后,根据第一键值计算哈希索引值,并将第一键值以及与所述第一键值对应的规则ID存储到所述哈希链表中;其中,所述第一键值与所述哈希索引值对应。
具体的,所述将第一键值以及与所述第一键值对应的规则ID存储到所述哈希链表中的步骤具体为:
根据第一键值和与所述第一键值对应的规则ID生成一哈希桶,并将所述哈希桶存储至哈希链表中,并对所述第一键值对应的哈希索引值进行加锁。
换而言之,此时根据第一键值计算出哈希桶链索引,然后初始化哈希桶Cache内存上分配节点,在节点上存储第一键值和规则ID,并给所述第一键值对应的哈希索引值进行加锁,node节点挂链,以实现键值的存储,方便后续的查找,扩大哈希链表的存储内容。
本发明通过哈希链表的键值匹配来实现特征码的查找,不仅可快速查找到特征码,简单方便,而且可以随时实现添加、删除和查找功能,可移植性高,而且占用内存较低,不依赖特定加速单元的硬件,产品的成本低,利润更高,应用场景更加多元化。
基于上述特征码查找和匹配方法,本发明还相应的提供一种特征码查找和匹配设备,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如上述各实施例所述的特征码查找和匹配方法中的步骤。
由于上文已对特征码查找和匹配方法进行详细描述,在此不再赘述。
基于上述特征码查找和匹配方法,本发明还相应的提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述各实施例所述的特征码查找和匹配方法中的步骤。
由于上文已对特征码查找和匹配方法进行详细描述,在此不再赘述。
综上所述,本发明提供的特征码查找和匹配方法、设备及存储介质,通过建立一哈希链表,在进行特征码匹配和查找时,只需计算出键值,然后与哈希链表中的键值进行比较,即可快速查找到特征码,简单方便,而且可以随时实现添加、删除和查找功能,可移植性高,而且占用内存较低,不依赖特定加速单元的硬件,产品的成本低,利润更高,应用场景更加多元化。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种特征码查找和匹配方法,其特征在于,包括如下步骤:
获取报文,并提取所述报文携带的规则ID和报文偏移字段后,计算出报文的第一键值;
根据所述第一键值,在预设的特征码规则的哈希链表中查找与所述第一键值对应的第二键值,并在查找到后提取所述查找到的第二键值对应的特征码;其中,所述哈希链表存储有各个特征码对应的键值;
当没有查找到与所述第一键值对应的第二键值时,根据所述报文的数据与特征码规则的哈希链表计算出报文的掩码键值;
根据所述掩码键值,在所述哈希链表中查找与所述掩码键值对应的第三键值,并在查找到后提取所述查找到的第三键值对应的特征码;
所述方法还包括:对哈希链表进行特征码添加;具体为:
获取控制参数,根据控制参数提取出特征码,根据提取的特征码计算出第四键值,并将第四键值存入初始链表中;
所述控制参数至少包括特征码、掩码和规则ID;
所述方法还包括:对哈希链表进行特征码修改和删除;具体为:
获取删除或修改命令,根据所述删除或修改命令中携带的规则ID,删除或修改所述哈希链表中对应的哈希桶。
2.根据权利要求1所述的特征码查找和匹配方法,其特征在于,所述哈希链表通过哈希桶的方式建立,所述哈希桶的大小与规则ID的规格对应。
3.根据权利要求1所述的特征码查找和匹配方法,其特征在于,通过CRC算法或MD5算法进行第一键值的计算。
4.根据权利要求1所述的特征码查找和匹配方法,其特征在于,还包括:
当查找到与所述掩码键值对应的第三键值后,根据第一键值计算哈希索引值,并将第一键值以及与所述第一键值对应的规则ID存储到所述哈希链表中;其中,所述第一键值与所述哈希索引值对应。
5.根据权利要求4所述的特征码查找和匹配方法,其特征在于,所述将第一键值以及与所述第一键值对应的规则ID存储到所述哈希链表中的步骤具体为:
根据第一键值和与所述第一键值对应的规则ID生成一哈希桶,并将所述哈希桶存储至哈希链表中,并对所述第一键值对应的哈希索引值进行加锁。
6.一种特征码查找和匹配设备,其特征在于,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如权利要求1-5任意一项所述的特征码查找和匹配方法中的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-5任意一项所述的特征码查找和匹配方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639355.7A CN112685612B (zh) | 2020-12-31 | 2020-12-31 | 一种特征码查找和匹配方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639355.7A CN112685612B (zh) | 2020-12-31 | 2020-12-31 | 一种特征码查找和匹配方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685612A CN112685612A (zh) | 2021-04-20 |
CN112685612B true CN112685612B (zh) | 2022-08-30 |
Family
ID=75456680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011639355.7A Active CN112685612B (zh) | 2020-12-31 | 2020-12-31 | 一种特征码查找和匹配方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685612B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953609B (zh) * | 2020-08-07 | 2022-10-11 | 平安科技(深圳)有限公司 | 基于ovs的数据包处理方法及相关设备 |
CN115103038B (zh) * | 2021-12-29 | 2023-02-03 | 武汉绿色网络信息服务有限责任公司 | 一种基于隧道报文的匹配方法和装置 |
CN116366292B (zh) * | 2023-02-24 | 2024-03-29 | 南京金阵微电子技术有限公司 | 报文处理方法、系统、存储介质及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429143B2 (en) * | 2008-04-25 | 2013-04-23 | International Business Machines Corporation | Methods and systems for improving hash table performance |
CN103414701B (zh) * | 2013-07-25 | 2017-03-01 | 华为技术有限公司 | 一种规则匹配方法及设备 |
CN104468381B (zh) * | 2014-12-01 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
CN111107042B (zh) * | 2018-10-26 | 2021-03-09 | 广州汽车集团股份有限公司 | 报文解析方法、装置、计算机设备和存储介质 |
CN109558423A (zh) * | 2018-10-31 | 2019-04-02 | 深圳壹账通智能科技有限公司 | 一种基于键值对的数据查找方法、装置及设备 |
CN109766341B (zh) * | 2018-12-27 | 2022-04-22 | 厦门市美亚柏科信息股份有限公司 | 一种建立哈希映射的方法、装置、存储介质 |
CN110069496A (zh) * | 2019-03-20 | 2019-07-30 | 韶关学院 | 一种新型链式哈希表构建方法及装置 |
-
2020
- 2020-12-31 CN CN202011639355.7A patent/CN112685612B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112685612A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685612B (zh) | 一种特征码查找和匹配方法、设备及存储介质 | |
US7941435B2 (en) | Substring search algorithm optimized for hardware acceleration | |
US7110540B2 (en) | Multi-pass hierarchical pattern matching | |
RU2551820C2 (ru) | Способ и устройство для проверки файловой системы на наличие вирусов | |
US7346160B2 (en) | Randomization-based encryption apparatus and method | |
US8136095B2 (en) | Relations in fuzzing data | |
CN111897846B (zh) | 缓存数据校验方法、装置、设备及存储介质 | |
US20100220853A1 (en) | Method and Apparatus for Compound Hashing Via Iteration | |
CN108845843B (zh) | 一种函数处理方法、装置以及相关设备 | |
WO2005103953A2 (en) | Processing data in a computerised system | |
CN112968907B (zh) | 数据传输方法、数据存储方法、数据查询方法、介质及设备 | |
CN106990956A (zh) | 基于后缀树的代码文件克隆检测方法 | |
CN110413711B (zh) | 一种差异数据获取方法及其存储介质 | |
CN111562920A (zh) | 小程序代码相似度确定方法、装置、服务器及存储介质 | |
CN117940894A (zh) | 用于检测代码克隆的系统和方法 | |
CN112600864A (zh) | 一种验证码校验方法、装置、服务器及介质 | |
CN110502888B (zh) | 一种基于可信度量的移动软件白名单机制的移动办公方法 | |
CN111291001A (zh) | 计算机文件的读取方法、装置、计算机系统及存储介质 | |
US8776191B2 (en) | Techniques for reducing storage space and detecting corruption in hash-based application | |
US20210224397A1 (en) | Information processing device, information processing method, and computer readable medium | |
CN111589159B (zh) | 文件校验方法、配置方法、装置、客户端和服务端 | |
US11327741B2 (en) | Information processing apparatus | |
CN110363000B (zh) | 识别恶意文件的方法、装置、电子设备及存储介质 | |
CN114510717A (zh) | 一种elf文件的检测方法、装置、存储介质 | |
CN109194613B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230414 Address after: 100120 room c0310, building 6, No.3, Dongbinhe Road, Deshengmen, Xicheng District, Beijing Patentee after: BEIJING ABT NETWORKS CO.,LTD. Address before: 430070 room 01, 3rd floor, building 11, phase I, Guanggu power energy saving and environmental protection technology business incubator (accelerator), No. 308, Guanggu Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province Patentee before: WUHAN SIPULING TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |