System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体而言,涉及一种文本的快速扫描方法、装置、电子设备及存储介质。
技术介绍
1、随着计算机技术的快速发展,网络入侵、网络攻击等网络安全事件的发生频率也越来越高,为了防止网络安全事件的发生,进行网络安全检测显得尤为重要。目前,正则表达式通常被编译为有限自动机来执行检测任务,有限自动机分为确定型有限自动机(deterministic finite automaton,dfa)及非确定型有限自动机(non-deterministicfinite automaton,nfa)。由于dfa的检测性能更好,因此正则表达式检测匹配引擎通常会将nfa转换为dfa,由dfa对网络数据包(即待检测文本)进行匹配,以实现网络安全检测。
2、然而,在采用dfa扫描引擎对文本进行扫描时,每次将一个字符输入到dfa扫描引擎后,dfa扫描引擎都会从内存中存储的状态转移矩阵中查找当前状态,每次从内存中查找数据时都需要花费毫秒级的时间,导致文本扫描速度慢的问题。
技术实现思路
1、有鉴于此,本申请的目的在于提供一种文本的快速扫描方法、装置、电子设备及存储介质,以解决现有技术中,文本扫描速度慢的问题。
2、第一方面,本申请实施例提供了一种文本的快速扫描方法,应用于确定型有限自动机扫描引擎,包括:
3、利用状态转移矩阵中零状态下进行非零转移的字符,在寄存器中创建非零转移字符集合;
4、从待扫描文本中选取目标字符,确定目标字符在待扫描文本中的字符位置是否处
5、若未处于第一预设字符区间内,针对目标字符对应的第二预设字符区间内的每个区间字符,通过字符匹配指令确定该区间字符是否属于寄存器中的非零转移字符集合;
6、若均不属于非零转移字符集合,则将第二预设字符区间外的首个字符作为新的目标字符,返回执行确定目标字符在待扫描文本中的字符位置是否处于第一预设字符区间内的步骤。
7、可选地,针对目标字符对应的第二预设字符区间内的每个区间字符,通过字符匹配指令确定该区间字符是否属于寄存器中的非零转移字符集合,包括:选取目标字符作为待匹配字符;通过字符匹配指令,确定寄存器的非零转移字符集合中是否存在与待匹配字符相匹配的字符;若不存在匹配的字符,则选取待匹配字符的下一个区间字符作为新的待匹配字符,返回执行通过字符匹配指令,确定寄存器的非零转移字符集合中是否存在与待匹配字符相匹配的字符的步骤;若存在匹配的区间字符,结束确定第二预设字符区间中每个区间字符是否属于非零转移字符集合,确定待匹配字符对应的当前状态,将待匹配字符的下一个区间字符作为新的目标字符,返回执行确定目标字符在待扫描文本中的字符位置是否处于第一预设字符区间内的步骤。
8、可选地,在确定目标字符在待扫描文本中的字符位置是否处于第一预设字符区间内之后,还包括:若处于第一预设字符区间内,将当前状态作为状态索引,从状态转移矩阵中获取与目标字符对应的转移状态作为新的当前状态;选取目标字符的下一个字符作为新的目标字符,返回执行将当前状态作为状态索引,从状态转移矩阵中获取与目标字符对应的转移状态作为新的当前状态的步骤。
9、可选地,确定待匹配字符对应的当前状态,包括:将当前状态作为状态索引,从状态转移矩阵中获取与待匹配字符对应的转移状态,将转移状态作为新的当前状态。
10、可选地,方法还包括:确定当前状态是否为可接受状态;若是可接受状态,则确定待扫描文本命中规则。
11、可选地,第一预设字符区间与第二预设字符区间的长度相同。
12、可选地,零状态不作为可接受状态。
13、第二方面,本申请实施例还提供了一种文本的快速扫描装置,应用于确定型有限自动机扫描引擎,所述装置包括:
14、集合创建模块,用于利用状态转移矩阵中零状态下进行非零转移的字符,在寄存器中创建非零转移字符集合;
15、第一区间检测模块,用于从待扫描文本中选取目标字符,确定目标字符在待扫描文本中的字符位置是否处于第一预设字符区间内,第一预设字符区间为位于待扫描文本末尾的字符区间;
16、集合归属确定模块,用于若未处于第一预设字符区间内,针对目标字符对应的第二预设字符区间内的每个区间字符,通过字符匹配指令确定该区间字符是否属于寄存器中的非零转移字符集合;
17、循环扫描模块,用于若均不属于非零转移字符集合,则将第二预设字符区间外的首个字符作为新的目标字符,返回执行确定目标字符在待扫描文本中的字符位置是否处于第一预设字符区间内的步骤。
18、第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的文本的快速扫描方法的步骤。
19、第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的文本的快速扫描方法的步骤。
20、本申请实施例带来了以下有益效果:
21、本申请实施例提供的一种文本的快速扫描方法、装置、电子设备及存储介质,能够在寄存器中创建非零转移字符集合,并只需通过寄存器中的非零转移字符集合即可确定第二预设字符区间内的哪些字符为不是非零转移字符,如果不是非零转移字符,则均无需从内存中获取转移状态,与现有技术中所有字符均需从内存中的状态转移矩阵获取转移状态相比,提升了文本扫描速度,与现有技术中的文本的快速扫描方法相比,解决了文本扫描速度慢的问题。
22、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
本文档来自技高网...【技术保护点】
1.一种文本的快速扫描方法,其特征在于,应用于确定型有限自动机扫描引擎,包括:
2.根据权利要求1所述的方法,其特征在于,所述针对所述目标字符对应的第二预设字符区间内的每个区间字符,通过字符匹配指令确定该区间字符是否属于所述寄存器中的非零转移字符集合,包括:
3.根据权利要求1所述的方法,其特征在于,在所述确定所述目标字符在所述待扫描文本中的字符位置是否处于第一预设字符区间内之后,还包括:
4.根据权利要求2所述的方法,其特征在于,所述确定所述待匹配字符对应的当前状态,包括:
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述第一预设字符区间与所述第二预设字符区间的长度相同。
7.根据权利要求1所述的方法,其特征在于,所述零状态不作为可接受状态。
8.一种文本的快速扫描装置,其特征在于,应用于确定型有限自动机扫描引擎,包括:
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7中任一项所述的文本的快速扫描方法的步骤。
...【技术特征摘要】
1.一种文本的快速扫描方法,其特征在于,应用于确定型有限自动机扫描引擎,包括:
2.根据权利要求1所述的方法,其特征在于,所述针对所述目标字符对应的第二预设字符区间内的每个区间字符,通过字符匹配指令确定该区间字符是否属于所述寄存器中的非零转移字符集合,包括:
3.根据权利要求1所述的方法,其特征在于,在所述确定所述目标字符在所述待扫描文本中的字符位置是否处于第一预设字符区间内之后,还包括:
4.根据权利要求2所述的方法,其特征在于,所述确定所述待匹配字符对应的当前状态,包括:
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述第一预设字符区间与所...
【专利技术属性】
技术研发人员:杨嘉佳,唐球,关健,曹蓉,贾鹏林,
申请(专利权)人:中国电子信息产业集团有限公司第六研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。