一种文本数据扫描方法和装置与流程

文档序号:15800531发布日期:2018-11-02 21:24阅读:148来源:国知局
一种文本数据扫描方法和装置与流程

本说明书涉及信息安全领域,尤其涉及一种文本数据扫描方法和装置。

背景技术

使用正则表达式对大量文本进行数据扫描是业界在大数据安全领域的通行做法,比如:可以将描述了隐私扫描规则的正则表达式配置成正则匹配引擎,对文本数据进行扫描匹配,以确定文本中是否存在客户隐私数据。

现有技术中,文本数据往往是以二进制文件形式存储在各种存储介质中,若要对其进行扫描,一般的做法是先以字节流形式对文本数据进行读取,然后对这些字节数据进行解码转换,使其成为有意义的可读的字符数据,之后再应用正则表达式匹配工具对字符流数据进行扫描匹配,以在大量文本数据中扫描出符合正则表达式匹配规则的关键数据。然而将先将大量文本数据解码转换会花费较长时间,影响数据扫描速率,需要提供一种更快速高效的数据扫描方案。



技术实现要素:

针对上述技术问题,本说明书实施例提供一种文本数据扫描方法和装置,技术方案如下:

根据本说明书实施例的第一方面,提供一种文本数据扫描方法,应用于以字节形式存储的待扫描文本数据,所述方法包括:

一种文本数据扫描方法,应用于以字节形式存储的待扫描文本数据,其特征在于,所述方法包括:

以字节流形式读取待扫描文本数据;

将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

根据本说明书实施例的第二方面,提供一种文本数据扫描装置,应用于以字节形式存储的待扫描文本数据,所述装置包括:

数据读取模块:用于以字节流形式读取待扫描文本数据;

数据匹配模块:用于将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

数据提取模块:用于将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现一种文本数据扫描方法,应用于以字节形式存储的待扫描文本数据,所述方法包括:

以字节流形式读取待扫描文本数据;

将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

本说明书实施例所提供的技术方案,在数据扫描时直接针对字节流形式的文本数据做正则匹配,并获取以字节序列形式存在的匹配结果。避免了由字节流到字符流的中间转换过程,提高数据扫描效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。

此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是本说明书一示例性实施例示出的现有技术文本数据扫描方法的一种示意图;

图2是本说明书一示例性实施例示出的文本数据扫描方法的一种流程图;

图3是本说明书一示例性实施例示出的配置字节流正则匹配工具的一种流程图;

图4是本说明书一示例性实施例示出的文本数据扫描方法的另一种流程图;

图5是本说明书一示例性实施例示出的文本数据扫描方法的一种示意图;

图6是本说明书一示例性实施例示出的文本数据扫描装置的一种示意图;

图7是本说明书一示例性实施例示出的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

使用正则表达式对大量文本进行数据扫描是业界在大数据安全领域的通行做法,比如:可以利用描述了隐私扫描规则的正则表达式对文本数据进行扫描匹配,以确定文本中是否存在客户隐私数据。

参考附图1,为现有技术中扫描隐私数据的示意图。现有技术中,文本数据往往是以二进制文件形式存储在各种存储介质中,若要对其进行扫描,一般的做法是先以字节流形式对文本数据进行读取,然后对这些字节数据进行解码转换,使其成为有意义的可读的字符数据,之后再应用正则表达式匹配工具对字符流数据进行扫描匹配,以在大量文本数据中扫描出符合正则表达式匹配规则的关键数据。

但是在实际应用中的需求中,一般只需要关注大量文本中满足条件的关键数据的内容,甚至有时候不需要关注关键数据的具体内容,只需要确认大量文本是否含有满足条件的关键数据。仍以扫描隐私数据进行举例,一般情况下,我们需要在待扫描文本中扫描出隐私数据,并获知隐私数据的具体内容,此时其实只需要对扫描出的隐私数据进行解码。还有一种情况,我们不需要获知隐私数据的具体内容,只需要确认大量文本数据中是否含有隐私数据,此时只需要扫描,不需要对文本数据解码。而现有技术不管是针对哪种情况,都需要将所有待扫描文本数据先进行解码转换,再进行扫描匹配。然而将先将大量文本数据全部解码转换会带来额外的性能损耗,影响数据扫描速率,需要提供一种更快速高效的数据扫描方案。

针对以上问题,本说明书实施例提供一种文本数据扫描方法,以及一种用于执行该方法的文本数据扫描装置,下面对本实施例涉及的文本数据扫描方法进行详细说明,参见附图2所示,提供一种文本数据扫描方法,该扫描方法应用于以字节形式存储的待扫描文本数据,可以包括以下步骤:

s201,以字节流形式读取待扫描文本数据;

字节流是计算机对数据源中(磁盘,网络等)数据的一种读取方式,字节流数据具体表现为具有顺序的字节序列。而该字节序列可以通过对应的解码规则转换为有具体意义和可读性的字符序列。

目前来说,文本数据通常是以字节文件的形式存储在各类存储系统中,以字节流形式读取待扫描文本数据后,即可获得一组具有顺序的字节长序列。

s202,将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

由步骤s201可知,待扫描文本数据读取后的存在形式为一组字节序列。通过预先配置的字节流正则匹配工具,依次接受读取到的字节序列中的字节,以确定是否有某段字节序列或某些段字节序列能够符合字节流正则匹配工具的匹配规则,当某段字节序列符合该预先配置的字节匹配规则时,判定该段字节序列匹配成功。

其中,字节匹配规则是根据待扫描文本的扫描需求预先配置的,举例说明,若需求从大量文本数据中扫描出用户的邮箱信息,则可将匹配规则设定为匹配带有关键字“邮箱”或字母和数字的组合格式符合邮箱命名规则的一组文本数据。

以字节流正则匹配引擎为例,对字节流正则匹配工具进行说明:字节流正则匹配引擎通常通过有穷自动机对待扫描文本数据进行匹配。有穷自动机又可以分为nfa(非确定性有穷自动机)与dfa(确定性有穷自动机),每次接收新的字节时,有穷自动机都会发生状态变化,当一段字节序列使有穷自动机的状态由初态不断改变直到到达终态时,判定这一段字节序列符合字节流正则匹配引擎中的字节匹配规则,进而匹配成功。

有穷自动机是由正则表达式编译而成,该正则表达式需要对应待扫描文本数据的字节编码格式预先编写,如文本数据使用utf-8进行编码,则该正则表达式描述的匹配规则需要对应utf-8进行编写,以使根据该正则表达式编译的有穷自动机能够依次接受字节序列中的各个字节,并根据接受的字节做出相应的状态改变。参考附图5,使用字节流正则匹配引擎作为正则匹配工具,在数据扫描时可以直接针对字节流形式的文本数据做正则匹配,并获取以字节序列形式存在的匹配结果。避免了由字节流到字符流的中间转换过程,提高数据扫描效率。

扫描完毕后,若有匹配成功的文本数据,则将该文本数据确定为扫描出的关键数据;若没有匹配成功的文本数据,则说明待扫描文本中不包含关键数据。

在实际应用中,可根据需求确定进一步的数据处理方式。举例说明:在某些情况下,不需要获知关键数据的具体内容,只需要确认待扫描文本中是否包含关键数据,这种情况下只需要将待扫描数据扫描完毕并确认是否有扫描出的关键数据即可,不需要进行解码操作;而在另一些情况下,需要获知关键数据的具体内容,则扫描出关键数据后,还需要对所述关键数据进行解码,将以字节序列形式存在的关键数据转换为以字符串形式存在的文本数据。其中,字符数据和字节数据之间的解码转换是一种现有技术,在此不再赘述。而不管采用怎样的处理方式,都最多需要对扫描出的关键数据进行解码,避免解码全部待扫描数据造成的时间浪费,提高了扫描效率。

其中,步骤s202中预先配置的字节流正则匹配工具与描述了字节数据匹配规则的字节流正则表达式相对应,即该字节流正则匹配工具是根据一种字节流正则表达式编写而成,而该字节流正则表达式描述了针对待扫描文本数据的字节匹配规则。基于此,本说明书实施例提供一种字节流正则匹配工具的获取方法,参见附图3所示,该方法可以包括以下步骤:

s301,获取字符流正则表达式,所述字符流正则表达式描述了满足待扫描文本数据扫描需求的字符数据匹配规则;

s302,将所述字符数据匹配规则中的字符数据替换为对应的字节数据,以获取与字符流正则表达式对应的字节流正则表达式,所述字符数据与对应的字节数据可应用指定编码规则互相转换;

举例说明,若字符数据匹配规则是检索匹配到待扫描文本数据中的所有字符“abc”,且处于字节流形式的待扫描文本数据的编码方式为x,则将原字符数据匹配规则中的有关字符“abc”的部分都替换为将字符“abc”使用编码方式x转换后的字节数据。从而使描述该规则的正则表达式能够针对编码方式为x的待扫描文本数据进行字节匹配。

s303,根据所述字节流正则表达式配置对应的字节流正则匹配工具。

参见附图4所示,本说明书还提供另一种文本数据扫描方法,该扫描方法应用于以字节形式存储的待扫描文本数据,可以包括以下步骤:

s401,以字节流形式读取待扫描文本数据;

s402,预先配置的字节流正则匹配工具通过有穷自动机对待扫描文本数据中的字节进行逐个接受,当有字节序列使有穷自动机的状态到达终态时,判定所述字节序列为匹配成功的文本数据,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

s403,判断是否有匹配成功的文本数据?若有匹配成功的文本数据,执行步骤s404,若没有匹配成功的文本数据,结束流程。

s404,将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

s405,解码所述关键数据,将所述以字节序列形式存在的关键数据转换为以字符串形式存在的文本数据。

相应于上述方法实施例,本说明书实施例还提供一种文本数据扫描装置,参见图6所示,该装置应用于扫描以字节形式存储的待扫描文本数据,所述装置可以包括:数据读取模块610,数据匹配模块620和数据提取模块630。

数据读取模块610:用于以字节流形式读取待扫描文本数据;

数据匹配模块620:用于将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

数据提取模块630:用于将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

本说明书实施例还提供一种电子设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述文本数据扫描方法,该方法应用于扫描以字节形式存储的待扫描文本数据,所述方法至少包括:

以字节流形式读取待扫描文本数据;

将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

附图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的文本数据扫描方法,该方法应用于扫描以字节形式存储的待扫描文本数据,所述方法至少包括:

以字节流形式读取待扫描文本数据;

将待扫描文本数据通过预先配置的字节流正则匹配工具按字节进行匹配,所述字节流正则匹配工具中包含了满足待扫描文本数据扫描需求的字节匹配规则,所述字节匹配规则根据待扫描文本数据的字节编码格式预先编写;

将其中匹配成功的文本数据确定为扫描出的关键数据,所述扫描出的关键数据为以字节序列形式存在的文本数据。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1