CN110619234B - 一种文本处理方法及装置 - Google Patents
一种文本处理方法及装置 Download PDFInfo
- Publication number
- CN110619234B CN110619234B CN201910915862.XA CN201910915862A CN110619234B CN 110619234 B CN110619234 B CN 110619234B CN 201910915862 A CN201910915862 A CN 201910915862A CN 110619234 B CN110619234 B CN 110619234B
- Authority
- CN
- China
- Prior art keywords
- cell
- text
- hash value
- detected
- length
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文本处理方法及装置。从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组;利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配;若关键列中存在内容与待检测文本匹配的第一单元格,则获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组;利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配;若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。通过本申请提供的技术方案,提高了EDM匹配性能。
Description
技术领域
本申请涉及网络安全技术领域,特别是涉及一种文本处理方法及装置。
背景技术
数据泄露防护(英文:Data Leakage Prevention,简称:DLP)是通过一定的技术手段,防止企业的指定数据或者信息资产以违反安全策略的形式流出企业的一种策略。DLP的核心为内容识别,也就是识别待检测文本中是否包括指定数据或信息资产,从而根据识别结果进行智能加密、智能管控、智能审计等一系列DLP方案。常用的内容识别算法包括:正则表达式、关键字查找、文件指纹匹配、以及利用机器学习算法实现的一些语义分析技术等算法。
在文件指纹匹配算法中精确数据匹配(英文:Exact Data Match,简称:EDM)算法经常被用来保护数据库或者表格文件等格式化数据。在传统的EDM中,指纹信息是利用哈希算法对样本数据中每一单元格的文本内容进行哈希值计算后,得到的EDM索引。通过将该EDM索引导入DLP设备,在进行EDM匹配时,DLP设备会根据EDM索引所对应的样本数据中每一列包括的多个单元格的长度(即每一单元格中包括的字节数),选取关键列,该关键列为样本数据包括的多列中表示具有单元格长度的个数最少的列,并基于EDM索引,在该关键列的基础上建立长度-哈希值-行号的映射关系。
DLP设备根据长度-哈希值-行号的映射关系中包括的每一长度,利用长度与映射关系中每一长度对应的滑动窗口在待检测文本上滑动,计算滑动窗口中包括的文本内容所对应的哈希值,从而确定待检测文本中是否存在与关键列中某一单元格的内容匹配的文本内容。一旦存在匹配的文本内容,DLP设备将在匹配的文本内容所在位置的左右两侧各选取一定长度,并将该选取的长度所在范围内包括的文本内容,与样本数据中对应匹配的单元格所在行中的每一单元格的内容进行匹配。
当该行中每一单元格均与选取的长度所在范围内包括的文本内容匹配时,DLP设备确定该待检测文本与该行匹配。DLP设备可以根据EDM索引对应的安全策略处理待检测文本,降低待检测文本发送数据泄露的风险。
在上述EDM匹配过程中,上述关键列是样本数据中对应的单元格长度的个数最少的列,但是由于样本数据包括的关键列中每一单元格所对应的长度的不同,或者当存在多个样本数据时,每一样本数据的指纹信息中确定的关键列的长度不同,使得在计算滑动窗口中包括的文本内容的哈希值时,需要采用不同长度的滑动窗口反复计算待检测文本的文本内容所对应的哈希值,导致EDM匹配性能较差。
发明内容
有鉴于此,本申请的目的在于提供一种文本处理方法及装置,以实现提高EDM匹配性能。具体技术方案如下:
第一方面,本申请提供了一种文本处理方法,应用于DLP设备,该DLP设备存储EDM索引,EDM索引包括多个哈希值数组,每个哈希值数组用于表示形成格式化样本数据的一个单元格,该方法包括:
从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值;
利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配;
若关键列中存在内容与待检测文本匹配的第一单元格,则获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值;
利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配;
若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
结合第一方面,在第一种可能的实施方式中,按照EDM索引对应的安全策略对待检测文本进行处理,包括:
检测样本数据中与待检测文本匹配的行的数量是否小于预设行数阈值;
若否,则按照EDM索引对应的安全策略对待检测文本进行处理。
结合第一方面,在第二种可能的实施方式中,在从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组之前,还包括:
确定样本数据;
针对样本数据中的每一单元格,判断该单元格所在列中最小单元格的长度是否大于预设长度阈值;
若否,则根据长度为该单元格所在列中最小单元格的长度的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
若是,则根据长度为预设长度阈值的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
将样本数据中每一单元格对应的哈希值数组作为EDM索引中与每一单元格对应的索引元素,得到EDM索引。
结合第一方面,在第三种可能的实施方式中,从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,包括:
检测样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值;
若是,则将样本数据的每一单元格中最小单元格所在的列作为关键列;若否,则计算样本数据中每一列对应的最小单元格的长度与预设长度阈值间的差值,并将最小差值对应的最小单元格所在的列作为关键列;
从EDM索引中获取样本数据包括的关键列中每一单元格对应的哈希值数组,作为第一哈希值数组。
结合第一方面,在第四种可能的实施方式中,利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配,包括:
在待检测文本上滑动第一滑动窗口,采用拉宾-卡普(英文:Rabin-Karp)算法,计算待检测文本位于第一滑动窗口中的文本内容的第一哈希值;
针对关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值与计算得到的第一哈希值进行匹配;
若均匹配,则确定该单元格的内容与待检测文本匹配。
结合第一方面的第四种可能的实施方式,在第五种可能的实施方式中,上述方法还包括:
将计算得到的第一哈希值与待检测文本的文本内容的对应关系缓存至缓存空间;
上述利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配,包括:
在待检测文本上滑动每一第二单元格对应的第二滑动窗口,检测缓存空间中是否存在包含第二滑动窗口中包括的文本内容的目标对应关系;
若是,则针对每一第二单元格,将该第二单元格对应的第二哈希值数组中的每一哈希值,与目标对应关系包括的第一哈希值进行匹配;
若均匹配,则确定该第二单元格的内容与待检测文本匹配;若不均匹配,则确定该第二单元格的内容与待检测文本不匹配。
第二方面,本申请还提供了一种文本处理装置,应用于DLP设备,该DLP设备存储EDM索引,EDM索引包括多个哈希值数组,每个哈希值数组用于表示形成格式化样本数据的一个单元格,该装置包括:
第一获取模块,用于从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值;
第一检测模块,用于利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配;
第二获取模块,用于在关键列中存在内容与待检测文本匹配的第一单元格时,获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值;
第二检测模块,用于利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配;
处理模块,用于若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
结合第二方面,在第一种可能的实施方式中,上述处理模块,具体用于检测样本数据中与待检测文本匹配的行的数量是否小于预设行数阈值;若否,则按照EDM索引对应的安全策略对待检测文本进行处理。
结合第二方面,在第二种可能的实施方式中,上述装置还包括:
确定模块,用于确定样本数据;
判断模块,用于针对样本数据中的每一单元格,判断该单元格所在列中最小单元格的长度是否大于预设长度阈值;
第一计算模块,用于在判断模块的判断结果为否时,根据长度为该单元格所在列中最小单元格的长度的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
第二计算模块,用于在判断模块的判断结果为是时,根据长度为预设长度阈值的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
生成模块,用于将样本数据中每一单元格对应的哈希值数组作为EDM索引中与每一单元格对应的索引元素,得到EDM索引。
结合第二方面,在第三种可能的实施方式中,上述第一获取模块,具体用于检测样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值;若是,则将样本数据的每一单元格中最小单元格所在的列作为关键列;若否,则计算样本数据中每一列对应的最小单元格的长度与预设长度阈值间的差值,并将最小差值对应的最小单元格所在的列作为关键列;从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组。
结合第二方面,在第四种可能的实施方式中,上述第一检测模块,具体用于在待检测文本上滑动第一滑动窗口,采用Rabin-Karp算法,计算待检测文本位于第一滑动窗口中的文本内容的第一哈希值;针对关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值与计算得到的第一哈希值进行匹配;若均匹配,则确定该单元格的内容与待检测文本匹配。
结合第二方面的第四种可能的实施方式,在第五种可能的实施方式中,上述装置还包括:
缓存模块,用于将计算得到的第一哈希值与待检测文本的文本内容的对应关系缓存至缓存空间;
上述第二检测模块,具体用于在待检测文本上滑动每一第二单元格对应的第二滑动窗口,检测缓存空间中是否存在包含第二滑动窗口中包括的文本内容的目标对应关系;若是,则针对每一第二单元格,将该第二单元格对应的第二哈希值数组中的每一哈希值,与目标对应关系包括的第一哈希值进行匹配;若均匹配,则确定该第二单元格的内容与待检测文本匹配;若不均匹配,则确定该第二单元格的内容与待检测文本不匹配。
第三方面,本申请还提供了一种DLP设备,包括处理器和机器可读存储介质,该机器可读存储介质存储有能够被处理器执行的机器可执行指令,该处理器被机器可执行指令促使:实现上述任一文本处理方法步骤。
第四方面,本申请还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,该机器可执行指令促使处理器:实现上述任一文本处理方法步骤。
因此,通过应用本申请提供的文本处理方法及装置,在利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中是否存在与待检测文本匹配的第一单元格时,可以利用第一滑动窗口在待检测文本上滑动,从而检测关键列中是否存在与待检测文本匹配的第一单元格。由于第一滑动窗口的长度是一固定值,也就是关键列中最小单元格的长度或预设长度阈值,这使得在EDM匹配过程中,不需要根据关键列中每一单元格的长度不断调整滑动窗口的长度,从而重复计算待检测文本的文本内容所对应的哈希值,有效的减少了对待检测文本进行哈希计算的次数,减少了哈希值计算所耗费的时间,提高了待检测文本与关键列中每一单元格的匹配效率,从而提高了EDM匹配性能。
当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为关键列与待检测文本匹配过程的一种示意图;
图2为扩展区域的一种示意图;
图3为本申请实施例提供的文本处理方法的第一种流程示意图;
图4为本申请实施例提供的文本检测的一种示意图;
图5为本申请实施例提供的文本处理方法的第二种流程示意图;
图6为本申请实施例提供的文本处理方法的第三种流程示意图;
图7为本申请实施例提供的文本处理方法的第四种流程示意图;
图8为本申请实施例提供的文本处理方法的第五种流程示意图;
图9为本申请实施例提供的文本处理装置的一种结构示意图;
图10为本申请实施例提供的DLP设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如表1所示,表1为根据用户指定的包括多个单元格的格式化样本数据。
表1
姓名 | 学号 | 身份证号 |
AA | 1111111111 | 111111111111111111 |
BBB | 2222222222 | 222222222222222222 |
CCCC | 3333333333 | 333333333333333333 |
根据表1所示的样本数据中包括的每一单元格中的内容,对每一单元格进行哈希计算,可以得到该样本数据对应的EDM索引。其中,EDM索引可以表示为:
{总行数,总列数}{哈希值,长度}{哈希值,长度}{哈希值,长度}……。
若上述表1中AA对应的哈希值为1,1111111111对应的哈希值为2,以此类推,每一单元格的内容经哈希计算得到的哈希值分别为1-9,每一单元格的长度为每一单元格的内容的字节数,则表1对应的EDM索引可以表示为:{3,3}{1,2}{2,10}{3,18}{4,3}{5,10}{6,18}{7,4}{8,10}{9,18}。
上述EDM索引的表示方式还可以根据样本数据中每一单元格的排列顺序确定,仍以上述表1为例,EDM索引可以表示为:
{3,3}
{1,2}{2,10}{3,18}
{4,3}{5,10}{6,18}
{7,4}{8,10}{9,18}
其中,EDM索引中的第一行为样本数据中包括的单元格所对应的总行数以及总列数,EDM索引中其他行中的索引元素依次按照样本数据中每一单元的排列顺序进行排列,例如,EDM索引的第二行中的{1,2}与表1所示的样本数据中内容为AA的单元格对应。
在EDM匹配过程中,根据EDM索引中每一列的长度,也就是根据样本数据中每一列中每一单元格的长度,选取单元格长度所对应的个数最少的列作为关键列。例如,在3行2列样本数据中,第一列中每一单元格对应的长度分别为2,2,3,也就是第一列中单元格长度的个数为2,即长度2和长度3。第二列中每一单元格对应的长度分别为2,3,4,也就是第二列中单元格长度的个数为3,即长度2、长度3和长度4。3>2,在选取关键列时,可以将样本数据的第一列确定为关键列。
DLP设备根据关键列中每一单元格的长度,以及每一单元格对应的哈希值,可以获取长度相同的单元格,以及长度相同的单元格的哈希值和所在行的行号,基于获取的信息建立长度-哈希值-行号的映射关系。
如图1所示,图1为关键列与待检测文本匹配过程的一种示意图。其中,文本101为待检测文本。假设,关键列中单元格的长度为长度103的单元格有5个,分别为关键列中行号为行号1032、行号1303、行号1034、行号1036以及行号1037对应的单元格,其中,行号1032、行号1303和行号1034所对应的单元格的哈希值为哈希值1031,行号1036和行号1037所对应的单元格的哈希值为哈希值1035。单元格的长度为长度104的单元格为关键列中行号为行号1042和行号1043对应的单元格,其中,行号1042和行号1043对应单元格的哈希值为哈希值1041。基于此,DLP设备可建立长度103-哈希值1031-行号1032-行号1033-行号1034,长度103-哈希值1035-行号1036-行号1037,以及长度104-哈希值1041-行号1042-行号1043为对应的映射关系,如图1所示。
窗口102为根据关键列中每一单元格的长度确定的一滑动窗口。根据建立的映射关系中关键列对应的每一单元格的长度值,确定窗口102的长度。利用窗口102在文本101上滑动,计算窗口101中包括的文本内容的哈希值。检测关键列中是否存在与文本101匹配的单元格。以关键列中某一单元格的长度为长度104为例,在检测该单元格的内容是否与文本101匹配时,可以将窗口102的长度调整为长度104。利用窗口102在文本101上滑动,计算窗口102中包括的文本内容的哈希值,确定该哈希值是否与哈希值1041匹配。若匹配,则确定该单元格的内容与待检测文本匹配。若不匹配,则确定该单元格的内容与待检测文本不匹配。
当关键列中的某一单元格,如单元格1的内容与待检测文本匹配时,需要检测单元格1所在行中每一单元格的内容是否与待检测文本匹配,也就是检测映射关系中与单元格1行号相同的每一单元格的内容是否与待检测文本匹配。以图2为例,图2为扩展区域的一种示意图。文本201为待检测文本。窗口202为滑动窗口。根据单元格1所在行中每一单元格的长度值,确定一待扩展长度,即长度203或长度204,并在文本102中与单元格1所在位置,即窗口202所在位置的左右两侧各扩展该待扩展长度,得到扩展区域205。针对单元格1所在行中每一单元格,根据该单元格的长度重新确定窗口202的长度,并参照图1所示的匹配过程,确定该单元格的内容是否与扩展区域205中的文本内容匹配。
上述待扩展长度,也就是长度203或长度204具体可以表示为:
L=l1+d1,2+l2+d2,3+…+li-1+di-1,i+li
其中,l1为关键列中与待检测文本匹配的单元格所在行中的第一个单元格的长度,如与单元格1行号相同的第一个单元格的长度。l2为关键列中与待检测文本匹配的单元格所在行中的第二个单元格的长度。li-1为关键列中与待检测文本匹配的单元格所在行中的第i-1个单元格的长度,li关键列中与待检测文本匹配的单元格所在行中的第i个单元格的长度,d1,2为l1和l2之间允许的预设距离间隔,d2,2为l2和l3之间允许的预设距离间隔,di-1,i为li-1和li之间允许的预设距离间隔。
在上述EDM匹配过程中,由于关键列中每一单元格的长度不同,在检测关键列中是否存在与待检测文本匹配的单元格时,需要采用不同长度的滑动窗口反复计算待检测文本的文本内容所对应的哈希值,使得EDM匹配性能较差。
为了解决EDM匹配性能较差的问题,本申请实施例提供的一种文本处理方法。该方法可以适用于任一DLP设备,该DLP设备可以为专门用于进行DLP处理的设备,也可以为集成了DLP功能的设备,在此并不起限定作用。该方法从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值;利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配;若关键列中存在内容与待检测文本匹配的第一单元格,则获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值;利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配;若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
通过本申请实施例提供的方法,在利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中是否存在与待检测文本匹配的第一单元格时,可以利用第一滑动窗口在待检测文本上滑动,从而检测关键列中是否存在与待检测文本匹配的第一单元格。由于第一滑动窗口的长度是一固定值,也就是关键列中最小单元格的长度或预设长度阈值,这使得在EDM匹配过程中,不需要根据关键列中每一单元格的长度不断调整滑动窗口的长度,从而重复计算待检测文本的文本内容所对应的哈希值,有效的减少了对待检测文本进行哈希计算的次数,减少了哈希值计算所耗费的时间,提高了待检测文本与关键列中每一单元格的匹配效率,从而提高EDM匹配性能。
下面通过具体的实施例,对本申请实施例进行说明。
如图3所示,图3为本申请实施例提供的文本处理方法的第一种流程示意图。该方法应用于DLP设备,其中,DLP设备存储EDM索引,EDM索引包括多个哈希值数组,每个哈希值数组用于表示形成格式化样本数据的一个单元格。该方法具体包括以下步骤。
步骤S301,从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值。
在本步骤中,DLP设备可以根据指定的样本数据,利用滑动窗口以及样本数据中每一单元格的内容,计算该样本数据中每一单元格对应的第一哈希值数组,得到EDM索引。其中,滑动窗口的长度为样本数据中每一列中最小单元格长度或预设长度阈值。最小单元格为长度最小的单元格。DLP设备可以从该EDM索引中获取样本数据包括的关键列中每一单元格的第一哈希值数组。关键列中每一单元格的第一哈希值数组为是根据第一滑动窗口以及每一单元格的内容计算得到的。第一滑动窗口为关键列中最小单元格的长度或预设长度阈值。
为方便理解,以关键列为上述表1中的姓名所在的列为例进行说明。一般而言,姓名可以至少包括4个字节,即2个字,则该关键列中最小单元格的长度为4字节。DLP设备可以将第一滑动窗口的长度调整为4字节。在利用该第一滑动窗口确定关键列中每一单元格的第一哈希值数组时,针对长度为4字节的单元格,如内容为张三的单元格,DLP设备可以直接对张三进行哈希计算,得到该单元格对应的第一哈希值数组。针对长度大于4字节的单元格,如张三三,也就是长度6字节的单元格,DLP设备可以分别对张三以及三三进行哈希计算,根据张三和三三分别对应的哈希值得到该单元格对应的第一哈希值数组。如张三对应的哈希值为3,三三对应的哈希值为4,内容为张三三的单元格对应的第一哈希值数组可以表示为(3,4)。
下面以图4为例进行说明,图4为本申请实施例提供的文本检测的一种示意图。其中,文本401为待检测文本,窗口402为第一滑动窗口。哈希值数组404和哈希值数组403为两个不同的第一哈希值数组。
基于EDM索引,DLP设备可以建立长度-哈希值数组-行号的映射关系。如图4中建立的长度403-哈希值数组404-行号405-行号406,以及长度403-哈希值数组407-行号408的2组映射关系。若长度403与关键列中第一滑动窗口的长度相等,DLP设备可以根据图4所示的2组映射关系中包括的行号,获取关键列中每一单元格对应的第一哈希值数组。
一个可选的实施例中,在确定上述第一滑动窗口的长度时,若关键列中最小单元格的长度大于预设长度阈值,则第一滑动窗口的长度为预设长度阈值。若关键列中最小单元格的长度不大于预设长度阈值,则第一滑动窗口的长度为关键列中最小单元格的长度。
具体的,在确定上述第一滑动窗口的长度时,DLP设备可以将上述关键列中的最小单元格的长度与预设长度阈值比较。当关键列中最小单元格的长度大于预设长度阈值时,DLP设备可以确定第一滑动窗口的长度为预设长度阈值。当关键列中最小单元格的长度不大于预设长度阈值时,DLP设备可以确定第一滑动窗口的长度为关键列中最小单元格的长度。
例如,预设长度阈值为10字节。若关键列中最小单元格的长度为6字节,6字节<10字节,则DLP设备可以确定第一滑动窗口的长度为6字节。若关键列中最小单元格的长度为12字节,12字节>10字节,则DLP设备可以确定第一滑动窗口的长度为10字节。
在本申请实施例中,上述预设长度阈值可以是用户根据样本数据的具体情况进行设定或试验得到的。在此,对上述预设长度阈值不作具体限定。另外,DLP设备通过将样本数据中每一列的最小单元格的长度与预设阈值进行比较,有效限制了滑动窗口的长度,使得在待检测文本上滑动的第一滑动窗口的长度是唯一的,不需要根据关键列中每一单元格的长度进行调整,有效的减少了对待检测文本进行哈希计算的次数,减少了哈希值计算所耗费的时间,提高了待检测文本与关键列中每一单元格的匹配效率,从而提高EDM匹配性能。
步骤S302,利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配。若是,也就是关键列中存在内容与待检测文本匹配的第一单元格,则执行步骤S303。
在本步骤中,DLP设备可以利用滑动窗口在待检测文本上滑动。在第一滑动窗口滑动过程中,每滑动一次计算一次该第一滑动窗口中包括的文本内容的第一哈希值。基于滑动过程中计算得到的第一哈希值以及每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否存在与待检测文本匹配。若关键列中存在与待检测文本匹配的单元格的内容,DLP设备可以将关键列中内容与待检测文本内容匹配的单元格确定为第一单元格。这里,第一单元格的数量可以为一个或多个。关于关键列中每一单元格的内容是否与待检测文本匹配的检测方法具体可以参见下文描述,在此不作具体说明。
一个可选的实施例中,在DLP设备检测关键列中每一单元格的内容是否与待检测文本匹配时,DLP设备每一滑动一次第一滑动窗口,检测关键列中每一单元格的内容是否与待检测文本匹配,当检测到第一个内容与待检测文本匹配的第一单元格时,DLP设备可以暂停第一滑动窗口,执行步骤S303-步骤S304。在确定目标行的每一第二单元格的内容是否与待检测文本匹配后,根据实际需求,确定是否继续滑动第一滑动窗口,重新确定暂停滑动位置之后的文本内容是否与关键列中其他单元格的内容匹配。
另一个可选的实施例中,在DLP设备检测关键列中每一单元格的内容是否与待检测文本匹配时,DLP设备可以利用第一滑动窗口在待检测文本上滑动,检测出内容与待检测文本匹配的每一第一单元格,以及待检测文本中与每一第一单元格的内容匹配的文本内容所在的位置,从而针对检测出的每一第一单元格执行后续步骤S303-步骤S304。
步骤S303,获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值。
在本步骤中,当关键列中存在内容与待检测文本匹配的第一单元格时,DLP设备可以将样本数据中第一单元格所在的行作为目标行,获取该目标行中包括的每一第二单元格对应的第二哈希值数组。也就是从上述EDM索引中获取行号与上述第一单元格行号相同的每一第二单元格对应的第二哈希值数组。其中,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组。该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值。第二单元格可以包括上述第一单元格。
上述第二哈希值数组与上述第一哈希值数组的计算方式相同,在此对第二哈希值数组的计算方式不作具体说明。
一个可选的实施例中,针对每一第二单元格,在确定该第二单元格对应的第二滑动窗口的长度时,若该第二单元格所在列中最小单元格的长度大于预设长度阈值,则第二滑动窗口的长度为预设长度阈值。若该第二单元格所在列中最小单元格的长度不大于预设长度阈值,则第二滑动窗口的长度为该第二单元格所在列中最小单元格的长度。关于第二滑动窗口的长度的确定可以参照上述第一滑动窗口的长度确定方法,在此不作具体说明。
一个可选的实施例中,当上述关键列中不存在内容与待检测文本匹配的第一单元格时,DLP设备可以确定待检测文本与关键列中的每一单元格的内容均不匹配。此时,DLP设备可以确定待检测文本与EDM索引/样本数据不匹配。DLP设备可以对该待检测文本不进行DLP处理。例如,待检测文本为一邮件,当关键列中不存在与待检测文本匹配的第一单元格,也就是该邮件中不包括与关键列中每一单元格的内容匹配的文本内容时,DLP设备可以正常处理该邮件,如转发,删除等。
步骤S304,利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配。
在本步骤中,针对上述目标行中的每一第二单元格,利用该第二单元格对应的第二滑动窗口在待检测文本上滑动,计算该第二滑动窗口中包括的文本内容的第二哈希值。根据滑动过程中计算得到的第二哈希值,以及该第二单元格对应的第二哈希值数组,DLP设备可以检测第二单元格的内容是否与待检测文本匹配。关于检测第二单元格的内容是否与待检测文本匹配的具体方法,可以参照下文对关键列中每一单元格的内容是否与待检测文本匹配进行检测的方法,在此不作具体说明。
步骤S305,若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
在本步骤中,当上述目标行中每一第二单元格的内容均可以与待检测文本匹配时,DLP设备可以确定待检测文本与目标行匹配。此时,DLP设备可以按照EDM索引对应的安全策略对待检测文本进行处理。
关于上述EDM索引对应的安全策略可以为预先设定的安全策略,例如,当目标行中所有第二单元格的内容均与待检测文本匹配时,DLP设备可以对待检测文本进行加密处理等。在此,对上述安全策略不作具体限定。
一个可选的实施例中,在上述步骤S305中,按照EDM索引对应的安全策略对待检测文本进行处理,可以包括以下步骤。
步骤S3051,检测样本数据中与待检测文本匹配的行的数量是否小于预设行数阈值。若否,则执行步骤S3052。
在本步骤中,在目标行中每一第二单元格的内容均可以与待检测文本匹配时,也就是目标行与待检测文本匹配时,DLP设备可以检测样本数据中与待检测文本匹配的行的数量是否小于预设行数阈值。当与待检测文本匹配的行的数量不小于预设行数阈值时,执行步骤S3052。
在本申请实施例中,上述预设行数阈值可以根据实际需求,如用户需求,以及样本数据的重要程度等进行设定。例如,样本数据中每一行中的内容都非常重要时,上述预设行数阈值可以为1。在此,对上述预设行数阈值不作具体限定。
步骤S3052,按照EDM索引对应的安全策略对待检测文本进行处理。
在本步骤中,在确定与待检测文本匹配的行的数量不小于预设行数阈值时,DLP设备可以按照EDM索引对应的安全策略对待检测文本进行处理。
一个可选的实施例中,当上述EDM索引中与待检测文本匹配的行的数量小于上述预设行数阈值时,DLP设备可以正常处理待检测文本,也就是对待检测文本不进行DLP处理。例如,待检测文本为一待发送的邮件,在确定EDM索引中与该邮件匹配的行的数量小于预设行数阈值,DLP设备可以正常发送该邮件。
DLP设备根据实际情况以及样本数据的重要性等设置预设行数阈值,当与待检测文本匹配的行的数量大于或等于预设行数阈值时,按照安全策略对待检测文本进行处理,使得DLP设备处理更加灵活,降低了数据泄露的风险,提高了数据的安全性。
一个可选的实施例中,当上述目标行中任一第二单元格与待检测文本不匹配时,DLP设备可以中止检测目标行中每一第二单元格的内容是否与待检测文本匹配的步骤。此时,DLP设备可以确定目标行与待检测文本不匹配。
在本申请实施例中,上述匹配过程中,DLP设备优先将关键列中的每一单元格的内容与待检测文本进行匹配,然后才将目标行中的每一第二单元格的内容与待检测文本进行匹配。除此以外,DLP设备也可以优先将样本数据中的某一行中每一单元格的内容与待检测文本进行匹配,然后将该行中内容与待检测文本匹配的单元格所在列的每一单元格的内容与待检测文本进行匹配。关于匹配的行和列的顺序,具体可以根据样本数据中每一行和每一列所表示的物理意义确定,在此不作具体限定。
综上所述,通过本申请实施例提供的方法,在利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中是否存在与待检测文本匹配的第一单元格时,可以利用第一滑动窗口在待检测文本上滑动,从而检测关键列中是否存在与待检测文本匹配的第一单元格。由于第一滑动窗口的长度是一固定值,也就是关键列中最小单元格的长度或预设长度阈值,这使得在EDM匹配过程中,不需要根据关键列中每一单元格的长度不断调整滑动窗口的长度,从而重复计算待检测文本的文本内容所对应的哈希值,有效的减少了对待检测文本进行哈希计算的次数,减少了哈希值计算所耗费的时间,提高了待检测文本与关键列中每一单元格的匹配效率,从而提高EDM匹配性能。
一个可选的实施例中,上述步骤S301,从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,具体可以包括以下步骤。
步骤S3011,检测样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值。若是,则执行步骤S3012。若否,则执行步骤S3013。
在本步骤中,DLP设备可以检测样本数据中每一单元格的长度。根据每一单元格对应的长度,选取长度最小的单元格,将该单元格的长度与预设长度阈值进行比较,确定该单元格的长度是否大于预设长度阈值。
步骤S3012,将样本数据的每一单元格中最小单元格所在的列作为关键列。
在本步骤中,当样本数据的每一单元格中的最小单元格的长度大于预设长度阈值时,DLP设备可以将样本数据的每一单元格中最小单元格所在的列确定为关键列。以预设长度阈值为10字节为例进行说明。若样本数据的每一单元格中最小单元格的长度为12字节,12字节>10字节,DLP设备可以将该最小单元格所在的列确定为关键列。
步骤S3013,计算样本数据中每一列对应的最小单元格的长度与预设长度阈值间的差值,并将最小差值对应的最小单元格所在的列作为关键列。
在本步骤中,当样本数据的每一单元格中的最小单元格的长度不大于预设长度阈值时,DLP设备可以计算样本数据中每一列对应的最小单元格的长度与预设长度阈值之间的差值。DLP设备可以将最小差值对应的最小单元格所在的列作为关键列。仍以预设长度阈值为10字节为例进行说明。若样本数据中包括3列,每一列中最小单元格的长度分别为4字节、7字节和9字节。在确定关键列时,DLP设备可以分别计算每一列中最小单元格的长度与预设长度阈值之间的差值,即10-4=6,10-7=3,10-9=1,6>3>1,DLP设备可以将样本数据中差值1所对应的最小单元格所在的列确定为关键列。
一个可选的实施例中,当满足上述条件的列的数量有多个时,也就是当样本数据的每一单元格中的最小单元格的长度大于预设长度阈值,且该最小单元格的数量不唯一时,或者,当样本数据的每一单元格中的最小单元格的长度不大于预设长度阈值,且最小差值对应的最小单元格的数量不唯一时,DLP设备可以选取长度最小的列作为关键列,或者长度对应的个数最少的列作为关键列。
步骤S3014,从EDM索引中获取样本数据包括的关键列中每一单元格对应的哈希值数组,作为第一哈希值数组。
在本步骤中,DLP设备可以根据样本数据包括的关键列中每一单元格对应的行号和列号,从EDM索引中获取对应单元格的哈希值数组,作为第一哈希值数组。
在本申请实施例中,通过检测样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值,从而将样本数据的每一单元格中最小单元格所在的列确定为关键列,或将样本数据中每一列对应的最小单元格中长度与预设长度阈值间的差值最小的最小单元格所在的列作为关键列,这有效的控制了样本数据包括的关键列中最小单元格的长度,使得第一滑动窗口的长度得到有效控制。
一个可选的实施例中,上述步骤S302,利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配,具体可以包括以下步骤。
步骤S3021,在待检测文本上滑动第一滑动窗口,采用Rabin-Karp算法,计算待检测文本位于第一滑动窗口中的文本内容的第一哈希值。
在本步骤中,DLP设备可以在待检测文本上滑动第一滑动窗口,并采用Rabin-Karp算法,计算该待检测文本位于第一滑动窗口中的文本内容的第一哈希值。也就是第一滑动窗口滑动过程中,计算第一滑动窗口中包括的待检测文本的文本内容的第一哈希值。
具体的,DLP设备可以利用以下公式,确定第一滑动窗口中包括的文本内容的第一哈希值H(ts+1,…,s+m):
H(p)=(p0*dm-1+p1*dm-2+…+pm-1*d0)mod q
H(ts+1,…,s+m)=[d*(H(ts,…,s+m-1)-ts*dm-1)+ts+m]mod q
其中,H(p)为预设模式串对应的哈希值,m为模式串中包括的字符串数量,p0为预设模式串中第1个字符串,p1为预设模式串中第2个字符串,pm-1为预设模式串中第m个字符串,d为基数,表示预设模式串中字符串所对应的进制数为d,H(ts+1,…,s+m)为第一滑动窗口中包括的从待检测文本的第s+1个字符串到第s+m个字符串对应的哈希值,H(ts,…,s+m-1)为待检测文本中第s个字符串到第s+m-1个字符串对应的哈希值,ts为待检测文本中第s个字符串,ts+m为待检测文本中第s+m个字符串,mod为求余操作,q为素数。
采用Rabin-Karp算法,一次哈希值过程所对应的时间复杂度O(m)=n-m+1。
步骤S3022,针对关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值与计算得到的第一哈希值进行匹配。
在本步骤中,DLP设备可以针对样本数据包括的关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值,与第一滑动窗口滑动过程中计算得到的第一哈希值进行比较,确定该单元格对于的第一哈希值数组中的每一哈希值是否都可以与计算得到的第一哈希值匹配。
步骤S3023,确定该单元格的内容与待检测文本匹配。
在本步骤中,针对关键列中的每一单元格,在确定该单元格对应的第一哈希值数组中的每一哈希值均与计算得到的第一哈希值匹配时,DLP设备可以确定该单元格的内容与待检测文本匹配。
一个可选的实施例中,针对关键列中的每一单元格,在确定该单元格对应的第一哈希值数组中的任一哈希值与计算得到的第一哈希值不匹配时,DLP设备可以确定该单元格的内容与待检测文本不匹配。
为方便理解仍以上述张三、张三三以及图4为例进行说明。由于关键列中每一单元格对应的第一哈希值数组是利用窗口402计算得到的。在利用窗口402在文本401上滑动时,某一时刻,计算得到该窗口402中包括的文本内容的第一哈希值为3时,DLP设备可以继续滑动窗口402,计算滑动后的窗口402中包括的文本内容的第一哈希值,若滑动后的窗口402中包括的文本内容的第一哈希值为4,则DLP设备可以确定关键列中张三三所在的单元格的内容与文本401匹配。此时,DLP设备可以确定关键列中内容为张三三的单元格为上述第一单元格。若滑动后的窗口402中包括的文本内容的第一哈希值不为4,则DLP设备可以确定关键列中张三所在的单元格是与文本401匹配的第一单元格。
在本申请实施例中,由于关键列中每一单元格对应的第一哈希值数组中包括至少一个第一哈希值,因此,在检测关键列中是否存在与待检测文本匹配的第一单元格时,若第一滑动窗口中包括的待检测文本的文本内容,与关键列中某一单元格或多个单元格对应的第一哈希值数组中排列在第一个的哈希值匹配,DLP设备可以继续滑动第一滑动窗口,计算滑动后的第一滑动窗口中包括的文本内容的第一哈希值,并将该第一哈希值与第一哈希值数组中排列在第二个的哈希值匹配,直至确定出内容与待检测文本匹配的第一单元格。
在本申请实施例中,DLP设备在第一滑动窗口滑动过程中,利用Rabin-Karp算法,计算第一滑动窗口中包括的待检测文本的文本内容对应的第一哈希值,有效降低了哈希值计算过程中的时间复杂度,缩短了哈希值计算的时间,提高了与待检测文本匹配的效率,提升了EDM匹配的性能。
在本申请实施例中,上述的第二滑动窗口滑动过程中,计算得到的第二滑动窗口中包括的待检测文本的文本内容的第二哈希值,也可以采用上述Rabin-Karp算法计算得到,在此不作具体说明。
一个可选的实施例中,针对上述步骤S304,利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配,具体可以包括以下步骤:
步骤S3041,根据第一单元格所在目标行中包括的每一第二单元格的长度,确定待扩展长度。
在本步骤中,DLP设备可以根据第一单元格所在目标行中每一第二单元格对应的长度,以及预设距离间隔,确定待扩展长度。具体可参见上述如图2所示的待扩展长度的计算方法,在此,对待扩展长度的计算方法不作具体限定。
步骤S3042,在待检测文本中与第一单元格内容匹配的文本内容所在位置的左右两侧各扩展待扩展长度,得到扩展区域。
在本步骤中,DLP设备可以根据待检测文本中与第一单元格匹配的文本内容所在的位置,在该位置左右两侧各扩展待扩展长度,得到扩展区域,如图2所示的扩展区域205。
步骤S3043,利用每一第二单元格对应的第二滑动窗口,检测第二单元格的内容是否与扩展区域中的文本内容匹配。
在本步骤中,DLP设备利用每一第二单元格对应的第二滑动窗口在扩展区域上滑动,检测第二单元格的内容是否与扩展区域中的文本内容匹配。
在本申请实施例中,通过检测待检测文本的扩展区域中包括的文本内容是否与每一第二单元格的内容匹配,优化了EDM匹配的过程,缩短了匹配的耗时,提高了EDM匹配的效率。
一个可选的实施例中,根据图3所示的文本处理方法,本申请实施例还提供了一种文本处理方法。如图5所示,图5为本申请实施例提供的文本处理方法的第二种流程示意图。该方法具体包括以下步骤。
步骤S501,确定样本数据。
在本步骤中,用户可以指定格式化文件中的部分数据或全部数据,作为样本数据。该样本数据是由多行多列的单元格组成的。DLP设备获取该样本数据。
在本申请实施例中,上述格式化文件包括但不限于逗号分隔值(英文:Comma-Separated Values,简称:CSV)格式、电子表格格式的文件。
步骤S502,针对样本数据中的每一单元格,判断该单元格所在列中最小单元格的长度是否大于预设长度阈值。若否,则执行步骤S503。若是,则执行步骤S504。
在本步骤中,针对上述样本数据中的每一单元格,DLP设备可以将该单元格所在列中最小单元格的长度与预设长度阈值进行比较,确定该单元格所在列中最小单元格的长度是否大于预设长度阈值。
步骤S503,根据长度为该单元格所在列中最小单元格的长度的第三滑动窗口,以及该单元格的内容,计算该单元格的哈希值数组。
在本步骤中,当该单元格所在列中最小单元格的长度不大于预设长度阈值时,DLP设备可以根据第三滑动窗口以及该单元格的内容,计算该单元格的哈希数组。其中,该第三滑动窗口的长度为该单元格所在列中最小单元格的长度。
步骤S504,根据长度为预设长度阈值的第三滑动窗口,以及该单元格的内容,计算该单元格的哈希值数组。
在本步骤中,当该单元格所在列中最小单元格的长度大于预设长度阈值时,DLP设备可以根据第三滑动窗口以及该单元格的内容,计算该单元格的哈希数组。其中,该第三滑动窗口的长度为预设长度阈值。
步骤S505,将样本数据中每一单元格对应的哈希值数组作为EDM索引中与每一单元格对应的索引元素,得到EDM索引。
一个实施例中,DLP设备可以将样本数据中每一单元格对应的第一哈希值数组,按照样本数据中每一单元格的排列顺序,映射为EDM索引中每一单元格对应的索引元素,得到EDM索引。在此,对EDM索引的生成方式不作具体限定。
步骤S506,从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值。
步骤S507,利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配。若是,也就是关键列中存在内容与待检测文本匹配的第一单元格,则执行步骤S508。
步骤S508,获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值。
步骤S509,利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配。
步骤S510,若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
上述步骤S506-步骤S510与上述步骤S301-步骤S305相同。
通过图5所示的文本处理方法,利用第三滑动窗口,计算样本数据中每一单元格的第一哈希值数组,使得后期在对待检测文本进行检测时,可以利用第一滑动窗口和第二滑动窗口在待检测文本上滑动,减少了对待检测文本进行哈希值计算的次数,缩短了哈希值计算所需的时间,提高了文本匹配的效率。
一个可选的实施例中,根据图3所示的文本处理方法,本申请实施例还提供了一种文本处理方法。如图6所示,图6为本申请实施例提供的文本处理方法的第三种流程示意图。该方法具体包括以下步骤。
步骤S601,从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值。
步骤S602,利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配。若是,也就是关键列中存在内容与待检测文本匹配的第一单元格,则执行步骤S603。
步骤S603,获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值。
上述步骤S601-步骤S603与上述步骤S301-步骤S303相同。
步骤S604,将计算得到的第一哈希值与待检测文本的文本内容的对应关系缓存至缓存空间。
在本步骤中,DLP设备可以根据第一滑动窗口滑动过程中计算得到的第一哈希值,与第一滑动窗口中包括的待检测文本的文本内容之间的对应关系,将该对应关系缓存到缓存空间中。
步骤S605,在待检测文本上滑动每一第二单元格对应的第二滑动窗口,检测缓存空间中是否存在包含第二滑动窗口中包括的文本内容的目标对应关系。若是,则执行步骤S606。
在本步骤中,DLP设备在利用每一第二单元格对应的第二滑动窗口在待检测文本上滑动时,DLP设备可以根据第二滑动窗口中包括的待检测文本的文本内容,检测上述缓存空间中是否包含该文本内容的目标对应关系。
为方便理解,仍以上述张三为例进行说明。某一时刻,DLP设备在以第二滑动窗口在待检测文本上滑动时,该第二滑动窗口中包括的文本内容为张三,DLP设备可以根据第二滑动窗口中包括的张三,检测缓存空间中是否存在包含张三的目标对应关系。
步骤S606,针对每一第二单元格,将该第二单元格对应的第二哈希值数组中的每一哈希值,与目标对应关系包括的第一哈希值进行匹配。若均匹配,则执行步骤S607。若不均匹配,则执行步骤S609。
在本步骤中,当检测到缓存空间中包含有第二滑动窗口包括的文本内容的目标对应关系时,DLP设备可以针对上述目标行中的每一第二单元格,将该第二单元格对应的第二哈希值数组中每一哈希值,与目标对应关系中包括的第一哈希值进行比较,确定该第二单元格对应的第二哈希值数组中的每一哈希值是否均与目标对应关系中的第一哈希值匹配。关于每一第二单元格对应的第二哈希值数组和目标对应关系中包括的第一哈希值的匹配方法,可参照上述对关键列中每一单元格的内容是否与待检测文本匹配的检测方法,在此不作具体说明。
一个可选的实施例中,当检测到上述缓存空间中不存在包含第二滑动窗口中包括的文本内容的目标对应关系时,DLP设备可以根据第二滑动窗口中包括的文本内容,计算该文本内容对应的第一哈希值,并将计算得到第一哈希值与第二滑动窗口中包括的文本内容的对应关系缓存在上述缓存空间中。根据计算得到的第一哈希值以及该第二单元格对应的第二哈希值数组,检测该第二单元格内容是否与待检测文本匹配。
步骤S607,确定该第二单元格的内容与待检测文本匹配。
在本步骤中,当上述目标行中的任一第二单元格对应的第二哈希值数组与目标对应关系中包括的第一哈希值匹配时,DLP设备可以确定该第二单元格的内容与待检测文本匹配。此时,当目标行中的每一第二单元格的内容均与待检测文本匹配时,DLP设备可以确定样本数据的目标行与待检测文本匹配。
步骤S608,若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
上述步骤S608-与上述步骤S305相同。
步骤S609,确定该第二单元格的内容与待检测文本不匹配。
在本步骤中,当上述目标行中的任一第二单元格对应的第二哈希值数组与目标对应关系中包括的第一哈希值不匹配时,DLP设备可以确定该第二单元格的内容与待检测文本不匹配。此时,DLP设备可以确定样本数据的目标行与待检测文本不匹配。
在本申请实施例中,除了对计算得到的第一哈希值与待检测文本的文本内容的对应关系进行缓存以外,DLP设备还可以对计算得到的第二哈希值及其对应的待检测文本中的文本内容的对应关系进行缓存。
通过图6所示的文本处理方法,DLP设备对滑动窗口中包括的文本内容及该文本内容对应的哈希值进行缓存,使得DLP设备在检测EDM索引中单元格的内容是否与待检测文本是否匹配时,可以直接从缓存空间中获取已经缓存的第一哈希值,避免了重复对相同文本内容进行哈希值计算,提高了哈希值确定的效率。另外,由于滑动窗口的最大长度为预设长度阈值,这提高了滑动窗口中包括的文本内容对应的哈希值复用的可能性,减小了哈希值计算所需的时间,提高了EDM匹配的性能。
一个可选的实施例中,针对上述缓存空间中缓存的对应关系,DLP设备可以采用不同的形式标识该对应关系。例如,计算得到的哈希值是滑动窗口在待检测文本上滑动过程中计算得到的。DLP设备可以根据滑动窗口的长度,滑动窗口的滑动起始位置,滑动窗口的滑动终止位置,以及滑动过程中计算得到的多个哈希值,建立窗口长度、起始位置、终止位置以及哈希值的对应关系,并将该对应关系缓存到缓存空间中。在检测第二单元格是否与待检测文本匹配时,DLP设备可以根据第二滑动窗口的长度、第二滑动窗口的滑动起始位置,检测缓存空间中是否存在包含第二滑动窗口中包括的文本内容的目标对应关系,进而检测该第二单元格是否与待检测文本匹配。
一个可选的实施例中,根据图3所示的文本处理方法,本申请实施例还提供了一种文本处理方法。如图7所示,图7为本申请实施例提供的文本处理方法的第四种流程示意图。该方法具体包括以下步骤。
步骤S701,从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值。
步骤S702,利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配。若是,也就是关键列中存在内容与待检测文本匹配的第一单元格,则执行步骤S703。
上述步骤S701-步骤S702与上述步骤S301-步骤S302。
步骤S703,获取第一单元格对应的第三哈希值,该第三哈希值是根据第一单元格的内容计算得到的。
在本步骤中,在确定样本数据包括的关键列中存在内容与待检测文本匹配的第一单元格时,DLP设备可以针对上述样本数据中包括的每一单元格,根据每一单元格的内容计算每一单元格对应的第三哈希值。该第三哈希值用于降低哈希碰撞的概率。在确定关键列中存在内容与待检测文本匹配的第一单元格后,DLP设备可以获取上述第一单元格对应的第三哈希值。
一个实施例中,DLP设备可以根据上述样本数据中每一单元格的内容,利用APHash算法,计算每一单元格对应的第三哈希值。其中,APHash是由阿拉什·帕托(英文:ArashPartow)提出的一种哈希算法,AP为Arash Partow的姓名的首个字母。
在本申请实施例中,上述第三哈希值与第一哈希值数组共同组成上述EDM索引。
步骤S704,计算待检测文本中与第一单元格匹配的文本内容对应的第四哈希值。
在本步骤中,DLP设备可以根据待检测文本中与第一单元格匹配的文本内容,利用与上述第三哈希值计算方法相同的计算方法,计算该文本内容对应的第四哈希值。
步骤S705,判断第四哈希值与第一单元格对应的第三哈希值是否匹配。若是,则执行步骤S706。
在本步骤中,DLP设备可以将第四哈希值与第一单元格对应的第三哈希值进行比较,判断第四哈希值是否与第三哈希值相同。若相同,则DLP设备可以确定第四哈希值与第三哈希值匹配。若不相同,则DLP设备可以确定第三哈希值与第四哈希值不匹配。DLP设备可以在第四哈希值与第三哈希值匹配时,执行步骤S706。
步骤S706,获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值。
在本步骤中,当第四哈希值与第一单元格对应的第三哈希值匹配时,DLP设备可以获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组。具体参见上述步骤S303。
一个可选的实施例中,当上述第四哈希值与第一单元格对应的第三哈希值不匹配时,DLP设备可以确定第一单元格与待检测文本不匹配。此时,DLP设备可以正常处理待检测文本。
步骤S707,利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配。
步骤S708,若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
上述步骤S707-步骤S708与上述步骤S304-步骤S305相同。
通过图7所示的文本处理方法,通过引入第三哈希值降低了哈希碰撞的概率,提高了EDM匹配的准确性,提升EDM匹配性能。
为方便理解,以图8为例对上述文本处理方法进行说明。图8为本申请实施例提供的文本处理方法的第五种流程示意图。该方法包括以下步骤。
步骤S801,根据样本数据,生成EDM索引。
在本步骤中,DLP设备在确定指定的样本数据后,可以根据样本数据中每一列最小单元格的长度和预设长度阈值,确定每一列对应的滑动窗口的长度。针对样本数据中每一列中的每一单元格,根据该列对应的滑动窗口和该单元格的内容,利用Rabin-Karp算法,计算每一单元格的第一哈希值数组。DLP设备还可以根据样本数据中每一单元格的内容,利用APHash算法,计算每一单元格的AP哈希值,也就是上述第三哈希值。DLP设备可以将样本数据中的每一单元格的第一哈希数组和AP哈希值作为EDM索引中与每一单元格对应的索引元素,得到EDM索引。该EDM索引具体可以表示为:{总行数,总列数}{第一哈希值数组,AP哈希值,长度}{第一哈希值数组,AP哈希值,长度}{第一哈希值数组,AP哈希值,长度}…。
步骤S802,确定样本数据包括的关键列。
在本步骤中,DLP设备可以将样本数据中的最小单元格的长度与预设长度阈值进行比较。若样本数据中最小单元格的长度小于预设长度阈值,则DLP设备可以将样本数据中最小单元格所在的列确定为关键列。若样本数据中最小单元格的长度不小于预设长度阈值,则DLP设备可以将样本数据的所有列对应的最小单元格中长度与预设长度阈值最接近的最小单元格所在的列确定为关键列。
步骤S803,检测关键列中是否存在内容与待检测文本匹配的第一单元格。若是,则执行步骤S804。
在本步骤中,DLP设备可以利用关键列所对应的滑动窗口在待检测文本上滑动,利用Rabin-Karp算法,计算滑动窗口中包括的文本内容的第一哈希值,根据计算得到的第一哈希值,检测关键列中每一单元格对应的第一哈希值数组中的每一哈希值是否均与滑动窗口计算得到的第一哈希值匹配,从而确定关键列中是否存在内容与待检测文本匹配的第一单元格。若不存在第一单元格,则正常处理待检侧文本。若存在第一单元格,则执行步骤S804。
步骤S804,判断待检测文本中与第一单元格匹配的文本内容的AP哈希值是否与第一单元格对应的AP哈希值匹配。若是,则执行步骤S805。
在本步骤中,在确定关键列中存在第一单元格后,DLP设备可以利用APHash算法,计算待检测文本中与第一单元格匹配的文本内容的AP哈希值,即上述第四哈希值。将该AP哈希值与EDM索引中第一单元格对应的AP哈希值进行匹配。若不匹配,则确定第一单元格与待检测文本不匹配,DLP设备可以正常处理待检测文本。若匹配,则执行步骤S805。
步骤S805,检测样本数据的目标行是否与待检测文本匹配。若是,则执行步骤S806。
在本步骤中,在确定待检测文本中与第一单元格匹配的文本内容的AP哈希值与第一单元格的AP哈希值匹配后,DLP设备可以将该第一单元格所在的行确定为目标行。针对目标行中的每一第二单元格,检测该第二单元格的内容是否与待检测文本匹配。也就是在待检测文本与第一单元格匹配的文本内容所在的位置处进行扩展,得到扩展区域。根据每一第二单元格所在列对应的滑动窗口,检测该第二单元格是否与扩展区域中的文本内容匹配。当任一第二单元格的内容与扩展区域中的文本内容不匹配时,DLP设备可以确定目标行与待检测文本不匹配。此时,DLP设备可以正常处理待检测文本。当每一第二单元格的内容均与扩展区域中的文本内容匹配时,DLP设备可以确定目标行与待检测文本匹配,执行步骤S806。
步骤S806,对待检测文本进行DLP处理。
在本步骤中,在确定目标行与待检测文本匹配后,DLP设备可以对待检测文本进行DLP处理,也就是按照EDM索引对应的安全策略对待检测文本进行处理。
基于同一种发明构思,根据上述本申请实施例提供的文本处理方法,本申请实施还提供了一种文本处理装置,应用于DLP设备,其中,DLP设备存储EDM索引,EDM索引包括多个哈希值数组,每个哈希值数组用于表示形成格式化样本数据的一个单元格。如图9所示,图9为本申请实施例提供的文本处理装置的一种结构示意图。该装置包括以下模块。
第一获取模块901,从EDM索引中用于获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值。
第一检测模块902,用于利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配。
第二获取模块903,用于在关键列中存在内容与待检测文本匹配的第一单元格时,获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值。
第二检测模块904,用于利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配。
处理模块905,用于若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
可选的,上述处理模块905,具体可以用于检测样本数据中与待检测文本匹配的行的数量是否小于预设行数阈值;若否,则按照EDM索引对应的安全策略对待检测文本进行处理。
可选的,上述文本处理装置还可以包括:
确定模块,用于确定样本数据。
判断模块,用于针对样本数据中的每一单元格,判断该单元格所在列中最小单元格的长度是否大于预设长度阈值。
第一计算模块,用于在判断模块的判断结果为否时,根据长度为该单元格所在列中最小单元格的长度的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组。
第二计算模块,用于在判断模块的判断结果为是时,根据长度为预设长度阈值的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组。
生成模块,用于将样本数据中每一单元格对应的哈希值数组作为EDM索引中与第一单元格对应的索引元素,得到EDM索引。
可选的,上述第一获取模块901,具体可以用于检测样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值;若是,则将样本数据的每一单元格中最小单元格所在的列作为关键列;若否,则计算样本数据中每一列对应的最小单元格的长度与预设长度阈值间的差值,并将最小差值对应的最小单元格所在的列作为关键列;从EDM索引中获取样本数据包括的关键列中每一单元格对应的哈希值数组,作为第一哈希值数组。
可选的,上述第一检测模块902,具体可以用于在待检测文本上滑动第一滑动窗口,采用Rabin-Karp算法,计算待检测文本位于第一滑动窗口中的文本内容的第一哈希值;针对关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值与计算得到的第一哈希值进行匹配;若均匹配,则确定该单元格的内容与待检测文本匹配。
可选的,上文本处理装置还可以包括:
缓存模块,用于将计算得到的第一哈希值与待检测文本的文本内容的对应关系缓存至缓存空间。
上述第二检测模块904,具体可以用于在待检测文本上滑动每一第二单元格对应的第二滑动窗口,检测缓存空间中是否存在包含第二滑动窗口中包括的文本内容的目标对应关系;若是,则针对每一第二单元格,将该第二单元格对应的第二哈希值数组中的每一哈希值,与目标对应关系包括的第一哈希值进行匹配;若均匹配,则确定该第二单元格的内容与待检测文本匹配;若不均匹配,则确定该第二单元格的内容与待检测文本不匹配。
通过本申请实施例提供的装置,在利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中是否存在与待检测文本匹配的第一单元格时,可以利用第一滑动窗口在待检测文本上滑动,从而检测关键列中是否存在与待检测文本匹配的第一单元格。由于第一滑动窗口的长度是一固定值,也就是关键列中最小单元格的长度或预设长度阈值,这使得在EDM匹配过程中,不需要根据关键列中每一单元格的长度不断调整滑动窗口的长度,从而重复计算待检测文本的文本内容所对应的哈希值,有效的减少了对待检测文本进行哈希计算的次数,减少了哈希值计算所耗费的时间,提高了待检测文本与关键列中每一单元格的匹配效率,从而提高了EDM匹配性能。
基于同一种发明构思,根据上述本申请实施例提供的文本处理方法,本申请实施还提供了一种DLP设备,如图10所示,包括处理器1001和机器可读存储介质1002,机器可读存储介质1002存储有能够被处理器1001执行的机器可执行指令。
另外,如图10所示,DLP设备还可以包括:通信接口1003和通信总线1004;其中,处理器1001、机器可读存储介质1002、通信接口1003通过通信总线1004完成相互间的通信,通信接口1003用于上述DLP设备与其他设备之间的通信。
处理器1001被机器可执行指令促使实现如下步骤:
从EDM索引中获取样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,该第一滑动窗口的长度为关键列中最小单元格的长度或预设长度阈值;
利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中每一单元格的内容是否与待检测文本匹配;
若关键列中存在内容与待检测文本匹配的第一单元格,则获取第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,该第二滑动窗口的长度为第二单元格所在列中最小单元格的长度或预设长度阈值;
利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与待检测文本匹配;
若所有第二单元格的内容均与待检测文本匹配,则按照EDM索引对应的安全策略对待检测文本进行处理。
上述通信总线1004可以是外设部件互连标准(英文:Peripheral ComponentInterconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended Industry StandardArchitecture,简称:EISA)总线等。该通信总线1004可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
机器可读存储介质1002可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。另外,机器可读存储介质1002还可以是至少一个位于远离前述处理器的存储装置。
上述处理器1001可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP数字信号处理器)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过本申请提供的DLP设备,在利用第一滑动窗口以及关键列中每一单元格对应的第一哈希值数组,检测关键列中是否存在与待检测文本匹配的第一单元格时,可以利用第一滑动窗口在待检测文本上滑动,从而检测关键列中是否存在与待检测文本匹配的第一单元格。由于第一滑动窗口的长度是一固定值,也就是关键列中最小单元格的长度或预设长度阈值,这使得在EDM匹配过程中,不需要根据关键列中每一单元格的长度不断调整滑动窗口的长度,从而重复计算待检测文本的文本内容所对应的哈希值,有效的减少了对待检测文本进行哈希计算的次数,减少了哈希值计算所耗费的时间,提高了待检测文本与关键列中每一单元格的匹配效率,从而提高了EDM匹配性能。
基于同一种发明构思,根据上述本申请实施例提供的文本处理方法,本申请实施还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,该机器可执行指令促使处理器:实现上述任一文本处理方法步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、DLP设备及机器可读存储介质等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种文本处理方法,其特征在于,应用于数据泄露防护DLP设备,所述DLP设备存储精确数据匹配EDM索引,所述EDM索引包括多个哈希值数组,每个哈希值数组用于表示形成格式化样本数据的一个单元格,所述方法包括:
从所述EDM索引中获取所述样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,所述第一滑动窗口的长度为所述关键列中最小单元格的长度或预设长度阈值;其中,当所述关键列中最小单元格的长度大于所述预设长度阈值时,所述第一滑动窗口的长度为所述预设长度阈值;
利用所述第一滑动窗口以及所述关键列中每一单元格对应的第一哈希值数组,检测所述关键列中每一单元格的内容是否与待检测文本匹配;
若所述关键列中存在内容与所述待检测文本匹配的第一单元格,则获取所述第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,所述第二滑动窗口的长度为所述第二单元格所在列中最小单元格的长度或所述预设长度阈值;其中,当所述第二单元格所在列中最小单元格的长度大于所述预设长度阈值时,所述第二滑动窗口的长度为所述预设长度阈值;
利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与所述待检测文本匹配;
若所有第二单元格的内容均与所述待检测文本匹配,则按照所述EDM索引对应的安全策略对所述待检测文本进行处理。
2.根据权利要求1所述的方法,其特征在于,所述按照所述EDM索引对应的安全策略对所述待检测文本进行处理,包括:
检测所述样本数据中与所述待检测文本匹配的行的数量是否小于预设行数阈值;
若否,则按照所述EDM索引对应的安全策略对所述待检测文本进行处理。
3.根据权利要求1所述的方法,其特征在于,在从所述EDM索引中获取所述样本数据包括的关键列中每一单元格对应的第一哈希值数组之前,还包括:
确定所述样本数据;
针对所述样本数据中的每一单元格,判断该单元格所在列中最小单元格的长度是否大于预设长度阈值;
若否,则根据长度为该单元格所在列中最小单元格的长度的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
若是,则根据长度为所述预设长度阈值的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
将所述样本数据中每一单元格对应的哈希值数组作为EDM索引中与每一单元格对应的索引元素,得到EDM索引。
4.根据权利要求1所述的方法,其特征在于,所述从所述EDM索引中获取所述样本数据包括的关键列中每一单元格对应的第一哈希值数组,包括:
检测所述样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值;
若是,则将所述样本数据的每一单元格中最小单元格所在的列作为关键列;若否,则计算所述样本数据中每一列对应的最小单元格的长度与所述预设长度阈值间的差值,并将最小差值对应的最小单元格所在的列作为关键列;
从所述EDM索引中获取所述样本数据包括的关键列中每一单元格对应的哈希值数组,作为第一哈希值数组。
5.根据权利要求1所述的方法,其特征在于,所述利用所述第一滑动窗口以及所述关键列中每一单元格对应的第一哈希值数组,检测所述关键列中每一单元格的内容是否与待检测文本匹配,包括:
在所述待检测文本上滑动所述第一滑动窗口,采用拉宾-卡普Rabin-Karp算法,计算所述待检测文本位于所述第一滑动窗口中的文本内容的第一哈希值;
针对所述关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值与计算得到的第一哈希值进行匹配;
若均匹配,则确定该单元格的内容与所述待检测文本匹配。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将计算得到的第一哈希值与所述待检测文本的文本内容的对应关系缓存至缓存空间;
所述利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与所述待检测文本匹配,包括:
在所述待检测文本上滑动每一第二单元格对应的第二滑动窗口,检测所述缓存空间中是否存在包含所述第二滑动窗口中包括的文本内容的目标对应关系;
若是,则针对每一第二单元格,将该第二单元格对应的第二哈希值数组中的每一哈希值,与所述目标对应关系包括的第一哈希值进行匹配;
若均匹配,则确定该第二单元格的内容与所述待检测文本匹配;若不均匹配,则确定该第二单元格的内容与所述待检测文本不匹配。
7.一种文本处理装置,其特征在于,应用于数据泄露防护DLP设备,所述DLP设备存储精确数据匹配EDM索引,所述EDM索引包括多个哈希值数组,每个哈希值数组用于表示形成格式化样本数据的一个单元格,所述装置包括:
第一获取模块,用于从所述EDM索引获取所述样本数据包括的关键列中每一单元格对应的第一哈希值数组,每一单元格对应的第一哈希值数组是根据第一滑动窗口以及该单元格的内容计算得到的哈希值数组,所述第一滑动窗口的长度为所述关键列中最小单元格的长度或预设长度阈值;其中,当所述关键列中最小单元格的长度大于所述预设长度阈值时,所述第一滑动窗口的长度为所述预设长度阈值;
第一检测模块,用于利用所述第一滑动窗口以及所述关键列中每一单元格对应的第一哈希值数组,检测所述关键列中每一单元格的内容是否与待检测文本匹配;
第二获取模块,用于在所述关键列中存在内容与所述待检测文本匹配的第一单元格时,获取所述第一单元格所在目标行中每一第二单元格对应的第二哈希值数组,每一第二单元格对应的第二哈希值数组是根据第二滑动窗口以及该第二单元格的内容计算得到的哈希值数组,所述第二滑动窗口的长度为所述第二单元格所在列中最小单元格的长度或所述预设长度阈值;其中,当所述第二单元格所在列中最小单元格的长度大于所述预设长度阈值时,所述第二滑动窗口的长度为所述预设长度阈值;
第二检测模块,用于利用每一第二单元格对应的第二滑动窗口以及该第二单元格对应的第二哈希值数组,检测该第二单元格的内容是否与所述待检测文本匹配;
处理模块,用于若所有第二单元格的内容均与所述待检测文本匹配,则按照所述EDM索引对应的安全策略对所述待检测文本进行处理。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于检测所述样本数据中与所述待检测文本匹配的行的数量是否小于预设行数阈值;若否,则按照所述EDM索引对应的安全策略对所述待检测文本进行处理。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
确定模块,用于确定所述样本数据;
判断模块,用于针对所述样本数据中的每一单元格,判断该单元格所在列中最小单元格的长度是否大于预设长度阈值;
第一计算模块,用于在所述判断模块的判断结果为否时,根据长度为该单元格所在列中最小单元格的长度的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
第二计算模块,用于在所述判断模块的判断结果为是时,根据长度为所述预设长度阈值的第三滑动窗口,以及该单元格的内容,计算该单元格对应的哈希值数组;
生成模块,用于将所述样本数据中每一单元格对应的哈希值数组作为EDM索引中与每一单元格对应的索引元素,得到EDM索引。
10.根据权利要求7所述的装置,其特征在于,所述第一获取模块,具体用于检测所述样本数据的每一单元格中最小单元格的长度是否大于预设长度阈值;若是,则将所述样本数据的每一单元格中最小单元格所在的列作为关键列;若否,则计算所述样本数据中每一列对应的最小单元格的长度与所述预设长度阈值间的差值,并将最小差值对应的最小单元格所在的列作为关键列;从所述EDM索引中获取所述样本数据包括的关键列中每一单元格对应的哈希值数组,作为第一哈希值数组。
11.根据权利要求7所述的装置,其特征在于,所述第一检测模块,具体用于在所述待检测文本上滑动所述第一滑动窗口,采用拉宾-卡普Rabin-Karp算法,计算所述待检测文本位于所述第一滑动窗口中的文本内容的第一哈希值;针对所述关键列中的每一单元格,将该单元格对应的第一哈希值数组中的每一哈希值与计算得到的第一哈希值进行匹配;若均匹配,则确定该单元格的内容与所述待检测文本匹配。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
缓存模块,用于将计算得到的第一哈希值与所述待检测文本的文本内容的对应关系缓存至缓存空间;
所述第二检测模块,具体用于在所述待检测文本上滑动每一第二单元格对应的第二滑动窗口,检测所述缓存空间中是否存在包含所述第二滑动窗口中包括的文本内容的目标对应关系;若是,则针对每一第二单元格,将该第二单元格对应的第二哈希值数组中的每一哈希值,与所述目标对应关系包括的第一哈希值进行匹配;若均匹配,则确定该第二单元格的内容与所述待检测文本匹配;若不均匹配,则确定该第二单元格的内容与所述待检测文本不匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910915862.XA CN110619234B (zh) | 2019-09-26 | 2019-09-26 | 一种文本处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910915862.XA CN110619234B (zh) | 2019-09-26 | 2019-09-26 | 一种文本处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110619234A CN110619234A (zh) | 2019-12-27 |
CN110619234B true CN110619234B (zh) | 2021-05-28 |
Family
ID=68924207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910915862.XA Active CN110619234B (zh) | 2019-09-26 | 2019-09-26 | 一种文本处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110619234B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100616B (zh) * | 2020-09-14 | 2024-05-28 | 北京天空卫士网络安全技术有限公司 | 一种监控方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547138A (zh) * | 2008-03-26 | 2009-09-30 | 国际商业机器公司 | 用于快速模式匹配的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10911233B2 (en) * | 2017-09-11 | 2021-02-02 | Zscaler, Inc. | Identification of related tokens in a byte stream using structured signature data |
CN109189367B (zh) * | 2018-06-28 | 2022-06-24 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
-
2019
- 2019-09-26 CN CN201910915862.XA patent/CN110619234B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547138A (zh) * | 2008-03-26 | 2009-09-30 | 国际商业机器公司 | 用于快速模式匹配的方法和装置 |
Non-Patent Citations (1)
Title |
---|
数据泄露防护技术综述;梁向阳等;《保密科学技术》;20170228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110619234A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111108501B (zh) | 一种基于上下文的多轮对话方法、装置、设备及存储介质 | |
US9465791B2 (en) | Method and apparatus for automatic detection of spelling errors in one or more documents | |
US20180107933A1 (en) | Web page training method and device, and search intention identifying method and device | |
EP2657884A2 (en) | Identifying multimedia objects based on multimedia fingerprint | |
US9280536B2 (en) | Synonym determination among n-grams | |
US9697819B2 (en) | Method for building a speech feature library, and method, apparatus, device, and computer readable storage media for speech synthesis | |
CN104866478B (zh) | 恶意文本的检测识别方法及装置 | |
CN110322870B (zh) | 一种汉语语音信号切分方法和装置 | |
US10089411B2 (en) | Method and apparatus and computer readable medium for computing string similarity metric | |
Gayoso Martínez et al. | State of the art in similarity preserving hashing functions | |
JP2008243054A (ja) | 照合装置、照合方法および照合プログラム | |
CN110619234B (zh) | 一种文本处理方法及装置 | |
CN110019640B (zh) | 涉密文件检查方法及装置 | |
EP2284752A2 (en) | Intrusion detection systems and methods | |
CN104050299A (zh) | 一种论文查重的方法 | |
CN108255836B (zh) | 一种字符串匹配方法及装置 | |
CN107085568A (zh) | 一种文本相似度判别方法及装置 | |
CN117216239A (zh) | 文本去重方法、装置、计算机设备及存储介质 | |
CN110705261B (zh) | 中文文本分词方法及其系统 | |
CN108536791B (zh) | 基于神经网络的搜索方法、设备及存储介质 | |
WO2014107265A1 (en) | Method and apparatus for performing bilingual word alignment | |
US20130191410A1 (en) | Document similarity evaluation system, document similarity evaluation method, and computer program | |
EP3477639B1 (en) | Training a voiceprint recognition system | |
US10783983B2 (en) | Variant information processing device and method | |
US9262465B1 (en) | Detection of mismatch between book content and description |
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 |