位并行算法与shift-and、shift-or算法 一、关于位并行算法 二十世纪90年代初,在Baez-aYates的博士论文11”中最早出现了采用位并行方法(Bit一Parallelism)进行字符串匹配的思想,而后出现了经典的shift-or算法,以及又在此基础上进行了改进和提高的shift-and算法,shift-and算法又称为BAP(Bit一ParallelAutomaton)算法。 &nb 存储安全 任侠 2011-11-17 14087 热度 3评论
常见经典字符串匹配算法简要介绍 & 柔性的字符串匹配pdf下载地址 在网络安全的研究中,字符串匹配是一种使用普遍而关键的技术,如杀毒软件、IDS中的特征码匹配、内容过滤等,都需要用到字符串匹配。作为字符串匹配中的一种特殊情况,近似字符串匹配的研究也同样重要。这里对经典的字符串匹配算法与思想进行简要分析和总结。 本文的主要参考了《柔性字符串匹配》一书。不可多得的一部专业书籍,有兴趣者可移步这里下载PDF电子书:柔性字符串匹配下载地址 一 精确字符串匹配 存储安全 任侠 2011-10-15 8128 热度 1评论
KMP(Knuth-Morris-Pratt)字符串模式匹配算法解析及C语言实现参考源码 字符串模式匹配算法,通俗点说,就是一种在一个字符串中定位另一个串的高效算法。KMP(Knuth-Morris-Pratt)算法是一种基于前缀搜索的方法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法在搜索阶段的最坏时间复杂度和平均时间复杂度都是O(n),在预处理阶段的时间复杂度是O(m),所以它的时间复杂度为O(m+n)。 一.BF算法:简单匹配算法 先来看一个简单匹配算法的函数: 存储安全 任侠 2011-02-08 7721 热度 3评论
WM(Wu-Manber)算法详解及C语言实现程序代码解析参考 WM算法采用字符块技术,增大了主串和模式串不匹配的可能性,从而增加了直接跳跃的机会。使用散列表选择模式串集合中的一个子集与当前文本进行完全匹配。使用前缀表进一步过滤不匹配的模式串,使算法获得了较高的运行效率。 WM算法首先对模式串集合进行预处理。预处理阶段将建立3个表格:SHIFT表,HASH表和PREFIX表。SHIFT表用于在扫描文本串的时候,根据读入字符串决定可以跳过的字符数,如果相应的跳跃 存储安全 任侠 2011-01-17 13541 热度 4评论
精确单字符串匹配BM算法及其在snort中的C语言实现代码解析 BM算法概念 BM算法是一种精确字符串匹配算法(区别于模糊匹配)。 BM算法采用从右向左比较 的方法,同时应用到了两种启发式规 则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。 BM算法思想 1、三个shift函数:d1,d2,d3,函数的作用是决定当匹配不成功时窗口的 移动位数。 2、假设一个情况:已经读入了一个既是搜索窗口中的 存储安全 任侠 2010-12-26 6756 热度 1评论