CN102609450A - 一种按字长匹配的多模式串匹配方法 - Google Patents

一种按字长匹配的多模式串匹配方法 Download PDF

Info

Publication number
CN102609450A
CN102609450A CN2012100065986A CN201210006598A CN102609450A CN 102609450 A CN102609450 A CN 102609450A CN 2012100065986 A CN2012100065986 A CN 2012100065986A CN 201210006598 A CN201210006598 A CN 201210006598A CN 102609450 A CN102609450 A CN 102609450A
Authority
CN
China
Prior art keywords
cryptographic hash
character
character block
pattern string
hash
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.)
Granted
Application number
CN2012100065986A
Other languages
English (en)
Other versions
CN102609450B (zh
Inventor
顾乃杰
汪永进
郭利财
任开新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201210006598.6A priority Critical patent/CN102609450B/zh
Publication of CN102609450A publication Critical patent/CN102609450A/zh
Application granted granted Critical
Publication of CN102609450B publication Critical patent/CN102609450B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种按字长匹配的多模式匹配方法,包括预编译过程和搜索过程,预编译过程构造3个表:跳转表即SHIFT表、哈希表即HASH表和前缀表即PREFIX表;特征是在搜索过程中按字长读取文本,每次从文本中装载一个整型值,每次读入和处理的单位变为一个机器字,这样就平滑了在最短模式串长度过小时跳跃距离过小的劣势,同时整型值中包含的三个字符块的哈希值可以通过对该整型值的移位获得,不需要进行逐个取值和做或运算,从而加快了哈希值的计算速度;每次读取一个机器字也使访存次数有效减少,提高了访存效率。采用本发明方法可使多模式串的匹配达到比较高的效率。

Description

一种按字长匹配的多模式串匹配方法
技术领域
本发明属于计算机中字符串匹配技术领域,具体涉及按字长匹配的多模式串匹配方法。
背景技术
多模式串匹配方法现已被广泛的用于信息检索、网络内容过滤、病毒检测和生物计算学等方面。所谓多模式串匹配,就是从文本中搜索出模式串集合中所有模式串的所有出现的位置。经典的多模式匹配方法有基于前缀的匹配防范,基于后缀的匹配方法和基于子串的匹配方法。其中基于后缀的匹配方法,如1994年美国亚利桑那大学计算机学院报告《一种快速的多模式串匹配算法》中提出的Wu-Manber方法(报告编号为TR-94-17),是目前实际中平均性能最好的一个方法,被应用于操作系统的搜索程序和入侵检测系统中。该Wu-Manber方法采用哈希散列和跳跃式搜索的方式,具有很好的匹配效率,但Wu-Manber方法在模式集中最短模式串长度过小时,搜索时平均跳跃距离变小,需要频繁的计算哈希值,验证入口增多,匹配效率会严重下降。
发明内容
本发明提出一种按字长匹配的多模式串匹配方法,以克服现有技术的上述缺陷,使多模式串匹配达到比较高的效率。
本发明按字长匹配的多模式串匹配方法,包括预编译过程和搜索过程,在字长为32位的计算机上进行如下操作:
所述预编译过程和传统的Wu-Manber方法相同,为构造3个表:一个跳转表即SHIFT表,一个哈希表即HASH表,一个前缀表即PREFIX表;设B为字符块的长度,m为最短模式串的长度,X为当前需要计算哈希值的字符块;字符块哈希值的计算公式为:
hash(X)=(X[0]*256B-1)+(X[1]*256B-2)+...+(X[B-1]*2560);
首先建立SHIFT表:先建立一个空表,表项值都初始化为最大跳转距离m-B+1,在模式集中取每个模式串前m个字符,从后往前每次取相邻B个字符组成字符块,按上面给出的字符块哈希值的计算公式计算该字符块的哈希值,按字符块跳转值的计算公式
Figure BDA0000129859830000011
修改表中索引值为该字符块哈希值的表项值,即形成SHIFT表;
然后建立HASH表:先建立一个空表,表项值都初始化为空,在模式集中取每个模式串前m个字符的后B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成HASH表;
再建立PREFIX表:先建立一个空表,表项值初始化为空,取模式集中每个模式串前B个字符,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成PREFIX表;
其特征在于:
将所述需要计算哈希值的字符块的长度B取2,在搜索过程中,每次按字长读取文本,即每次从文本中装载一个整型值,字符块的哈希值通过对该整型值的移位得到;具体操作如下:
设当前读取机器字的内容是对应文本中的字符“abcd”,该机器字对应三个字符块:前面字符块“ab”、中间字符块“bc”和后面字符块“cd”,机器字对应整型值为变量var,整个搜索过程分为四个阶段,用计算机语言描述如下:
第一阶段:
由计算前面字符块哈希值的公式hash(″ab″)=(var<<16)>>16得到前面字符块的哈希值V1,查SHIFT表得到表中索引值为前面字符块的哈希值V1的表项值:
switch(SHIFT[V1])
{
case 0:查找HASH表中索引值为前面字符块的哈希值V1的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V1的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第二阶段;
case 1:直接进入第二阶段;
case 2,3,4:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第二阶段:
由计算中间字符块哈希值的公式hash(″bc″)=(var<<8)>>16得到中间字符块的哈希值V2,查SHIFT表:
switch(SHIFT[V2])
{
case 0:查找HASH表中索引值为中间字符块的哈希值V2的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V2的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第三阶段;
case 1,2:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第三阶段:
由计算后面字符块哈希值的公式hash(″cd″)=var>>16得到后面字符块的哈希值V3,查SHIFT表:
switch(SHIFT[V3])
{
case 0:查找HASH表中索引值为后面字符块的哈希值V3的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V3的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
case 1:直接进入第一阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第四阶段:
取下一个字长中与该字长中相邻的字符,由计算哈希值的公式计算得到相邻字长字符块的哈希值V4,查SHIFT表:
switch(SHIFT[V4])
{
case 0:查找HASH表中索引值为字长字符块的哈希值V4的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V4的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
}。
概括起来说,本发明方法就是在上述搜索过程中首先计算当前字符块的哈希值,若当前字符块的跳转值为零,则将当前整型指针转为字符指针,查找HASH表和PREFIX表,验证可能的匹配情况,若不为零,则直接移动到下一个匹配入口;整个过程中搜索指针的移动距离是一个字长的整数倍,当搜索指针到达文本末尾,整个过程结束。
与现有Wu-Manber技术相比,本发明主要做了以下改进:
A.最短模式串长度过小时,平均跳跃距离增大。
本发明方法中的最大跳跃距离为m-B+1;而在现有的Wu-Manber方法中当规则集中最短模式串长度过小时,最大跳跃距离受限;本发明方法中通过按字长匹配,每次读入和处理的单位变为一个机器字,在最短模式串长度过小时,仍相当于跳跃距离为4,这样就平滑了最短模式串长度过小时跳跃距离过小的劣势。
B.哈希值的计算加速。
本发明中每次读入一个整型值,其包含的三个字符块的哈希值正好可以通过对该整型值的移位获得。仅仅通过移位即可获得所需的哈希值,而不需要进行逐个取值和做或运算,这样就加快了哈希值的计算速度,特别是当最短模式串长度过小而需要频繁对文本计算哈希值时,采用本发明方法就可获得很大的效率提升。
C.访存次数减少。
本发明中每次读取一个机器字,设文本长度为n,则最多的访存次数为n/4;而现有的Wu-Manber方法的平均访存次数为n/(m-1),当最短模式串长度过小时,现有的Wu-Manber方法的访存次数很多,而采用本发明方法后访存次数可以有效减少。
具体实施方式
实施例1:
本发明提出的这种按字长匹配的多模式串匹配方法,分为预编译过程和搜索过程,其中的预编译过程和传统的Wu-Manber方法相同,即建立三个表:SHIFT表,HASH表和PREFIX表;在搜索过程中,每次匹配的单位为一个字长,即一个整型,通过对该整型进行移位操作,可以快速得到整型中包含的三个字符块的哈希值,再根据预编译过程得到的三个表,进行匹配验证。
本实施例中的实现平台为linux操作系统,字长为32位,中央处理器为双核酷睿2代,内存为2千兆字节,采用的是随机生成的9.54兆字节的匹配文本,字符集大小为256,模式串集合是从匹配文本中随机抽取的子串,模式串集合大小为100,集合中模式串长度差异不超过10,最短模式串的长度m从2到10之间变化。
本实施例按字长匹配的多模式串匹配方法的具体操作如下:
在预编译过程中构造3个表:一个跳转表即SHIFT表,一个哈希表即HASH表,一个前缀表即PREFIX表;设B为字符块的长度,m为最短模式串的长度,X当前需要计算哈希值的字符块;字符块哈希值的计算公式为:hash(X)=(X[0]*256)+X[1];
首先是建立SHIFT表:先建立一个空表,表项值都初始化为最大跳转距离m-B+1,在模式集中取每个模式串前m个字符,从后往前每次取相邻B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,按字符块跳转值的计算公式
Figure BDA0000129859830000041
修改表中索引值为该字符块哈希值的表项值,即形成SHIFT表;
然后建立HASH表:先建立一个空表,表项值都初始化为空,在模式集中取每个模式串前m个字符的后B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成HASH表;
再建立PREFIX表:先建立一个空表,表项值初始化为空,取模式集中每个模式串前B个字符,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成PREFIX表;
将所述需要计算哈希值的字符块长度B取2,在搜索过程中,每次按字长读取文本,即每次从文本中装载一个整型值,字符块的哈希值通过对该整型值的移位得到;具体操作如下:
设当前读取机器字的内容是对应文本中的字符“abcd”,该机器字对应三个字符块:前面字符块“ab”、中间字符块“bc”和后面字符块“cd”,机器字对应整型值为变量var,整个搜索过程分为四个阶段,用计算机语言描述如下:
第一阶段:
由计算前面字符块哈希值的公式hash(″ab″)=(var<<16)>>16得到前面字符块的哈希值V1,查SHIFT表得到表中索引值为前面字符块的哈希值V1的表项值:
switch(SHIFT[V1])
{
case 0:查找HASH表中索引值为前面字符块的哈希值V1的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V1的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第二阶段;
case 1:直接进入第二阶段;
case 2,3,4:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第二阶段:
由计算中间字符块哈希值的公式hash(″bc″)=(var<<8)>>16得到中间字符块的哈希值V2,查SHIFT表:
switch(SHIFT[V2])
{
case 0:查找HASH表中索引值为中间字符块的哈希值V2的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V2的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第三阶段;
case 1,2:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第三阶段:
由计算后面字符块哈希值的公式hash(″cd″)=var>>16得到后面字符块的哈希值V3,查SHIFT表:
switch(SHIFT[V3])
{
case 0:查找HASH表中索引值为后面字符块的哈希值V3的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V3的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
case 1:直接进入第一阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第四阶段:
取下一个字长中与该字长中相邻的字符,由计算哈希值的公式计算得到相邻字长字符块的哈希值V4,查SHIFT表:
switch(SHIFT[V4])
{
case 0:查找HASH表中索引值为字长字符块的哈希值V4的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V4的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
}。
本实施例中,每次匹配的单位为一个机器字,在机器字长为32位的计算机上操作,每次相当于跳跃了4个字节,这样就平滑了最短模式串长度过小时跳跃距离过小的劣势。通过按字长读取,使搜索过程所需的哈希值的计算加速,本发明根据机器中整型值存储的特点,设计合理的哈希函数,每次读入一个整型值,其包含的三个字符块的哈希值正好可以通过对该整型值的移位获得。本发明中仅仅通过移位即可获得所需的哈希值,而不需要进行逐个取值和做或运算,这样就加快了计算速度,特别是当最短模式串长度过小,需要频繁对文本计算哈希值时,采用本发明方法获得了很大效率提升,同时在访存效率上也获得了很大提高。本发明在搜索过程中每次读取一个字长的信息,而传统的方法需要访存4次才能获得,特别是在最短模式串长度过小时,由于跳跃距离小,传统的方法需要多次读取文本验证,访存频繁;而采用本发明方法的访存开销仅为现有方法的四分之一,获得了很大的效率提升。综合以上几点,本实施例中在跳跃距离、哈希值的计算和访存上都获得了优化,匹配效率得到提高。
性能及效果分析
综合使用本发明的上述优化技术以后,通过实验测试分析证实,本发明正确实现了多模式串匹配功能,匹配效率相对于现有的Wu-Manber方法平均提高了40%,在最短模式串长度为2和3时,匹配效率提高了60%以上。
与现有Wu-Manber技术相比,本发明主要做了以下改进:
A.最短模式串长度过小时,平均跳跃距离增大。
本发明方法中的最大跳跃距离为m-B+1;而在现有的Wu-Manber方法中当规则集中最短模式串长度过小时,最大跳跃距离受限,如当最短模式串长度为2时,最大跳跃距离为1;本发明方法通过按字长匹配方法,每次读入和处理的单位变为一个机器字,在最短模式串长度过小时,仍相当于跳跃距离为4,这样就平滑了最短模式串长度过小时跳跃距离过小的劣势。
B.哈希值的计算加速。
本发明中每次读入一个整型值,其包含的三个字符块的哈希值正好可以通过对该整型值的移位获得。仅仅通过移位即可获得所需的哈希值,而不需要进行逐个取值和做或运算,这样就加快了哈希值的计算速度,特别是当最短模式串长度过小而需要频繁对文本计算哈希值时,采用本发明方法就可获得很大的效率提升。
C.访存次数减少。
本发明中每次读取一个机器字,设文本长度为n,则最多的访存次数为n/4;而现有的Wu-Manber方法的平均访存次数为n/(m-1),当最短模式串长度过小时,现有的Wu-Manber方法的访存次数很多,如当m=2时,访存次数几乎是n。可见采用本发明方法后访存次数可以有效减少。

Claims (1)

1.一种按字长匹配的多模式串匹配方法,包括预编译过程和搜索过程,在字长为32位的计算机上进行如下操作:
所述预编译过程为构造3个表:一个跳转表即SHIFT表,一个哈希表即HASH表,一个前缀表即PREFIX表;设B为字符块的长度,m为最短模式串的长度,X为当前需要计算哈希值的字符块;字符块哈希值的计算公式为:
hash(X)=(X[0]*256B-1)+(X[1]*256B-2)+...+(X[B-1]*2560);
首先建立SHIFT表:先建立一个空表,表项值都初始化为最大跳转距离m-B+1,在模式集中取每个模式串前m个字符,从后往前每次取相邻B个字符组成字符块,按上面给出的字符块哈希值的计算公式计算该字符块的哈希值,按字符块跳转值的计算公式
Figure FDA0000129859820000011
修改表中索引值为该字符块哈希值的表项值,即形成SHIFT表;
然后建立HASH表:先建立一个空表,表项值都初始化为空,在模式集中取每个模式串前m个字符的后B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成HASH表;
再建立PREFIX表:先建立一个空表,表项值初始化为空,取模式集中每个模式串前B个字符,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成PREFIX表;
其特征在于:
将所述需要计算哈希值的字符块的长度B取2,在搜索过程中,每次按字长读取文本,即每次从文本中装载一个整型值,字符块的哈希值通过对该整型值的移位得到;具体操作如下:
设当前读取机器字的内容是对应文本中的字符“abcd”,该机器字对应三个字符块:前面字符块“ab”、中间字符块“bc”和后面字符块“cd”,机器字对应整型值为变量var,整个搜索过程分为四个阶段,用计算机语言描述如下:
第一阶段:
由计算前面字符块哈希值的公式hash(″ab″)=(var<<16)>>16得到前面字符块的哈希值V1,查SHIFT表得到表中索引值为前面字符块的哈希值V1的表项值:
switch(SHIFT[V1])
{
case 0:查找HASH表中索引值为前面字符块的哈希值V1的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V1的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第二阶段;
case 1:直接进入第二阶段;
case 2,3,4:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第二阶段:
由计算中间字符块哈希值的公式hash(″bc″)=(var<<8)>>16得到中间字符块的哈希值V2,查SHIFT表:
switch(SHIFT[V2])
{
case 0:查找HASH表中索引值为中间字符块的哈希值V2的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V2的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第三阶段;
case 1,2:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第三阶段:
由计算后面字符块哈希值的公式hash(″cd″)=var>>16得到后面字符块的哈希值V3,查SHIFT表:
switch(SHIFT[V3])
{
case 0:查找HASH表中索引值为后面字符块的哈希值V3的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V3的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
case 1:直接进入第一阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第四阶段:
取下一个字长中与该字长中相邻的字符,由计算哈希值的公式计算得到相邻字长字符块的哈希值V4,查SHIFT表:
switch(SHIFT[V4])
{
case 0:查找HASH表中索引值为字长字符块的哈希值V4的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V4的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
}。
CN201210006598.6A 2012-01-10 2012-01-10 一种按字长匹配的多模式串匹配方法 Expired - Fee Related CN102609450B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210006598.6A CN102609450B (zh) 2012-01-10 2012-01-10 一种按字长匹配的多模式串匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210006598.6A CN102609450B (zh) 2012-01-10 2012-01-10 一种按字长匹配的多模式串匹配方法

Publications (2)

Publication Number Publication Date
CN102609450A true CN102609450A (zh) 2012-07-25
CN102609450B CN102609450B (zh) 2014-07-23

Family

ID=46526822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210006598.6A Expired - Fee Related CN102609450B (zh) 2012-01-10 2012-01-10 一种按字长匹配的多模式串匹配方法

Country Status (1)

Country Link
CN (1) CN102609450B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002061A (zh) * 2011-09-16 2013-03-27 阿里巴巴集团控股有限公司 一种长域名与短域名互相转化的方法及装置
CN103593611A (zh) * 2013-11-05 2014-02-19 安一恒通(北京)科技有限公司 一种快速识别病毒的方法和装置
CN104881439A (zh) * 2015-05-11 2015-09-02 中国科学院信息工程研究所 一种空间高效的多模式串匹配方法和系统
CN105701093A (zh) * 2014-11-24 2016-06-22 中兴通讯股份有限公司 基于自动机的模式匹配的方法及装置
CN106850507A (zh) * 2015-12-04 2017-06-13 北京航空航天大学 基于http压缩数据流的有害代码检测方法和装置
CN109656923A (zh) * 2018-12-19 2019-04-19 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251845A (zh) * 2008-03-13 2008-08-27 苏州爱迪比科技有限公司 利用改进的Wu-Manber算法进行多模式串匹配的方法
US7539681B2 (en) * 2004-07-26 2009-05-26 Sourcefire, Inc. Methods and systems for multi-pattern searching
CN102184205A (zh) * 2011-04-28 2011-09-14 哈尔滨工业大学 基于可扩展精度混沌哈希的多模式串匹配算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539681B2 (en) * 2004-07-26 2009-05-26 Sourcefire, Inc. Methods and systems for multi-pattern searching
CN101251845A (zh) * 2008-03-13 2008-08-27 苏州爱迪比科技有限公司 利用改进的Wu-Manber算法进行多模式串匹配的方法
CN102184205A (zh) * 2011-04-28 2011-09-14 哈尔滨工业大学 基于可扩展精度混沌哈希的多模式串匹配算法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
MUTH R, MANBER U.: "《Approximat e m ult iple st ring search》", 《IN:PROC.7TH COMBINATORIAL PATTERN MATCHING (CPM.96)》, 31 December 1996 (1996-12-31) *
WU SUN, MANBER U.: "《A Fast Algorithm for Multi-pattern Searching》", 《TECHNICAL REPORT:THE UNIVERSITY OF ARIZONA: THE COMPUTER SCIENCE DEPARTMENT》, 31 May 1994 (1994-05-31) *
袁世忠等: "《基于WM算法的多模式匹配改进算法WMN》", 《计算机工程与应用》, vol. 43, no. 15, 31 December 2007 (2007-12-31) *
马伟华等: "《一种改进的Wu-Manber多模式串匹配算法》", 《应用科技》, vol. 34, no. 10, 31 October 2007 (2007-10-31) *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002061A (zh) * 2011-09-16 2013-03-27 阿里巴巴集团控股有限公司 一种长域名与短域名互相转化的方法及装置
CN103002061B (zh) * 2011-09-16 2015-06-24 阿里巴巴集团控股有限公司 一种长域名与短域名互相转化的方法及装置
CN103593611A (zh) * 2013-11-05 2014-02-19 安一恒通(北京)科技有限公司 一种快速识别病毒的方法和装置
CN105701093A (zh) * 2014-11-24 2016-06-22 中兴通讯股份有限公司 基于自动机的模式匹配的方法及装置
CN104881439A (zh) * 2015-05-11 2015-09-02 中国科学院信息工程研究所 一种空间高效的多模式串匹配方法和系统
CN104881439B (zh) * 2015-05-11 2019-03-22 中国科学院信息工程研究所 一种多模式串匹配方法和系统
CN106850507A (zh) * 2015-12-04 2017-06-13 北京航空航天大学 基于http压缩数据流的有害代码检测方法和装置
CN106850507B (zh) * 2015-12-04 2020-01-14 北京航空航天大学 基于http压缩数据流的有害代码检测方法和装置
CN109656923A (zh) * 2018-12-19 2019-04-19 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备及存储介质
CN109656923B (zh) * 2018-12-19 2020-11-24 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN102609450B (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN102609450A (zh) 一种按字长匹配的多模式串匹配方法
CN103970722B (zh) 一种文本内容去重的方法
Shrivastava et al. Densifying one permutation hashing via rotation for fast near neighbor search
Kärkkäinen et al. Lightweight lempel-ziv parsing
CN102184198B (zh) 适用于工作负载保护系统的重复数据删除方法
CN111445952B (zh) 超长基因序列的相似性快速比对方法及系统
CN111370064B (zh) 基于simd的哈希函数的基因序列快速分类方法及系统
CN101727499B (zh) 一种存储单词库、及搜索单词的方法及系统
Gutman et al. Hypoenergetic molecular graphs
CN105426412A (zh) 多模式的串匹配方法和装置
Haj Rachid et al. A practical and scalable tool to find overlaps between sequences
CN105488176A (zh) 数据处理方法和装置
Grabowski et al. Sampling the suffix array with minimizers
Sogabe et al. FPGA acceleration of short read mapping based on sort and parallel comparison
CN105956203B (zh) 一种信息存储方法、信息查询方法、搜索引擎装置
Chen et al. A fast retrieval algorithm based on fibonacci hashing for audio fingerprinting systems
CN105808631A (zh) 一种数据依赖的多索引哈希算法
CN113495901B (zh) 一种面向可变长数据块的快速检索方法
US11397712B2 (en) Rapid and robust predicate evaluation
Hirvola et al. Approximate online matching of circular strings
JP2018136640A (ja) 検出方法、検出装置および検出プログラム
Na et al. Simple implementation of string b-trees
Jain et al. Hash table based word searching algorithm
JP2014074959A (ja) 近傍探索処理装置及び方法及びプログラム
VINCIGUERRA On Achieving Principled Space-Time Trade-Offs by Novel Indexing Data Structures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140723