CN104731976B - 数据表中隐私数据的发现与分类方法 - Google Patents

数据表中隐私数据的发现与分类方法 Download PDF

Info

Publication number
CN104731976B
CN104731976B CN201510175993.0A CN201510175993A CN104731976B CN 104731976 B CN104731976 B CN 104731976B CN 201510175993 A CN201510175993 A CN 201510175993A CN 104731976 B CN104731976 B CN 104731976B
Authority
CN
China
Prior art keywords
data
field
dictionary
private data
private
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
Application number
CN201510175993.0A
Other languages
English (en)
Other versions
CN104731976A (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.)
Massive Cloud (beijing) Data Technology Co Ltd
Original Assignee
Massive Cloud (beijing) Data Technology Co Ltd
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 Massive Cloud (beijing) Data Technology Co Ltd filed Critical Massive Cloud (beijing) Data Technology Co Ltd
Priority to CN201510175993.0A priority Critical patent/CN104731976B/zh
Publication of CN104731976A publication Critical patent/CN104731976A/zh
Application granted granted Critical
Publication of CN104731976B publication Critical patent/CN104731976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据表中隐私数据的发现与分类方法。该方法主要预先设定各个隐私数据种类对应的隐私数据分析规则;提取数据表中的采样数据;按照设定的隐私数据种类分析顺序和所述各个隐私数据种类对应的隐私数据分析规则,对所述采样数据进行隐私数据分析,根据分析结果发现所述采样数据中的身份证号码、邮政编码、营业执照号、组织机构代码、纳税人识别号、电子邮件地址、企业名称、电话号码、中文姓名和地址共10种隐私数据种类,高效率地将企业应用数据库的数据表中的关键数据找出来并归类,能够极大地减小了工作量、缩短工作时间。

Description

数据表中隐私数据的发现与分类方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据表中隐私数据的发现与分类方法。
背景技术
IT(Information Technology,信息产业)技术日新月异,IT技术的不断发展,各行各业企事业单位的信息化程度也越来越高,因此,信息在一个企业当中越发凸显其重要性。一个企业或者个人的信息价值也随着整个行业的发展而不断提升。也正因为如此,近年来数据泄漏、销售企业数据获利等事件越发频繁。虽然数据的泄漏并不一定会对企业造成直接的经济损失,但是间接损失和影响是巨大的。比如因信息泄漏没有兑现承诺让服务级别下降,导致流失大批量的优质客户,或者需要承担法律责任。
对于IT安全措施,早期更多是针对网络安全、操作系统安全等措施。而现在,针对信息安全和保障,在国际上已经有很成熟的法律法案,针对数据本身的安全监控、审计、脱敏、保护等技术和产品也在逐渐普及。
在实际应用中,在一个企业的应用系统中,数据库中的表的数量少的几百张,多的几万张,一张表中的字段数量少则几十多则几百。也就是说,一个企业的应用系统中少则几万个字段,多则上亿个字段,每个字段都是一种数据定义。
企业的应用系统中的信息非常多,如果将其中的关键信息区别出来专门对待的话,成本和效率将会是个无法控制。梳理企业的应用系统中的关键数据、敏感信息的工作就变得很重要,并且非常艰难。
因此,开发一种高效率的发现企业的应用系统中的关键数据的方法,是一个亟待解决的问题。
发明内容
本发明的实施例提供了一种数据表中隐私数据的发现与分类方法,以实现有效地提取数据表中的关键数据。
为了实现上述目的,本发明采取了如下技术方案
一种数据表中隐私数据的发现与分类方法,包括:
预先设定各个隐私数据种类对应的隐私数据分析规则;
提取数据表中的采样数据;
按照设定的隐私数据种类分析顺序和所述各个隐私数据种类对应的隐私数据分析规则,对所述采样数据进行隐私数据分析,根据分析结果发现所述采样数据中的隐私数据种类。
所述的预先设定各个隐私数据种类对应的隐私数据分析规则,包括:
选取身份证号码、邮政编码、营业执照号、组织机构代码、纳税人识别号、电子邮件地址、企业名称、电话号码、中文姓名和地址共10种隐私数据种类,分别设定所述10种隐私数据种类对应的隐私数据分析规则,构造隐私数据种类对应的数据字典,该数据字典中存储了对应的隐私数据种类中的典型数据。
所述的预先设定各个隐私数据种类对应的隐私数据分析规则,包括:
针对每个隐私数据种类设置一个或者多个计数器;
将所述中文姓名种类的隐私数据划分为姓名、姓氏和名字三个子类,并对姓名、姓氏和名字三个子类分别设置一个计数器,针对所用到的姓氏字典设置一个数组计数器;
将所述电话号码种类的隐私数据划分为混合电话号码、移动电话号码、固话号码和疑似电话号码四个子类,并对移动电话号码、固话号码和疑似电话号码分别设置一个计数器;
将所述中国地址种类的隐私数据划分为省、市、县、镇、村和街道/路六个级别,根据所述六个级别衍生出21个子类,分别是:省、省到市、省到县、省到镇、省到村、省到路、市、市到县、市到镇、市到村、市到路、县、县到镇、县到村、县到路、镇、镇到村、镇到路、村、村到路、路;对省/直辖市/自治区、地市/自治州、县、乡/镇、村和道路六个级别分别设置一个计数器;
将其余七种隐私数据每种类型分别设置一个计数器
所述的提取数据表中的采样数据之前,还包括:
读取所述数据表所在的数据库的元数据,该元数据包括每个数据表的数据表名、数据中存储的数据的描述信息,以及每个数据表中的每个字段的字段名、数据类型定义、数据长度精度限制信息,根据所述元数据判断出所述数据库中需要进行隐私数据分析的数据表和数据表中需要进行隐私数据分析的字段;
根据所述数据表中每个字段的字段类型和长度精度,确定每个字段需要匹配的一个或者多个隐私数据分析规则。
所述的提取数据表中的采样数据,包括:
设置数据表的采样行数规则为:提取数据表的前N行,从数据表的第N+1行开始提取M‰比率的数据行;当所述数据表中的全部数据记录的行数小于等于所述采样行数阈值N,则提取所述数据表中的全部记录行数的数据作为采样数据;当所述数据表中的数据记录的行数大于所述采样行数阈值,则提取所述数据表中的排列在前列的所述采样行数阈值N的行数,以及排列在所述采样行数阈值的行数后面的全部数据记录的行数的设定比率M‰作为采样数据。
所述的按照设定的隐私数据种类分析顺序和所述各个隐私数据种类对应的隐私数据分析规则,对所述采样数据进行隐私数据分析,根据分析结果发现所述采样数据中的隐私数据种类,包括:
选取所述采样数据中的第一张数据表的第一行数据记录的数据,对所述第一行数据记录的数据进行拆分,得到多个字段的数据,选取第一个字段的数据,当所述第一字段的类型为数值类型的字段,且长度为6位或以上,没有小数位,则依次按照邮政编码、营业执照号和电话号码对应的隐私数据分析规则,对所述第一个字段的数据进行隐私数据分析;
当所述第一字段的类型为字符串类型的字段,且长度大于等于2,则依次按照身份证号码、邮政编码、营业执照号、纳税人识别号、组织机构代码、电子邮件地址、企业名称、电话号码、中文姓名和地址对应的隐私数据分析规则,对所述第一个字段的数据进行隐私数据分析;
当所述第一个字段的数据和某个隐私数据分析规则匹配时,则将所述某个隐私数据分析规则对应的隐私数据种类的计数器的计数值加一;
选取第二个字段的数据,按照所述第一个字段的数据的隐私数据的分析过程,对所述第二个字段的数据进行隐私数据分析,依次类推,对所述第一行数据记录中的每个字段的数据进行隐私数据分析;
选取所述采样数据中的第二行数据记录的数据,按照所述第一行数据记录的数据的隐私数据的分析过程,对所述第二行数据记录的数据进行隐私数据分析,依次类推,对所述采样数据中的所有数据表中的所有行数据记录的数据进行隐私数据分析;
读取某个数据表中的每一个字段对应的隐私数据种类的计数器的计数值,当某个字段对应的某个隐私数据种类的计数器的计数值达到设定的隐私数据判定阈值,则判断该字段的数据类型为所述某个隐私数据种类。
当按照电话号码对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
当进行移动电话号码分析时,判断字段的数据格式为:国际字冠间隔符国家代码间隔符移动电话号码本体,国际字冠为00、+或者没有,国家代码为86或没有,中间的间隔符为“-”、空格或者没有,移动电话号码本体长度为11位,并且从数字的最右边数起的第9-11位匹配移动电话号码数据字典中包括的移动电话号码的前三位字符,则将移动电话号码对应的计数器的计数值+1;
当进行固话电话分析时,对字段的数据中除了+号以外的符号都换成‘-’,得到符号转换后的字段的数据,对所述符号转换后的字段的数据按照设定的正则表达式进行匹配,所述设定的正则表达式为:((((00|\+)?86(\+|-)?)|\+)?(0)?(10|2\d{1}|[3-9]\d{2})-?)?[2-8]\d{6,7}(-?\d{2,4})?,当所述正则表达式匹配成功,且上述正则表达式能够成功获取固定电话区号,那么将所述获取的区号去匹配固定电话区号数据字典,若匹配成功则将固话电话对应的计数器的计数值+1;
当进行疑似电话号码分析时,判断字段的数据是否满足日期格式,该日期格式包括:[四位年份]+[两位月份]+[两位天],[两位天]+[两位月份]+[四位年份],[两位月份]+[两位天]+[四位年份],如果是,则判定该字段的数据不为电话号码,针对该字段数据电话号码判断逻辑结束;否则,则将疑似电话号码对应的计数器的计数值+1;
当所述采样数据中所述字段的数据全部分析完成后,对各计数器值进行分析:
当所述移动电话号码对应的计数器的计数值占该字段整体有效行数总值占比达上限阀值,而固定电话计数值的占比小于下限阀值时,则判断所述字段的数据类型为移动电话号码;
当所述固话电话对应的计数器的计数值占该字段整体有效行数总值占比达上限阀值,而移动电话计数器的占比小于下限阀值时,则判断所述字段的数据类型为固话电话;
当移动电话和固定电话计数值的占比分别都大于下限阀值,且两个计数值占比之和达到上限阀值时,则判断所述字段的数据类型为混合电话号码;
当所述移动电话和固定电话计数器的计数值的占比均小于下限值,且疑似电话号码对应的计数器的计数值相对该字段整体有效行数总值的占比大于设定比例,则判断所述字段的数据类型为疑似电话号码;
当所述移动电话号码对应的计数器、所述固话电话对应的计数器和所述疑似电话号码对应的计数器三个计数器的计数值总值不大于设定的电话号码判断阈值时,则判断所述字段的数据类型不为电话号码。
当按照中文姓名对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
将中文姓名分成姓名、姓氏和名字三个子类,分别设置姓名、姓氏和名字对应的计数器,设置姓氏字典中所有姓氏组成的数组对应的计数器;
当所述字段的数据的最左边的字符匹配姓氏字典中包含的姓氏,并且所述字段的数据中在所述姓氏的右边还有字符,则将姓名对应的计数器的计数值加1,将所述字典姓氏对应的数组计数器的计数值加1,并将所述姓名对应的统计值加1;
当所述字段的数据的最左边的字符匹配姓氏字典中包含的姓氏,并且所述字段的数据中在所述姓氏的右边没有字符,则将姓氏对应的计数器的计数值加1,将所述字典姓氏对应的数组计数器的计数值加1,并将所述姓氏对应的统计值加1;
当所述采样数据中所述字段的数据全部分析完成后,所述姓氏计数器的计数值、所述数组计数器大于进行分析的所述字段的数据的总数量的设定比例,并且,统计值大于设定数值的姓氏的数量大于设定的数量阈值,则判定所述字段的数据类型为姓氏;
当所述采样数据中所述字段的数据全部分析完成后,如果姓名计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例,统计所有所述字段的数据中重复的数据,当重复的数据占所有所述字段的数据的比例小于设定的阈值,则判定所述字段的数据类型为姓名。
当按照中文姓名对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
当判定某个字段的数据类型为姓氏后,对所述某个字段所在的数据记录行中的其它字段的数据进行单字拆分,将每个单字分别在名字字典中进行匹配,当每个单字都匹配名字字典中包括的名字时,则将名字对应的计数器的计数值加1;
当所述其它字段的数据全部分析完成后,如果名字计数器的计数值大于进行匹配的所述其它字段的数据的总数量,则判定所述其它字段的数据类型为名字。
当按照地址对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
使用正向最大匹配法对字段的数据进行中文分词,获得所述字段的数据中的地址分词,生成所述地址分词的hash值;
判断所述字段的数据中是否包含设定的街道/路的关键字,如果包含,则将所述地址分词的hash值分别在街道/路字典、省字典、市字典、县字典、镇字典和村字典对应的hashmap索引结构进行检索;否则,将所述地址分词的hash值分别在省字典、市字典、县字典、镇字典和村字典对应的hashmap索引结构进行检索;
当所述地址分词的hash值在某个地址字典对应的hashmap索引结构中检索到,则将所述某个地址字典对应级别的计数器的计数值加1,当所述采样数据中所述字段的数据全部分析完成后,根据所述六个子类对应的计数器的计数值确定所述某个字段的数据类型。
所述的当所述地址分词的hash值在某个地址字典对应的hashmap索引结构中检索到,则将所述某个地址字典对应级别的计数器的计数值加1,包括:
使用中文分词正向最大匹配法对所述字段的数据进行分词,根据六个级别的中文地址字典的内容重新组织生成另一套地址分词字典,所述地址分词字典包括:15字字典、13字字典、12字字典、11字字典、10字字典、9字字典、8字字典、7字字典、6字字典、5字字典、4字字典、3字字典、2字字典,并生成所述地址分词字典中每个字典对应的hashmap索引结构;
从所述字段的数据由左至右取出连续的15个中文字并生成hash值,长度不够15字的取最大连续中文字,将所述15个中文字对应的hash值在15字字典的hashmap索引结构中匹配;若所述15个中文字对应的hash值没有在15字字典的hashmap索引结构中匹配到,那么将所述15个中文字最右边去除两个单字,得到一个13字的中文字符串并生成hash值,将所述13个中文字对应的hash值在13字字典的hashmap索引结构进行匹配;
若所述13个中文字对应的hash值没有在13字字典中的hashmap索引结构匹配到,那么将所述13字中文字符串最右边去除一个单字,得到一个12字的中文字符串并生成hash值,将所述12个中文字对应的hash值在12字字典的hashmap索引结构进行匹配,如此重复循环,直到所述字段的数据的某个中文字的hash值在某个地址分词字典的hashmap索引结构中匹配成功,则将所述hash值对应的中文字符串为一个有效中文地址分词,并记录下来,不进行后续的hash值在地址分词字典的hashmap索引结构中的匹配操作;
若所述字段的数据的所有中文字的hash值在所有地址分词字典的hashmap索引结构中都没有匹配成功,则获得所述字段的数据的一个中文单字,将所述字段的数据左边去除获得的所述有效中文地址分词或者中文单字,得到剩余中文字符串,按照所述字段的数据在所有地址分词字典的hashmap索引结构中的匹配过程,将所述剩余中文字符串在所有地址分词字典的hashmap索引结构中进行匹配,获得若干有效中文地址分词、单字、数字或特殊字符;
从所述有效中文地址分词从左到右取词,生成所述中文地址分词的hash值,将所述中文地址分词的hash值在各个地址分词字典对应的hashmap索引结构中进行检索,当所述某个地址分词字典对应的hashmap索引结构中检索到所述中文地址分词的hash值,将所述某个地址分词字典对应级别的计数器的计数值加1;重复执行上述处理过程,直到所有有效中文地址分词在各个地址分词字典对应的hashmap索引结构中都检索完毕;
选取所述采样数据中的下一个数据记录中的所述字段的数据,对所述下一个数据记录中的所述字段的数据进行隐私数据匹配,直到所述采样数据中所有所述字段的数据都进行了隐私数据匹配。
所述的采样数据中所述字段的数据全部匹配完成后,根据所述六个级别对应的计数器的计数值确定所述某个字段的数据类型,包括:
当所述六个级别对应的计数器的计数值之和大于等于进行匹配的所述字段的数据的总数量的100%,则判断所述字段的数据类型为地址。
所述方法还包括:
当判断所述字段的数据类型为地址后,获取六个级别对应的6个地址字典分别对应的特征标识位,并计算所述每个特征标志位的计数器的计数值在所述整个字段数据总量所占的百分比,获取大于特定百分比的特征标志位的最宽的区间,将所述最宽的区间中包含的级别对应子类作为该字段最终的隐私数据类型特征。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过预先设定各个隐私数据种类对应的隐私数据分析规则,按照设定的隐私数据种类分析顺序和各个隐私数据种类对应的隐私数据分析规则,对采样数据进行隐私数据分析,可以自动、有效地发现企业应用数据库的数据表中的隐私数据种类,高效率地将企业应用数据库的数据表中的关键数据找出来并归类。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据表中隐私数据的发现与分类方法的处理流程示意图;
图2为本发明实施例提供的一种根据关键字的hash值检索得到完整关键词的示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
实施例一
本发明实施例提供了一种有效的、能显著提高准确率的方法,能让企业单位在自身众多复杂的系统当中,找到关键数据并进行分类,便于进一步采取相应的措施。
该实施例提供了一种数据表中隐私数据的发现与分类方法的处理流程如图1所示,包括如下的处理步骤:
步骤S110、预先设定各个隐私数据种类对应的隐私数据分析规则和计数器。
本发明实施例的隐私数据发现和分类的基本原理是对采样数据中的字段的数据进行扫描和分析,得到字段的数据的特征,然后对字段的数据进行归类。同一个字段的数据,需要经过所有隐私数据种类的特征规则算法的分析统计,最终根据相似度来判断它有最有可能是哪一种类型的隐私数据。上述隐私数据可以称为私密数据或敏感信息。
本发明实施例选取身份证号码、邮政编码、营业执照号(工商注册号)、组织机构代码、纳税人识别号、电子邮件地址、企业名称、电话号码、中文姓名和地址共10种隐私数据种类,分别设定10种隐私数据种类对应的隐私数据分析规则,该隐私数据分析规则在后面的数据分析过程中将详细描述。
针对每个隐私数据种类设置一个或者多个计数器。比如,将所述中文姓名种类的隐私数据划分为姓名、姓氏和名字三个子类,并对姓名、姓氏和名字三个子类分别设置一个计数器。
将中国地址种类的隐私数据划分为省、市、县、镇、村和街道/路六个级别,根据所述六个级别衍生出21个子类,分别是:省、省到市、省到县、省到镇、省到村、省到路、市、市到县、市到镇、市到村、市到路、县、县到镇、县到村、县到路、镇、镇到村、镇到路、村、村到路、路。
对省、市、县、镇、村和街道/路分别设置一个计数器。
将电话号码种类的隐私数据划分为:混合电话号码、移动电话号码、固话号码和疑似电话号码四个子类,分别设置移动电话号码、固话号码和疑似电话号码对应的计数器。
构造每种隐私数据种类对应的数据字典,该数据字典中存储了对应的隐私数据种类中的典型数据。比如,固话区号字典中存储了中国绝大部分固定电话号码的区号,中文姓氏数据字典中存储了中国绝大多数的姓氏。
步骤S120、根据数据库的元数据,获取需要进行隐私数据分析的数据表,以及数据表中的字段类型。
读取所述数据表所在的数据库的元数据,该元数据包括每个数据表的数据表名、数据中存储的数据的描述信息,以及每个数据表中的每个字段的字段名、数据定义、数据限制信息,根据所述元数据判断出所述数据库中需要进行隐私数据提取的数据表和数据表中需要进行隐私数据提取的字段,以及每个字段的字段类型,该字段类型包括数值类型的字段和字符串类型的字段。
根据所述数据表中每个字段的字段类型,确定每个字段需要匹配的一个或者多个隐私数据分析规则。
数值类型的字段,必须满足以下条件:长度需要大于等于6,没有小数位。数值类型的字段只需要分析电话号码、邮政编码和工商注册号的隐私数据分析规则。字符串类型的字段必须大于等于2,需要分析所有的隐私数据分析规则。
步骤S130、提取需要进行隐私数据分析的数据表中的采样数据。
设置数据表的采样行数阈值,当所述数据表中的全部数据记录的行数小于所述采样行数阈值,则提取所述数据表中的全部记录行数的数据作为采样数据;当所述数据表中的数据记录的行数大于或者等于所述采样行数阈值,则提取所述数据表中的排列在前列的所述采样行数阈值的行数,以及排列在所述采样行数阈值的行数后面的全部数据记录的行数的设定比率作为采样数据。
比如,上述采样行数阈值为1000,采样率缺省为取前1000行,后面从1001行开始取千分之一,每1000行取一行,采样率可根据实际情况配置选择。
步骤S140、按照设定的隐私数据种类分析顺序和各个隐私数据种类对应的隐私数据分析规则,对采样数据进行隐私数据分析,根据分析结果发现采样数据中的隐私数据种类和所在位置。
选取采样数据中的第一行数据记录的数据,对所述第一行数据记录的数据进行拆分,得到多个字段的数据,选取第一个字段的数据,当所述第一字段的类型为数值类型的字段,且长度为6位或以上没有小数位,则依次按照邮政编码、营业执照号和电话号码对应的隐私数据分析规则,对所述第一个字段的数据进行隐私数据分析,根据分析结果提取所述采样数据中的隐私数据种类。
当所述第一字段的类型为字符串类型的字段,且长度大于等于2,则依次按照身份证号码、邮政编码、营业执照号、纳税人识别号、组织机构代码、电子邮件地址、企业名称、电话号码、中文姓名和地址对应的隐私数据分析规则,对所述第一个字段的数据进行隐私数据分析,当所述第一个字段的数据和某个隐私数据分析规则分析时,则将所述第一个字段对应的所述某个隐私数据分析规则对应的隐私数据种类的计数器的计数值加一;选取第二个字段的数据,按照所述第一个字段的数据的隐私数据的分析过程,对所述第二个字段的数据进行隐私数据分析,依次类推,对所述第一行数据记录中的每个字段的数据进行隐私数据分析;
选取所述采样数据中的第二行数据记录的数据,按照所述第一行数据记录的数据的隐私数据的分析过程,对所述第二行数据记录的数据进行隐私数据分析,依次类推,对所述采样数据中的所有行数据记录的数据进行隐私数据分析;
读取每一个字段对应的隐私数据种类的计数器的计数值,当某个字段对应的某个隐私数据种类的计数器的计数值达到设定的隐私数据判定阈值,则判断所述某个字段的数据类型为所述某个隐私数据种类。
下面分别介绍各种隐私数据种类对应的隐私数据分析规则。
规则与算法
统一规则:
1.输入值为空值、空串或者空格均不计入阀值统计。
2.全角字符预先在调用层转换成半角处理;
3.以下每种隐私数据类型的内部的算法规则,若无特别说明,均为顺序执行且不可忽略,即某条规则校验失败则后面的规则无需校验,该种隐私数据类型判断失败。
4.字典检索加速方法,本发明实施例提供的一种根据关键字的hash值检索得到完整关键词的示意图如图2所示,针对字典值超过100个的字典建议开始使用此方法:
a)将字典中的每一个数据分别使用hash算法生成hash值;
b)将字典中所有数值的hash值分别取特定数值的余数,而每个具体的余数值都对应一个槽位用于存放对应的hash值,该槽位为第一级别,比如取39的余数对应会有0到38余数值总共39个一级槽位;
c)将所述hash值根据其特定值的余数,按顺序放入对应所述槽位;
d)这样即完成多级hashmap索引的第一级别的构建;
e)将所述第一个槽位的hash值取出再次取非上述特定数值因子的数值的余数,同时会得到对应多个二级槽位,这里举例取37的余数,那么每个上述的一级槽位会对应有最多37个二级槽位;
f)将所述每个一级槽位的hash值再分别按顺序装入对应的所述二级槽位,完成多级hashmap索引的第二级别的构建;
g)再将上述某个二级槽位的hash值取出,并计算其非上述所有特定数值因子的数值的余数,对应得到若干个三级槽位,举例这里取34的余数,那么每个上述的二级槽位会对应有最多34个三级槽位;
h)将所述每个二级槽位的hash值再分别按顺序装入对应的所述三级槽位,完成多级hashmap索引的第三级别的构建;
i)如此重复,直到每个槽位中的hash值数量小于等于特定阀值数量,即完成整个多级hashmap索引的构建;
j)字生成的索引结构留着内存中待用
k)字段数据在使用所述字典的hashmap索引结构进行匹配查找时,需要将所述字段数据用同样的hash算法生成hash值在索引中匹配搜索
当按照身份证号码对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,身份证号码对应的隐私数据分析规则如下:
1.数据长度为18或者15
2.18位的情况:
a)第7~14位为有效年份数字,18600101至当前日期之间
b)第18位的校验位能够计算校验通过,满足ISO 7064:1983.MOD11-2校验
3.15位情况:
a)第7~12位为有效年份数字
4.当采样数据中所述字段的数据全部分析完成后,如果身份证号码的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,80%),则判定所述字段的数据类型为身份证号码。
当按照邮政编码对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,邮政编码对应的隐私数据分析规则如下:
1.数据长度为6
2.只存在阿拉伯数字
3.数据能够在邮政编码字典DICT_CN_ZIPCODE当中找到
4.当采样数据中所述字段的数据全部匹配完成后,如果邮政编码的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,60%),则判定所述字段的数据类型为邮政编码。
当按照营业执照号(工商注册号)对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,营业执照号(工商注册号)对应的隐私数据分析规则如下:
1.长度为15位
2.第15位末尾满足GB/T 17710-1999中的规定的“MOD 11,10”校验算法
3.前六位能够在行政区划码字典DICT_CN_DIVCODE当中找到
4.当采样数据中所述字段的数据全部分析完成后,如果营业执照号的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,60%),则判定所述字段的数据类型为营业执照号。
当按照组织机构代码对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,组织机构代码对应的隐私数据分析规则如下:
1.判断格式为,前面有8位数字或者字母,然后去除特殊字符,剩余1位数字
2.第9位末尾满足校验算法:
C9=11-MOD(∑Ci(i=1→8)×Wi,11)
式中:MOD——代表求余函数;
i——代表代码字符从左至右位置序号;
Ci——代表第i位上的代码字符的值(具体代码字符见附表);
C9——代表校验码;
Wi——代表第i位上的加权因子,其数值见下表:
i 1 2 3 4 5 6 7 8
Wi 3 7 9 10 5 8 4 2
3.当C9的值为10时,校验码应用大写的拉丁字母X表示;当C9的值为11时校验码用0表示。
4.当采样数据中所述字段的数据全部分析完成后,如果组织机构代码的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,80%),则判定所述字段的数据类型为组织机构代码。
当按照纳税人识别号对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,纳税人识别号对应的隐私数据分析规则如下:
1.长度为15、17、18、20位
2.前6为行政区划代码,要求能在DICT_CN_DIVCODE字典当中找
3.15位字符串的判断规则
a)参考组织机构代码规则
4.17位字符串判断规则
a)判断7~12位是否为有效日期,满足则返回true
5.18和20位字符串判断规则
a)请参考18位身份证校验规则
6.当采样数据中所述字段的数据全部分析完成后,如果纳税人识别号的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,80%),则判定所述字段的数据类型为纳税人识别号。
当按照Email对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,Email对应的隐私数据分析规则如下:
1.Email格式:[名字部分]@[域名部分]
2.[名字部分]:不能以特殊符号开头,中间允许特殊符号只能是"_"、"-"或者"."
3.字符串必须中含有一个"@"
4.[域名部分]:不能以特殊符号开头或者结尾,中间必须有一个或者两个"."符号;
正则表达式样例:
^[\w_-]+(?:\.[\w_-]+)*@(?:[\w](?:[\w-]*[\w])?)+[\.](?:[\w](?:[\w-]*[\w])?\.)?[\w](?:[\w-]*[\w])?$
5.当采样数据中所述字段的数据全部分析完成后,如果Emai l的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,90%),则判定所述字段的数据类型为Email。
当按照企业单位名称对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,企业单位名称对应的隐私数据分析规则如下:
1.字符串中含有关键字:公司、厂、医院等,关键字字典DICT_CN_UNIT_ORGTYPE_KEY
2.除了关键字外还必须要有至少有两个中文字
3.当采样数据中所述字段的数据全部分析完成后,如果企业单位名称的计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如,90%),则判定所述字段的数据类型为企业单位名称。
当按照电话号码对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
将所述电话号码种类的隐私数据划分为混合电话号码、移动电话号码、固话号码和疑似电话号码四个子类,并对移动电话号码、固话号码和疑似电话号码分别设置一个计数器。
当进行移动电话号码分析时,判断字段的数据格式为:国际字冠间隔符国家代码间隔符移动电话号码本体,国际字冠为00、+或者没有,国家代码为86或没有,中间的间隔符可以为“-”、空格或者没有。去除字段的数据中的非数字字符,保留数字,当保留的数字的长度等于11或者13,并且从数字的最右边数起的第9-11位匹配移动电话号码数据字典中包括的移动电话号码的前三位字符,比如包含134、138、186等,则将移动电话号码对应的计数器的计数值+1;,若移动电话号码判断规则匹配成功,则无需进行固话号码和疑似电话号码规则分析,直接结束整个电话号码规则判断;
当移动电话号码规则判断失败,则进行固话电话分析,对字段的数据中除了+号以外的符号都换成‘-’,然后去掉重复的--符号,得到符号转换后的字段的数据。
固话格式:固话格式:国际字冠-国家代码-地区代码(区号)-电话号码-分机号
所有'-'号可以没有
国际字冠:或者00、+,可以没有
国家代码:86,可以没有
电话号码:7~8位数字,不以0、1、9开头
分机号:3~4位,可以没有
将上述规则以正则表达式进行匹配,所述设定的正则表达式为:((((00|\+)?86(\+|-)?)|\+)?(0)?(10|2\d{1}|[3-9]\d{2})-?)?[2-8]\d{6,7}(-?\d{2,4})?;
当所述正则表达式匹配成功,且上述正则表达式能够成功获取固定电话区号,那么将所述获取的区号去匹配固定电话区号数据字典,若匹配成功则将固话电话对应的计数器的计数值+1;
若存在'+86'的立即判断为固话固话号码计数器+1,然后结束后续的电话号码分析步骤;
若不存在‘+86’字符,则判断是否存在固话区号,通过字典DICT_CN_FIXPH进行比对,注意必须为最左边不能在中间出现区号;若条件判断成功,则固话号码对应的计数器的计数值+1,然后跳过后面规则结束,否则继续疑似电话号码判断。
当进行疑似电话号码分析时,判断字段的数据是否满足日期格式,该日期格式包括:[四位年份]+[两位月份]+[两位天],[两位天]+[两位月份]+[四位年份],[两位月份]+[两位天]+[四位年份],如果是,则判定该字段的数据不为电话号码,针对该字段数据电话号码判断逻辑结束;否则,则将疑似电话号码对应的计数器的计数值+1;
当所述采样数据中所述字段的数据全部分析完成后,对各计数器值进行分析:
当所述采样数据中所述字段的数据全部分析完成后,将所述移动电话号码对应的计数器的计数值、固话电话对应的计数器的计数值和疑似电话号码对应的计数器的计数值进行求和,得到计数值总值。
判定条件1、当所述移动电话号码对应的计数器的计数值占该字段整体有效行数总值占比达上限阀值,而固定电话计数值的占比小于下限阀值时,则判断所述字段的数据类型为移动电话号码;
判定条件2、当所述固话电话对应的计数器的计数值占该字段整体有效行数总值占比达上限阀值,而移动电话计数器的占比小于下限阀值时,则判断所述字段的数据类型为固话电话;
判定条件3、当移动电话和固定电话计数值的占比分别都大于下限阀值,且两个计数值占比之和达到上限阀值时,则判断所述字段的数据类型为混合电话号码;
判定条件4、当所述移动电话和固定电话计数器的计数值的占比均小于下限值,且所述疑似电话号码对应的计数器的计数值相对该字段整体有效行数总值的占比大于设定比例,则判断所述字段的数据类型为疑似电话号码。
当所述移动电话号码对应的计数器、所述固话电话对应的计数器和所述疑似电话号码对应的计数器三个计数器的计数值总值不大于设定的电话号码判断阈值时,则判断所述字段的数据类型不为电话号码。
当按照中文姓名对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
将中文姓名分成姓名、姓氏和名字三个子类,分别设置姓名、姓氏和名字对应的计数器,为姓氏字典中所有姓氏设置一个数组的计数器,即姓氏字典中的每一个姓氏值都对应使用所述数组中的一个特定元素作为计数器;
当所述字段的数据的最左边的字符匹配姓氏字典中包含的姓氏,并且所述字段的数据中在所述姓氏的右边还有字符,则将姓名对应的计数器的计数值加1,将所述字典姓氏对应的数组计数器的计数值加1,并将所述姓名对应的统计值加1;
当所述字段的数据的最左边的字符匹配姓氏字典中包含的姓氏,并且所述字段的数据中在所述姓氏的右边没有字符,则将姓氏对应的计数器的计数值加1,将所述字典姓氏对应的数组计数器的计数值加1,并将所述姓氏对应的统计值加1。
当所述采样数据中所述字段的数据全部分析完成后,所述姓氏计数器的计数值占所述字段有效数据总数量的比例大于设定比例(比如60%),并且,统计数组计数器中每个元素的百分比,统计值大于设定数值(比如,字段的数据的总数量的1%)的姓氏的数量大于设定的数量阈值(比如10个),则判定所述字段的数据类型为姓氏。
当所述采样数据中所述字段的数据全部分析完成后,如果姓名计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例(比如60%),统计所有所述字段的数据中重复的数据,当重复的数据占所有所述字段的数据的比例小于设定的阈值(比如30%),则判定所述字段的数据类型为姓名。
当判定某个字段的数据类型为姓氏后,对所述某个字段所在的数据记录行中的其它字段的数据进行单字拆分,将每个单字分别在名字字典中进行匹配,当每个单字匹配名字字典中包括的名字时,则将名字对应的计数器的计数值加1。
当所述其它字段的数据全部分析完成后,如果名字计数器的计数值大于进行匹配的所述其它字段的有效数据的总数量的设定比例(比如60%),则判定所述其它字段的数据类型为名字。
由于地址判断算法比较复杂耗时,为了提高效率地址的判断需要等待以上所有的隐私数据类型都判断完成了以后再进行,将那些已经成功判断出来的隐私数据类型排除掉,剩余的表字段重新扫描判断。
当按照地址对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
将地址分成省、市、县、镇、村和街道/路六个级别,分别设置所述六个子类对应的计数器。
ADR表示这个字段是地址;
P标志位为省,对应字典为DICT_CN_ADDR_PROV
C标志位为市,对应字典为DICT_CN_ADDR_CITY
D标志位为县,对应字典为DICT_CN_ADDR_DIST
T标志位为镇,对应字典为DICT_CN_ADDR_TOWN
V标志位为村,对应字典为DICT_CN_ADDR_VILLAGE
S标志位为街道或者路,对应字典为DICT_CN_ADDR_STREET
通过ADR(mn)表示这个地址当中包含的地址信息含有哪部分,m和n是上面的标志位,注意,上级标志位必须在左边。这就意味根据所述六个级别衍生出21个子类,分别是,分别为:省、市、县、乡、村、道路、省到市、省到县、省到乡、省到村、省到道路、市到县、市到乡、市到村、市到道路、县到乡、县到村、县到道路、乡到村、乡到道路、村到道路。例如ADR(CC)表示这个字段仅仅是市,ADR(DS)表示该字段是区到街道都有。
使用正向最大匹配法对字段的数据进行中文分词,获得所述字段的数据中的地址分词,生成所述地址分词的hash值;
判断所述字段的数据中是否包含设定的街道/路的关键字,该街道/路的关键字可以为“街、路、巷、里、屯、弄、胡同、段、号、室”等。如果包含,则将所述地址分词的hash值分别在街道/路字典、省字典、市字典、县字典、镇字典和村字典对应的hashmap索引结构进行检索;否则,将所述地址分词的hash值分别在省字典、市字典、县字典、镇字典和村字典对应的hashmap索引结构进行检索;
当所述地址分词的hash值在某个地址字典对应的hashmap索引结构中检索到,则将所述某个地址字典对应级别的计数器的计数值加1,当所述采样数据中所述字段的数据全部分析完成后,根据所述六个子类对应的计数器的计数值确定所述某个字段的数据类型。
所述的当所述地址分词的hash值在某个地址字典对应的hashmap索引结构中检索到,则将所述某个地址字典对应级别的计数器的计数值加1,包括:
使用中文分词正向最大匹配法对所述字段的数据进行分词,根据六个级别的中文地址字典的内容重新组织生成另一套地址分词字典,所述地址分词字典包括:15字字典、13字字典、12字字典、11字字典、10字字典、9字字典、8字字典、7字字典、6字字典、5字字典、4字字典、3字字典、2字字典,并生成所述地址分词字典中每个字典对应的hashmap索引结构;
从所述字段的数据由左至右取出连续的15个中文字并生成hash值,长度不够15字的取最大连续中文字,将所述15个中文字对应的hash值在15字字典的hashmap索引结构中匹配;若所述15个中文字对应的hash值没有在15字字典的hashmap索引结构中匹配到,那么将所述15个中文字最右边去除两个单字,得到一个13字的中文字符串并生成hash值,将所述13个中文字对应的hash值在13字字典的hashmap索引结构进行匹配;
若所述13个中文字对应的hash值没有在13字字典中的hashmap索引结构匹配到,那么将所述13字中文字符串最右边去除一个单字,得到一个12字的中文字符串并生成hash值,将所述12个中文字对应的hash值在12字字典的hashmap索引结构进行匹配,如此重复循环,直到所述字段的数据的某个中文字的hash值在某个地址分词字典的hashmap索引结构中匹配成功,则将所述hash值对应的中文字符串为一个有效中文地址分词,并记录下来,不进行后续的hash值在地址分词字典的hashmap索引结构中的匹配操作;
若所述字段的数据的所有中文字的hash值在所有地址分词字典的hashmap索引结构中都没有匹配成功,则获得所述字段的数据的一个中文单字,将所述字段的数据左边去除获得的所述有效中文地址分词或者中文单字,得到剩余中文字符串,按照所述字段的数据在所有地址分词字典的hashmap索引结构中的匹配过程,将所述剩余中文字符串在所有地址分词字典的hashmap索引结构中进行匹配,获得若干有效中文地址分词、单字、数字或特殊字符;
从所述有效中文地址分词从左到右取词,生成所述中文地址分词的hash值,将所述中文地址分词的hash值在各个地址分词字典对应的hashmap索引结构中进行检索,当所述某个地址分词字典对应的hashmap索引结构中检索到所述中文地址分词的hash值,将所述某个地址分词字典对应级别的计数器的计数值加1;重复执行上述处理过程,直到所有有效中文地址分词在各个地址分词字典对应的hashmap索引结构中都检索完毕,
选取所述采样数据中的下一个数据记录中的所述字段的数据,对所述下一个数据记录中的所述字段的数据进行隐私数据匹配,直到所述采样数据中所有所述字段的数据都进行了隐私数据匹配。
当所述六个级别对应的计数器的计数值之和大于等于进行匹配的所述字段的数据的总数量的100%,则判断字段的数据类型为地址。
当判断所述字段的数据类型为地址后,获取六个级别对应的6个地址字典分别对应的特征标识位,并计算所述每个特征标志位的计数器的计数值在所述整个字段数据总量所占的百分比,获取大于特定百分比(比如1%)的特征标志位的最宽的区间,将所述最宽的区间中包含的级别对应子类作为该字段最终的隐私数据类型特征。比如RPOV=15,CITY=2394,DIST=21932,TOWN=128,VILLAGE=0,STREET=24398,若该字段总的有效数据量为25000行,那么对应的计数器所占百分比分别为P=0.06%,C=95.8%,D=87.7%,T=0.5%,V=0%,S=97.6%,最宽区间为CS,则判断该字段是地址,且地址特征为市到道路ADR(CS)。。
综上所述,本发明实施例通过预先设定各个隐私数据种类对应的隐私数据分析规则,按照设定的隐私数据种类分析顺序和各个隐私数据种类对应的隐私数据分析规则,对采样数据进行隐私数据分析,可以自动、有效地发现企业应用数据库的数据表中的身份证号码、邮政编码、营业执照号、组织机构代码、纳税人识别号、电子邮件地址、企业名称、电话号码、中文姓名和地址共10种隐私数据种类,高效率地将企业应用数据库的数据表中的关键数据找出来并归类。
为了实施某些安全措施或者数据分析等工作,将企业内部所有系统的隐私数据找出来、分类梳理,意味着从少则几万多则上亿的表字段中整理。应用本发明实施例的方法,能够极大地减小了工作量、缩短工作时间,把不可能变成可能,把几十人月的工作量变成几十人天,大大缩短项目周期、降低项目风险;准确率高,对于比较规整、数据质量比较好的系统,准确率能超过99%。
本发明实施例能够统一用户界面,从原本分散独立的数据源中将数据采样至集中平台,用户在一个界面即可梳理所有系统的所有数据。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种数据表中隐私数据的发现与分类方法,其特征在于,包括:
预先设定各个隐私数据种类对应的隐私数据分析规则;
提取数据表中的采样数据;
按照设定的隐私数据种类分析顺序和所述各个隐私数据种类对应的隐私数据分析规则,对所述采样数据进行隐私数据分析,根据分析结果发现所述采样数据中的隐私数据种类;
所述的预先设定各个隐私数据种类对应的隐私数据分析规则,包括:
选取身份证号码、邮政编码、营业执照号、组织机构代码、纳税人识别号、电子邮件地址、企业名称、电话号码、中文姓名和中国地址共10种隐私数据种类,分别设定所述10种隐私数据种类对应的隐私数据分析规则,构造隐私数据种类对应的数据字典,该数据字典中存储了对应的隐私数据种类中的典型数据;
所述的预先设定各个隐私数据种类对应的隐私数据分析规则,包括:
针对每个隐私数据种类设置一个或者多个计数器;
将所述中文姓名种类的隐私数据划分为姓名、姓氏和名字三个子类,并对姓名、姓氏和名字三个子类分别设置一个计数器,针对所用到的姓氏字典设置一个数组计数器;
将所述电话号码种类的隐私数据划分为混合电话号码、移动电话号码、固话号码和疑似电话号码四个子类,并对移动电话号码、固话号码和疑似电话号码分别设置一个计数器;
将所述中国地址种类的隐私数据划分为省、市、县、镇、村和街道/路六个级别,根据所述六个级别衍生出21个子类,分别是:省、省到市、省到县、省到镇、省到村、省到路、市、市到县、市到镇、市到村、市到路、县、县到镇、县到村、县到路、镇、镇到村、镇到路、村、村到路、路;对省/直辖市/自治区、地市/自治州、县、乡/镇、村和道路六个级别分别设置一个计数器;
将其余七种隐私数据每种类型分别设置一个计数器;
所述的按照设定的隐私数据种类分析顺序和所述各个隐私数据种类对应的隐私数据分析规则,对所述采样数据进行隐私数据分析,根据分析结果发现所述采样数据中的隐私数据种类,包括:
选取所述采样数据中的第一张数据表的第一行数据记录的数据,对所述第一行数据记录的数据进行拆分,得到多个字段的数据,选取第一个字段的数据,当所述第一个字段的类型为数值类型的字段,且长度为6位或以上,没有小数位,则依次按照邮政编码、营业执照号和电话号码对应的隐私数据分析规则,对所述第一个字段的数据进行隐私数据分析;
当所述第一个字段的类型为字符串类型的字段,且长度大于等于2,则依次按照身份证号码、邮政编码、营业执照号、纳税人识别号、组织机构代码、电子邮件地址、企业名称、电话号码、中文姓名和地址对应的隐私数据分析规则,对所述第一个字段的数据进行隐私数据分析;
当所述第一个字段的数据和某个隐私数据分析规则匹配时,则将所述某个隐私数据分析规则对应的隐私数据种类的计数器的计数值加一;
选取第二个字段的数据,按照所述第一个字段的数据的隐私数据的分析过程,对所述第二个字段的数据进行隐私数据分析,依次类推,对所述第一行数据记录中的每个字段的数据进行隐私数据分析;
选取所述采样数据中的第二行数据记录的数据,按照所述第一行数据记录的数据的隐私数据的分析过程,对所述第二行数据记录的数据进行隐私数据分析,依次类推,对所述采样数据中的所有数据表中的所有行数据记录的数据进行隐私数据分析;
读取某个数据表中的每一个字段对应的隐私数据种类的计数器的计数值,当某个字段对应的某个隐私数据种类的计数器的计数值达到设定的隐私数据判定阈值,则判断该字段的数据类型为所述某个隐私数据种类。
2.根据权利要求1所述的数据表中隐私数据的发现与分类方法,其特征在于,所述的提取数据表中的采样数据之前,还包括:
读取所述数据表所在的数据库的元数据,该元数据包括每个数据表的数据表名、数据表中存储的数据的描述信息,以及每个数据表中的每个字段的字段名、数据类型定义、数据长度精度限制信息,根据所述元数据判断出所述数据库中需要进行隐私数据分析的数据表和数据表中需要进行隐私数据分析的字段;
根据所述数据表中每个字段的字段类型和长度精度,确定每个字段需要匹配的一个或者多个隐私数据分析规则。
3.根据权利要求2所述的数据表中隐私数据的发现与分类方法,其特征在于,所述的提取数据表中的采样数据,包括:
设置数据表的采样行数规则为:当所述数据表中的全部数据记录的行数小于等于所述采样行数阈值N,则提取所述数据表中的全部记录行数的数据作为采样数据;当所述数据表中的数据记录的行数大于所述采样行数阈值,则提取所述数据表中的排列在前列的所述采样行数阈值N的行数,以及排列在所述采样行数阈值的行数后面的全部数据记录的行数的设定比率M‰作为采样数据。
4.根据权利要求1所述的数据表中隐私数据的发现与分类方法,其特征在于,当按照电话号码对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
当进行移动电话号码分析时,判断字段的数据格式为:国际字冠间隔符国家代码间隔符移动电话号码本体,国际字冠为00、+或者没有,国家代码为86或没有,所述间隔符为“-”、空格或者没有,移动电话号码本体长度为11位,并且从数字的最右边数起的第9-11位匹配移动电话号码数据字典中包括的移动电话号码的前三位字符,则将移动电话号码对应的计数器的计数值+1;
当进行固话电话分析时,对字段的数据中除了+号以外的符号都换成‘-’,得到符号转换后的字段的数据,对所述符号转换后的字段的数据按照设定的正则表达式进行匹配,所述设定的正则表达式为:((((00|\+)?86(\+|-)?)|\+)?(0)?(10|2\d{1}|[3-9]\d{2})-?)?[2-8]\d{6,7}(-?\d{2,4})?,当所述正则表达式匹配成功,且上述正则表达式能够成功获取固定电话区号,那么将所述获取的区号去匹配固定电话区号数据字典,若匹配成功则将固话电话对应的计数器的计数值+1;
当进行疑似电话号码分析时,判断字段的数据是否满足日期格式,该日期格式包括:[四位年份]+[两位月份]+[两位天],[两位天]+[两位月份]+[四位年份],[两位月份]+[两位天]+[四位年份],如果是,则判定该字段的数据不为电话号码,针对该字段数据电话号码判断逻辑结束;否则,则将疑似电话号码对应的计数器的计数值+1;
当所述采样数据中所述字段的数据全部分析完成后,对各计数器值进行分析:
当所述移动电话号码对应的计数器的计数值占该字段整体有效行数总值占比达上限阀值,而固定电话计数值的占比小于下限阀值时,则判断所述字段的数据类型为移动电话号码;
当所述固话电话对应的计数器的计数值占该字段整体有效行数总值占比达上限阀值,而移动电话计数器的占比小于下限阀值时,则判断所述字段的数据类型为固话电话;
当移动电话和固定电话计数值的占比分别都大于下限阀值,且两个计数值占比之和达到上限阀值时,则判断所述字段的数据类型为混合电话号码;
当所述移动电话和固定电话计数器的计数值的占比均小于下限值,且疑似电话号码对应的计数器的计数值相对该字段整体有效行数总值的占比大于设定比例,则判断所述字段的数据类型为疑似电话号码;
当所述移动电话号码对应的计数器、所述固话电话对应的计数器和所述疑似电话号码对应的计数器三个计数器的计数值总值不大于设定的电话号码判断阈值时,则判断所述字段的数据类型不为电话号码。
5.根据权利要求1所述的数据表中隐私数据的发现与分类方法,其特征在于,当按照中文姓名对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
将中文姓名分成姓名、姓氏和名字三个子类,分别设置姓名、姓氏和名字对应的计数器,设置姓氏字典中所有姓氏组成的数组对应的计数器;
当所述字段的数据的最左边的字符匹配姓氏字典中包含的姓氏,并且所述字段的数据中在所述姓氏的右边还有字符,则将姓名对应的计数器的计数值加1,将所述字典姓氏对应的数组计数器的计数值加1,并将所述姓名对应的统计值加1;
当所述字段的数据的最左边的字符匹配姓氏字典中包含的姓氏,并且所述字段的数据中在所述姓氏的右边没有字符,则将姓氏对应的计数器的计数值加1,将所述字典姓氏对应的数组计数器的计数值加1,并将所述姓氏对应的统计值加1;
当所述采样数据中所述字段的数据全部分析完成后,所述姓氏计数器的计数值、所述数组计数器大于进行分析的所述字段的数据的总数量的设定比例,并且,统计值大于设定数值的姓氏的数量大于设定的数量阈值,则判定所述字段的数据类型为姓氏;
当所述采样数据中所述字段的数据全部分析完成后,如果姓名计数器的计数值大于进行分析的所述字段的数据的总数量的设定比例,统计所有所述字段的数据中重复的数据,当重复的数据占所有所述字段的数据的比例小于设定的阈值,则判定所述字段的数据类型为姓名。
6.根据权利要求5所述的数据表中隐私数据的发现与分类方法,其特征在于,当按照中文姓名对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
当判定某个字段的数据类型为姓氏后,对所述某个字段所在的数据记录行中的其它字段的数据进行单字拆分,将每个单字分别在名字字典中进行匹配,当每个单字都匹配名字字典中包括的名字时,则将名字对应的计数器的计数值加1;
当所述其它字段的数据全部分析完成后,如果名字计数器的计数值大于进行匹配的所述其它字段的数据的总数量,则判定所述其它字段的数据类型为名字。
7.根据权利要求1所述的数据表中隐私数据的发现与分类方法,其特征在于,当按照地址对应的隐私数据分析规则,对字段的数据进行隐私数据分析时,包括:
使用正向最大匹配法对字段的数据进行中文分词,获得所述字段的数据中的地址分词,生成所述地址分词的hash值;
判断所述字段的数据中是否包含设定的街道/路的关键字,如果包含,则将所述地址分词的hash值分别在街道/路字典、省字典、市字典、县字典、镇字典和村字典对应的hashmap索引结构进行检索;否则,将所述地址分词的hash值分别在省字典、市字典、县字典、镇字典和村字典对应的hashmap索引结构进行检索;
当所述地址分词的hash值在某个地址字典对应的hashmap索引结构中检索到,则将所述某个地址字典对应级别的计数器的计数值加1,当所述采样数据中所述字段的数据全部分析完成后,根据所述街道/路字典、省字典、市字典、县字典、镇字典和村字典六个级别对应的计数器的计数值确定所述某个字段的数据类型。
8.根据权利要求7所述的数据表中隐私数据的发现与分类方法,其特征在于,所述的当所述地址分词的hash值在某个地址字典对应的hashmap索引结构中检索到,则将所述某个地址字典对应级别的计数器的计数值加1,包括:
使用中文分词正向最大匹配法对所述字段的数据进行分词,根据六个级别的中文地址字典的内容重新组织生成另一套地址分词字典,所述地址分词字典包括:15字字典、13字字典、12字字典、11字字典、10字字典、9字字典、8字字典、7字字典、6字字典、5字字典、4字字典、3字字典、2字字典,并生成所述地址分词字典中每个字典对应的hashmap索引结构;
从所述字段的数据由左至右取出连续的15个中文字并生成hash值,长度不够15字的取最大连续中文字,将所述15个中文字对应的hash值在15字字典的hashmap索引结构中匹配;若所述15个中文字对应的hash值没有在15字字典的hashmap索引结构中匹配到,那么将所述15个中文字最右边去除两个单字,得到一个13字的中文字符串并生成hash值,将所述13个中文字对应的hash值在13字字典的hashmap索引结构进行匹配;
若所述13个中文字对应的hash值没有在13字字典中的hashmap索引结构匹配到,那么将所述13字中文字符串最右边去除一个单字,得到一个12字的中文字符串并生成hash值,将所述12个中文字对应的hash值在12字字典的hashmap索引结构进行匹配,如此重复循环,直到所述字段的数据的某个中文字的hash值在某个地址分词字典的hashmap索引结构中匹配成功,则将所述hash值对应的中文字符串为一个有效中文地址分词,并记录下来,不进行后续的hash值在地址分词字典的hashmap索引结构中的匹配操作;
若所述字段的数据的所有中文字的hash值在所有地址分词字典的hashmap索引结构中都没有匹配成功,则获得所述字段的数据的一个中文单字,将所述字段的数据左边去除获得的所述有效中文地址分词或者中文单字,得到剩余中文字符串,按照所述字段的数据在所有地址分词字典的hashmap索引结构中的匹配过程,将所述剩余中文字符串在所有地址分词字典的hashmap索引结构中进行匹配,获得若干有效中文地址分词、单字、数字或特殊字符;
从所述有效中文地址分词从左到右取词,生成所述中文地址分词的hash值,将所述中文地址分词的hash值在各个地址分词字典对应的hashmap索引结构中进行检索,当所述某个地址分词字典对应的hashmap索引结构中检索到所述中文地址分词的hash值,将所述某个地址分词字典对应级别的计数器的计数值加1;重复执行上述有效中文地址分词在各个地址分词字典对应的hashmap索引结构中进行检索的处理过程,直到所有有效中文地址分词在各个地址分词字典对应的hashmap索引结构中都检索完毕;
选取所述采样数据中的下一个数据记录中的所述字段的数据,对所述下一个数据记录中的所述字段的数据进行隐私数据匹配,直到所述采样数据中所有所述字段的数据都进行了隐私数据匹配。
9.根据权利要求8所述的数据表中隐私数据的发现与分类方法,其特征在于,所述的当所述采样数据中所述字段的数据全部分析完成后,根据所述街道/路字典、省字典、市字典、县字典、镇字典和村字典六个级别对应的计数器的计数值确定所述某个字段的数据类型,包括:
当所述街道/路字典、省字典、市字典、县字典、镇字典和村字典六个级别分别对应的计数器的计数值之和大于等于进行匹配的所述字段的数据的总数量的100%,则判断所述字段的数据类型为地址。
10.根据权利要求9所述的数据表中隐私数据的发现与分类方法,其特征在于,所述方法还包括:
当判断所述字段的数据类型为地址后,获取六个级别对应的6个地址字典分别对应的特征标识位,并计算所述每个特征标志位的计数器的计数值在整个字段数据总量所占的百分比,获取大于特定百分比的特征标志位的最宽的区间,将所述最宽的区间中包含的级别对应子类作为该字段最终的隐私数据类型特征。
CN201510175993.0A 2015-04-14 2015-04-14 数据表中隐私数据的发现与分类方法 Active CN104731976B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510175993.0A CN104731976B (zh) 2015-04-14 2015-04-14 数据表中隐私数据的发现与分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510175993.0A CN104731976B (zh) 2015-04-14 2015-04-14 数据表中隐私数据的发现与分类方法

Publications (2)

Publication Number Publication Date
CN104731976A CN104731976A (zh) 2015-06-24
CN104731976B true CN104731976B (zh) 2018-03-30

Family

ID=53455863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510175993.0A Active CN104731976B (zh) 2015-04-14 2015-04-14 数据表中隐私数据的发现与分类方法

Country Status (1)

Country Link
CN (1) CN104731976B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547791A (zh) * 2015-09-22 2017-03-29 中国移动通信集团公司 一种数据访问方法及系统
CN105447409B (zh) * 2015-12-11 2019-04-05 清华大学 一种大数据隐私处理方法及装置
CN106951796B (zh) * 2016-01-07 2020-12-15 创新先进技术有限公司 一种数据隐私保护的脱敏方法及其装置
US11698990B2 (en) * 2016-04-29 2023-07-11 Privitar Limited Computer-implemented privacy engineering system and method
CN106202011A (zh) * 2016-07-13 2016-12-07 成都知道创宇信息技术有限公司 一种提取手机号码的方法
CN106228084A (zh) * 2016-07-19 2016-12-14 北京同余科技有限公司 基于角色的敏感字段动态调整的数据保护方法和系统
CN106844298A (zh) * 2016-12-15 2017-06-13 北京航天测控技术有限公司 一种基于浮点型数据的标识方法及装置
CN108664497B (zh) * 2017-03-30 2020-11-03 大有秦鼎(北京)科技有限公司 数据匹配的方法和装置
CN107861965A (zh) * 2017-05-19 2018-03-30 广东精点数据科技股份有限公司 数据智能识别方法及系统
CN107679544A (zh) * 2017-08-04 2018-02-09 平安科技(深圳)有限公司 数据自动匹配方法、电子设备及计算机可读存储介质
CN110019764A (zh) * 2017-12-28 2019-07-16 中国移动通信集团重庆有限公司 大数据平台敏感数据的发现方法、装置、设备及存储介质
CN108776762B (zh) * 2018-06-08 2022-01-28 北京中电普华信息技术有限公司 一种数据脱敏的处理方法及装置
CN109063007A (zh) * 2018-07-10 2018-12-21 阿里巴巴集团控股有限公司 一种交流介质清洗方法和装置
CN109583224B (zh) * 2018-10-16 2023-03-31 蚂蚁金服(杭州)网络技术有限公司 一种用户隐私数据处理方法、装置、设备及系统
CN109598139A (zh) * 2018-11-21 2019-04-09 金色熊猫有限公司 隐私信息处理方法、装置、电子设备及计算机可读介质
CN109766713B (zh) * 2018-12-15 2021-01-12 中国大唐集团科学技术研究院有限公司 一种基于代理的数据动态快速脱敏实现方法
CN109726589B (zh) * 2018-12-22 2021-11-12 北京工业大学 一种面向众智云环境的隐私数据访问方法
CN109710651B (zh) * 2018-12-25 2020-11-10 成都四方伟业软件股份有限公司 数据类型识别方法及装置
CN109597892A (zh) * 2018-12-25 2019-04-09 杭州数梦工场科技有限公司 一种数据库中数据的分类方法、装置、设备及存储介质
CN111382457B (zh) * 2018-12-28 2023-08-18 神州数码医疗科技股份有限公司 一种数据风险评估方法和装置
CN109902124A (zh) * 2019-03-07 2019-06-18 姜博 一种数据处理方法及数据处理系统
CN110795464B (zh) * 2019-08-28 2022-03-04 腾讯科技(深圳)有限公司 对象标记数据的字段校验方法、装置、终端及存储介质
CN110929285B (zh) * 2019-12-10 2022-01-25 支付宝(杭州)信息技术有限公司 一种隐私数据的处理方法及装置
CN111291405A (zh) * 2020-01-17 2020-06-16 北京工业大学 一种面向个人隐私数据泄露的数据溯源方法
CN111539021A (zh) * 2020-04-26 2020-08-14 支付宝(杭州)信息技术有限公司 一种数据隐私类型识别方法、装置及设备
CN111881480A (zh) * 2020-07-31 2020-11-03 平安付科技服务有限公司 隐私数据加密方法、装置、计算机设备及存储介质
CN112132238A (zh) * 2020-11-23 2020-12-25 支付宝(杭州)信息技术有限公司 一种识别隐私数据的方法、装置、设备和可读介质
CN112800447A (zh) * 2021-01-27 2021-05-14 北京明略软件系统有限公司 一种基于数据含义配置格式保留加密的方法与系统
CN114980087B (zh) * 2021-02-26 2024-08-23 中国联合网络通信集团有限公司 数据加密的方法和装置
CN113569005B (zh) * 2021-06-17 2024-02-20 国家电网有限公司 一种基于数据内容的大规模数据特征智能化提取方法
CN115081629A (zh) * 2022-08-16 2022-09-20 杭州比智科技有限公司 一种敏感数据发现与识别的深度学习方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276327A (zh) * 2007-03-27 2008-10-01 富士通株式会社 地址识别装置
CN101667207A (zh) * 2009-09-18 2010-03-10 南京联创科技集团股份有限公司 基于web2.0中ajax的员工身份快速识别选择方法
CN102110123A (zh) * 2009-12-29 2011-06-29 中国人民解放军国防科学技术大学 倒排索引建立方法
CN102663105A (zh) * 2012-04-13 2012-09-12 北京搜狗科技发展有限公司 号码信息数据库的建立方法及系统
CN102929896A (zh) * 2011-08-13 2013-02-13 句容今太科技园有限公司 基于隐私保护的数据挖掘方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484230B2 (en) * 2010-09-03 2013-07-09 Tibco Software Inc. Dynamic parsing rules

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276327A (zh) * 2007-03-27 2008-10-01 富士通株式会社 地址识别装置
CN101667207A (zh) * 2009-09-18 2010-03-10 南京联创科技集团股份有限公司 基于web2.0中ajax的员工身份快速识别选择方法
CN102110123A (zh) * 2009-12-29 2011-06-29 中国人民解放军国防科学技术大学 倒排索引建立方法
CN102929896A (zh) * 2011-08-13 2013-02-13 句容今太科技园有限公司 基于隐私保护的数据挖掘方法
CN102663105A (zh) * 2012-04-13 2012-09-12 北京搜狗科技发展有限公司 号码信息数据库的建立方法及系统

Also Published As

Publication number Publication date
CN104731976A (zh) 2015-06-24

Similar Documents

Publication Publication Date Title
CN104731976B (zh) 数据表中隐私数据的发现与分类方法
CN104750852B (zh) 中文地址数据的发现与分类方法
US11704325B2 (en) Systems and methods for automatic clustering and canonical designation of related data in various data structures
CN104731977B (zh) 电话号码数据的发现与分类方法
CN107423279B (zh) 一种金融信贷短信的信息抽取和分析方法
CN107844559A (zh) 一种文件分类方法、装置及电子设备
US20060206306A1 (en) Text mining apparatus and associated methods
US20070282900A1 (en) Registration and maintenance of address data for each service point in a territory
US20070067285A1 (en) Method and apparatus for automatic entity disambiguation
US20030014448A1 (en) Method and system for normalizing dirty text in a document
CN104077407B (zh) 一种智能数据搜索系统及方法
CN111291816A (zh) 针对用户分类模型进行特征处理的方法及装置
CN111767716A (zh) 企业多级行业信息的确定方法、装置及计算机设备
US20060224682A1 (en) System and method of screening unstructured messages and communications
CN110599289A (zh) 一种裁判文书格式化处理方法
CN109885658B (zh) 指标数据提取方法、装置和计算机设备
CN109740642A (zh) 发票类别识别方法、装置、电子设备及可读存储介质
CN108924371A (zh) 电力客服过程中通过来电号码识别户号的方法
Mahmud et al. Comparison of machine learning algorithms for sentiment classification on fake news detection
CN113505117A (zh) 基于数据指标的数据质量评估方法、装置、设备及介质
CN104731978B (zh) 中文姓名数据的发现与分类方法
KR102710397B1 (ko) 금융 마이데이터 기반 기계학습을 위한 말뭉치를 이용한 거래 적요 데이터 분석 장치 및 방법과 이를 위한 컴퓨터 프로그램
KR101147508B1 (ko) 검색식 추천 장치 및 방법
CN111797213A (zh) 一种从非结构化网络信息中挖掘金融风险线索的方法
CN104951869A (zh) 一种基于工作流的舆情监控方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 510665 209, 201 and 202 of Hua Cai street, Jianye Road, Tianhe District Industrial Park, Guangzhou, Guangdong, China, 209

Patentee after: Guangzhou cloud chart data Technology Co., Ltd.

Address before: 100083 Zhongguancun East Road, Haidian District, Beijing, 66, 1, building 2204.

Patentee before: Massive cloud (Beijing) data Technology Co., Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 3f301, building 2, Jiadu science and technology building, No. 4, Jiangong Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Mass Database Technology Co., Ltd

Address before: No. 201, 202-209, 54-58 Huacui Street, Jianye Road, Tianhe District, Guangzhou

Patentee before: Guangzhou cloud chart data Technology Co.,Ltd.

CP03 Change of name, title or address