数据脱敏、逆脱敏方法及装置、存储介质、终端与流程

文档序号:17791406发布日期:2019-05-31 20:18阅读:387来源:国知局
数据脱敏、逆脱敏方法及装置、存储介质、终端与流程

本发明涉及数据处理技术领域,尤其涉及一种数据脱敏、逆脱敏方法及装置、存储介质、终端。



背景技术:

随着商业数据管理平台(datamanagementplatform,dmp)步入大数据时代,目前可以在海量数据中进行数据挖掘与分析,为公司发现新的商业机遇提供数据支持。但在对数据进行挖掘利用的过程中,不可避免的产生数据安全问题。例如在商业dmp系统中,存储着大量个人姓名、出生日期、手机号码等一系列的敏感数据,因此,如何在程序开发、测试、业务分析的场景下,安全有效使用这些数据也就成为亟需解决的问题。一般情况下,会用数据脱敏的方式来解决这个问题。数据脱敏是指对敏感数据进行关键字屏蔽、字符替换、字符变形、随机字符替换等处理方式,达到对用户访问敏感数据真实内容的权限控制。对于存储在分布式系统中的原始敏感数据,通过脱敏处理,不同权限的业务用户可以看到不同的展现结果,且不会丢失业务统计所需要的维度。这样处理之后即可以满足业务统计需求,也保护了个人敏感数据。

现有技术对于姓名的脱敏处理,第一种方式是将名字脱敏为某一个字,例如“张三”,“李四”等。第二种情况是姓名随机变换。

但是,第一种方式造成同姓用户姓名雷同,无法看到客户分布情况。第二种方式会造成按照姓氏统计时完全没有意义。



技术实现要素:

本发明解决的技术问题是如何在实现对数据脱敏的同时保留数据的统计特性。

为解决上述技术问题,本发明实施例提供一种数据脱敏方法,数据脱敏方法包括:一种数据脱敏方法,包括:获取待脱敏数据,所述待脱敏数据为姓名;确定所述姓名中的姓氏与名字,所述姓氏与所述名字分别对应至少一个字;根据所述名字以及各个字与统一码之间的映射关系获得所述名字对应的原始统一码;对于所述名字中每个字对应的原始统一码,按照预设偏移量确定所述名字中每个字对应的新的统一码;确定各个新的统一码对应的字为脱敏后的名字。

可选的,所述按照预设偏移量确定所述名字中每个字对应的新的统一码包括:在所述名字中每个字对应的原始统一码的基础上增加所述预设偏移量,以得到所述名字中每个字对应的新的统一码。

可选的,采用以下公式计算所述新的统一码:newposition=[oldpostion-19968+deltarange]mod20901+19968;其中,newposition表示新的统一码,oldpostion表示原始统一码,deltarange表示所述预设偏移量。

可选的,所述确定所述姓名中的姓氏与名字包括:将所述姓名中各个字与知识库中的标准姓氏进行匹配,以得到匹配结果;至少根据匹配结果将与所述标准姓氏相匹配的所述姓名中的字作为所述姓氏。

可选的,所述匹配结果包括所述姓名中与所述标准姓氏相匹配的至少一个字,所述至少根据匹配结果将与所述标准姓氏相匹配的所述姓名中字作为所述姓氏包括:确定所述匹配结果中与所述标准姓氏相匹配的至少一个字在所述姓名中的位置,所述位置包括字在所述姓名中的顺序;确定位置处于所述姓名的首位的字,以作为所述姓氏。

可选的,所述获取待脱敏数据包括:获取原始数据;利用正则表达式对所述原始数据中的姓名进行识别,以得到所述待脱敏数据。

为解决上述技术问题,本发明实施例还公开了一种数据逆脱敏方法,数据逆脱敏方法包括:获取脱敏后的名字;按照所述脱敏后的名字以及各个字与统一码之间的映射关系获得所述脱敏后的名字对应的新的统一码;对于所述脱敏后的名字中每个字对应的新的统一码,按照预设偏移量确定所述脱敏后的名字中每个字对应的原始统一码;确定各个原始统一码对应的字为脱敏前的名字。

为解决上述技术问题,本发明实施例还公开了一种数据脱敏装置,数据脱敏装置包括:脱敏数据获取模块,适于获取待脱敏数据,所述待脱敏数据为姓名;分离模块,适于确定所述姓名中的姓氏与名字,所述姓氏与所述名字分别对应至少一个字;第一映射模块,适于根据所述名字以及各个字与统一码之间的映射关系获得所述名字对应的原始统一码;脱敏模块,适于对于所述名字中每个字对应的原始统一码,按照预设偏移量确定所述名字中每个字对应的新的统一码;脱敏后数据确定模块,适于确定各个新的统一码对应的字为脱敏后的名字。

本发明实施例还公开了一种数据逆脱敏装置,数据逆脱敏装置包括:脱敏后数据获取模块,适于获取脱敏后的数据,所述脱敏后的数据包括脱敏后的名字;第二映射模块,适于按照所述脱敏后的名字以及各个字与统一码之间的映射关系获得所述脱敏后的名字对应的新的统一码;逆脱敏模块,适于对于所述脱敏后的名字中每个字对应的新的统一码,按照预设偏移量确定所述脱敏后的名字中每个字对应的原始统一码;脱敏前数据确定模块,适于确定各个原始统一码对应的字为脱敏前的名字。

本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述数据脱敏方法的步骤,或者执行所述数据逆脱敏方法的步骤。

本发明实施例还公开了一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述数据脱敏方法的步骤,或者执行所述数据逆脱敏方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明技术方案通过各个字与统一码之间的映射关系可以获得所述姓氏对应的原始统一码,在原始统一码的基础上,按照预设偏移量确定新的统一码,以及脱敏后的名字,从而实现对姓名这种隐私数据的可靠保护,保证后续姓名数据的安全传输。此外,由于统一码与各个字之间具备映射关系,因此通过预设偏移量以及所述映射关系还可以实现对脱敏后的数据的还原,从而保证了数据的统计特性。

进一步地,采用以下公式计算所述新的统一码:newposition=[oldpostion-19968+deltarange]mod20901+19968;其中,newposition表示新的统一码,oldpostion表示原始统一码,deltarange表示所述预设偏移量。本发明技术方案中,在所述姓名为汉字时,通过上述公式确定的新的统一码,可以保证新的统一码对应的字仍然是汉字,而不是非汉字,从而保证了脱敏后的姓名的可读性,提升用户体验。

附图说明

图1是本发明实施例一种数据脱敏方法的流程图;

图2是本发明实施例一种数据逆脱敏方法的流程图;

图3是本发明实施例一种数据脱敏装置的结构示意图;

图4是本发明实施例一种数据逆脱敏装置的结构示意图。

具体实施方式

如背景技术中所述,第一种方式造成同姓用户姓名雷同,无法看到客户分布情况。第二种方式会造成按照姓氏统计时完全没有意义。

本发明技术方案通过各个字与统一码之间的映射关系可以获得所述姓氏对应的原始统一码,在原始统一码的基础上,按照预设偏移量确定新的统一码,以及脱敏后的名字,从而实现对姓名这种隐私数据的可靠保护,保证后续姓名数据的安全传输。此外,由于统一码与各个字之间具备映射关系,因此通过预设偏移量以及所述映射关系还可以实现对脱敏后的数据的还原,从而保证了数据的统计特性。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例一种数据脱敏方法的流程图。

图1所示数据脱敏方法可以包括以下步骤:

步骤s101:获取待脱敏数据,所述待脱敏数据为姓名;

步骤s102:确定所述姓名中的姓氏与名字,所述姓氏与所述名字分别对应至少一个字;

步骤s103:根据所述名字以及各个字与统一码之间的映射关系获得所述名字对应的原始统一码;

步骤s104:对于所述名字中每个字对应的原始统一码,按照预设偏移量确定所述名字中每个字对应的新的统一码;

步骤s105:确定各个新的统一码对应的字为脱敏后的名字。

需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。

在步骤s101的具体实施中,可以直接获取待脱敏的姓名。也可以是获取原始数据,并从原始数据中筛选出待脱敏的姓名。

在一个非限制性的实施例中,步骤s101可以包括以下步骤:获取原始数据;利用正则表达式对所述原始数据中的姓名进行识别,以得到所述待脱敏数据。

具体地,可以采用如下正则表达式对中文姓名进行识别:/^([a-za-z0-9\u4e00-\u9fa5\·]{1,10})$/。

本领域技术人员可以理解的是,也可以采用其他任意可实施的方式识别姓名,本发明实施例对此不作限制。

在一个非限制性的实施例中,在获取待脱敏的姓名后,还可以对待脱敏数据进行过滤,以筛除不符合预设格式的数据。具体实施中,对于中文姓名,可以判断姓名中是否存在非汉字字符,如果存在,则筛除该姓名;否则保留该姓名,以进行下一步的脱敏操作。相应地,对于其他语言的姓名,可以保留仅包含该语言的姓名,以进行下一步的脱敏操作。

在一个典型应用场景中,从dmp平台的分布式数据库中读取数据,所述数据可以是以表格的形式存储。采用正则表达式从表格中筛选出待脱敏的姓名。如果姓名中包含非汉字字符,则将该姓名标记错误。未被标记错误的姓名进入下一步的脱敏操作。

在步骤s102的具体实施中,对于每一姓名,确定其姓氏和名字。具体地,对于姓名“张三”,其姓氏为“张”,名字为“三”。

在步骤s103的具体实施中,统一码(unicode)与各个字之间存在映射关系。由于各个字对应的统一码在数值上是连续的,因此可以保证原始统一码的连续性和可还原性。例如,对于汉字,与所述汉字具备映射关系的统一码的取值范围为[4e00,9fa5];对于韩文,与所述韩文具备映射关系的统一码的取值范围为[ac00,d7a3];对于日文,与所述日文具备映射关系的统一码的取值范围为[0800,4e00]。

利用上述映射关系可以获得所述名字对应的原始统一码。例如,对于名字“东”,其对应的始统一码为4e1c。

可以理解的是,其他语言的文字与统一码的映射关系可参照现有技术,此处不再赘述。

为了保留姓名的统计特性,在步骤s104的具体实施中,可以仅对名字中每个字对应的原始统一码确定每个字对应的新的统一码。具体实施中,所述预设偏移量可以是预先设置的。在确定新的统一码时,可以是直接在原始统一码的基础上增加或减少预设偏移量;也可以是将预设偏移量与常数进行组合,并在原始统一码的基础上增加或减少组合后的数值等,本发明实施例对此不作限制。

在一个非限制性的实施例中,图1所示步骤s104可以包括以下步骤:在所述名字中每个字对应的原始统一码的基础上增加所述预设偏移量,以得到所述名字中每个字对应的新的统一码。

进而在步骤s105的具体实施中,可以根据各个新的统一码确定所述名字对应的脱敏后的名字。例如,

具体地,由于姓名中的姓氏不会泄露用户的隐私信息,因此对于姓名中的所述姓氏,可以保留其原始值。例如,姓氏为“张”,脱敏后的姓氏为“张”。

在本发明一个具体应用场景中,对于姓名李东,其姓氏为“李”,其名字为“东”。名字“东”对应的原始统一码为4e1c,其对应的新的统一码为4e22,该新的统一码对应的汉字为“丢”。因此,名字“李东”脱敏后的数据为“李丢”。脱敏后的数据将用于存储以及传输等过程,以保证用户姓名的安全性。

本发明实施例通过各个字与统一码之间的映射关系可以获得所述姓氏对应的原始统一码,在原始统一码的基础上,按照预设偏移量确定新的统一码,以及脱敏后的名字,从而实现对姓名这种隐私数据的可靠保护,保证后续姓名数据的安全传输。此外,由于统一码与各个字之间具备映射关系,因此通过预设偏移量以及所述映射关系还可以实现对脱敏后的数据的还原,从而保证了数据的统计特性。

本发明一个优选实施例中,采用以下公式计算所述新的统一码:newposition=[oldpostion-19968+deltarange]mod20901+19968;其中,newposition表示新的统一码,oldpostion表示原始统一码,deltarange表示所述预设偏移量。

本实施例中,所述名字中各个字为汉字,与所述汉字具备映射关系的统一码的取值范围为[4e00,9fa5]。其中,取值范围中起始统一码4e00的数值最小,其相对于统一码0000的偏移量为19968。上述取值范围内统一码的数量为20901,也即能够用统一码进行映射的汉字的数量为20901。通过采用上述公式计算新的统一码,可以保证新的统一码仍然落在上述取值范围内,新的统一码对应的字仍然是汉字,而不是非汉字;也即脱敏后的姓名仍然是中文姓名,从而保证了脱敏后的姓名的可读性,提升用户体验。

在本发明一个非限制性的实施例中,所述姓名中的多个字为韩文,与所述韩文具备映射关系的统一码的范围为[ac00,d7a3];可以采用以下公式计算所述名字中每个字对应的新的统一码:newposition=[oldpostion-44032+deltarange]mod11171+44032;其中,newposition表示新的统一码,oldpostion表示原始统一码,deltarange表示所述预设偏移量;44032表示取值范围中起始统一码ac00相对于统一码0000的偏移量;11171表示取值范围内统一码的数量。

在本发明一个非限制性的实施例中,所述姓名中的多个字为日文,与所述日文具备映射关系的统一码的范围为[0800,4e00]。可以采用以下公式计算所述名字中每个字对应的新的统一码:newposition=[oldpostion-2048+deltarange]mod17920+2048;其中,newposition表示新的统一码,oldpostion表示原始统一码,deltarange表示所述预设偏移量;2048表示取值范围中起始统一码0800相对于统一码0000的偏移量;17920表示取值范围内统一码的数量。

在一个非限制性的实施例中,图1所示步骤s102可以包括以下步骤:将所述姓名中各个字与知识库中的标准姓氏进行匹配,以得到匹配结果;至少根据匹配结果将与所述标准姓氏相匹配的所述姓名中的字作为所述姓氏。

本实施例中,知识库中的标准姓氏可以是预先设置的。例如,姓名为汉字时,可以将百家姓加入所述知识库。

通过将姓名中的各个字与知识库中的标准姓氏进行匹配,可以确定姓名中的姓氏。其中,匹配结果可以包括与标准姓氏相匹配的所述姓名中的字,并将该字作为姓氏。此外,将所述姓名中除姓氏之外的字作为名字。

例如,对于姓名“张三”,将其与知识库中的标准姓氏进行匹配,可以确定标准姓氏“张”相匹配的所述姓名中的字为“张”,因此确定“张”为姓氏,“三”为名字。

进一步地,所述匹配结果包括所述姓名中与所述标准姓氏相匹配的至少一个字。为了保证姓氏确定的准确性,可以确定所述匹配结果中与所述标准姓氏相匹配的至少一个字在所述姓名中的位置,所述位置包括字在所述姓名中的顺序;确定位置处于所述姓名的首位的字,以作为所述姓氏。

具体地,对于姓名为汉字的情况,在姓名中会出现多个字与知识库中的标准姓氏相匹配。例如,对于姓名“张一周”,姓名中的“张”、“周”分别与知识库中的标准姓氏“张”和“周”相匹配,在这种情况下,可以确定位于姓名首位的字“张”为姓氏。

图2是本发明实施例一种数据逆脱敏方法的流程图。

图2所示数据逆脱敏方法可以包括以下步骤:

步骤s201:获取脱敏后的名字;

步骤s202:按照所述脱敏后的名字以及各个字与统一码之间的映射关系获得所述脱敏后的名字对应的新的统一码;

步骤s203:对于所述脱敏后的名字中每个字对应的新的统一码,按照预设偏移量确定所述脱敏后的名字中每个字对应的原始统一码;

步骤s204:确定各个原始统一码对应的字为脱敏前的名字。

本实施例中,对于脱敏后的名字,可以按照预设偏移量、以及各个字与统一码之间的映射关系确定脱敏前的名字。对于脱敏后的姓氏,可以按照各个字与统一码之间的映射关系确定脱敏前的姓氏。

具体地,可以采用以下公式计算所述原始统一码:

newposition=[oldpostion-19968+deltarange]mod20901+19968;其中,newposition表示新的统一码,oldpostion表示原始统一码,deltarange表示所述预设偏移量。

可以理解的是,关于本发明实施例的更多具体实施方式,可参照图1所示实施例,此处不再赘述。

在本发明一个典型应用场景中,在dmp中存储有用户注册信息表,用户注册信息表包括用户的姓名。用户注册表中的姓名是脱敏后的姓名。在dmp业务统计当中,大量业务订单需要通过姓名加其他字段作为关键字(key)与用户注册信息表做关联。在这种情况下,可以对用户注册信息表中的姓名执行图2所示的各个步骤,以恢复脱敏前的姓名,并用于与业务订单进行关联;避免了现有技术中将名字脱敏为同一个字或随机变换导致的无法还原原始姓名的问题,通过逆脱敏实现了数据关联。此外,由于订单量通常较大,而用户注册表的数据量较小,因此上述方案还可以避免对大量订单中的姓名进行脱敏运算,减小关联过程中的计算量,提高关联效率。

请参照图3,本发明实施例还公开了一种数据脱敏装置。数据脱敏装置30可以包括:脱敏数据获取模块301、分离模块302、第一映射模块303、脱敏模块304和脱敏后数据确定模块305。

其中,脱敏数据获取模块301适于获取待脱敏数据,所述待脱敏数据为姓名;分离模块302适于确定所述姓名中的姓氏与名字,所述姓氏与所述名字分别对应至少一个字;第一映射模块303适于根据所述名字以及各个字与统一码之间的映射关系获得所述名字对应的原始统一码;脱敏模块304适于对于所述名字中每个字对应的原始统一码,按照预设偏移量确定所述名字中每个字对应的新的统一码;脱敏后数据确定模块305适于确定各个新的统一码对应的字为脱敏后的名字。

关于所述数据脱敏装置30的工作原理、工作方式的更多内容,可以参照图1至图2中的相关描述,这里不再赘述。

请参照图4,本发明实施例还公开了一种数据逆脱敏装置。数据逆脱敏装置40可以包括:脱敏后数据获取模块401、第二映射模块402、逆脱敏模块403和脱敏前数据确定模块404。

其中,脱敏后数据获取模块401适于获取脱敏后的数据,所述脱敏后的数据包括脱敏后的名字;第二映射模块402适于按照所述脱敏后的名字以及各个字与统一码之间的映射关系获得所述脱敏后的名字对应的新的统一码;逆脱敏模块403适于对于所述脱敏后的名字中每个字对应的新的统一码,按照预设偏移量确定所述脱敏后的名字中每个字对应的原始统一码;脱敏前数据确定模块404适于确定各个原始统一码对应的字为脱敏前的名字。

关于所述数据逆脱敏装置40的工作原理、工作方式的更多内容,可以参照图1至图2中的相关描述,这里不再赘述。

本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时可以执行图1或图2中所示方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。

本发明实施例还公开了一种终端,所述终端可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令。所述处理器运行所述计算机指令时可以执行图1或图2中所示方法的步骤。所述终端包括但不限于手机、计算机、平板电脑等终端设备。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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