一种中文姓名数据的脱敏方法及装置与流程

文档序号:11729470阅读:9865来源:国知局
一种中文姓名数据的脱敏方法及装置与流程
本发明涉及信息安全
技术领域
,具体而言,涉及一种中文姓名数据的脱敏方法及装置。
背景技术
:随着大数据时代的到来,从大数据中做挖掘分析,可以发现巨大的商业价值。但是这些挖掘利用同时也带来了巨大的安全问题,例如在数据中可能存在个人姓名隐私数据,因此,在业务分析、开发测试和审计监管等使用过程中如何保护这些数据也就成为非常重要的安全需求。一般情况下,选择对个人姓名的隐私保护会选择数据脱敏的方式。数据脱敏,又称为数据漂白、数据去隐私化或数据变形,指对某些敏感信息通过脱敏过程进行数据变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其他非生产环境以及外包环境中安全地使用脱敏后的真实数据集。研究人员发现,现有技术中为了保护客户的隐私,通常将客户的姓名均脱敏为同一个常用的名字,比如“张三”、“李四”等,但是这种方法造成所有姓名均一样,无法看出客户的分布情况,不利于做数据统计,若为了改变这种情况对客户的姓名进行随机变换,又会造成所得的姓名不符合中文姓名的特点。综上,现有的姓名脱敏方法通常会造成失去姓名本身的属性特点,从而在用于数据分析时价值不大的问题。技术实现要素:有鉴于此,本发明的目的在于提供一种中文姓名数据的脱敏方法及装置,以提高脱敏后的姓名的真实性。第一方面,本发明实施例一种中文姓名数据的脱敏方法,包括:获取待脱敏姓名;针对所述待脱敏姓名中的每一个汉字,从预存的多级字库中,查找该汉字所属级别的字库;其中,不同级别的字库中的汉字的属性存在不同,同一级别字库中的汉字的属性相同;按照预设的单字变换算法,确定该汉字在所属级别的字库中对应的脱敏后的汉字;基于所述待脱敏姓名中的每一个汉字对应的脱敏后的汉字,生成脱敏后的姓名。结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,针对待脱敏姓名中的任一汉字,按照预设的单字变换算法,确定该任一汉字在所属级别的字库中对应的脱敏后的汉字,包括:按照预设的单字变换算法,确定在该任一汉字所属级别的字库中,所述脱敏后的汉字相对该任一汉字的位置偏移量;根据该任一汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定所述脱敏后的汉字。结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,所述根据该任一汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定所述脱敏后的汉字,包括:根据以下公式确定所述脱敏后的汉字:nrespos=(npos+nbias+k)modnlevellength;其中,nrespos为该任一汉字对应的脱敏后的汉字在所属级别的字库中的位置序号,npos为该任一汉字在所属字库中的位置序号,nbias为所述脱敏后的汉字相对该任一汉字的位置偏移量,k为设置的非负整数,nlevellength为所述任一汉字所属级别的字库的汉字个数;mod为取模运算。结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,按照以下公式确定所述脱敏后的汉字相对该任一汉字的位置偏移量:nbias=nlevellength*nnamelen/m其中,nnamelen为待脱敏姓名的字数,m为设置的正整数。结合第一方面,本发明实施例提供第一方面的第四种可能的实施方式,当所述待脱敏姓名中的任一汉字不是该待脱敏姓名中的第一个汉字时,从预存的多级字库中,查找该汉字所属级别的字库之前,还包括:将所述多级字库的前两个级别的字库中的汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字在后的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对在所属的原级别字库中的其它汉字的位置不变。结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,所述确定该汉字在所属级别的字库中对应的脱敏后的汉字之后,还包括:获取已脱敏姓名;针对所述已脱敏姓名中的每一个脱敏汉字,从所述预存的多级字库中,查找该已脱敏汉字所属级别的字库;按照预设的单字还原算法,确定该已脱敏汉字在所属级别的字库中对应的脱敏前的汉字;基于所述已脱敏姓名中的每一个已脱敏汉字对应的脱敏前的汉字,生成脱敏前的姓名。结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,所述针对所述已脱敏姓名中的任一已脱敏汉字,按照预设的单字还原算法,确定该任一已脱敏汉字在所属级别的字库中对应的脱敏前的汉字,包括:按照预设的单字还原算法,确定在该任一已脱敏汉字所属级别的字库中,所述脱敏前的汉字相对该任一已脱敏汉字的位置偏移量;根据该任一已脱敏汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定所述脱敏前的汉字。结合第一方面的第六种可能的实施方式,本发明实施例提供了第一房名的第七种可能的实施方式,所述根据该任一已脱敏汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定所述脱敏前的汉字,包括:根据以下公式确定所述脱敏前的汉字:nrespos=(npos+nlevellength-nbias-k)modnlevellength;其中,nrespos为该任一已脱敏汉字对应的脱敏前的汉字在所属级别的字库中的位置序号,npos为该任一已脱敏汉字在所属字库中的位置序号,nbias为所述脱敏前的汉字相对该任一已脱敏汉字的位置偏移量,k为设置的非负整数,nlevellength为所述任一已脱敏汉字所属级别的字库的汉字个数;mod为取模运算;根据以下公式确定所述脱敏前的汉字相对该任一已脱敏汉字的位置偏移量:nbias=nlevellength×nnamelen/m其中,nnamelen为已脱敏姓名的字数,m为设置的正整数。第二方面,本发明实施例提供了一种中文姓名数据的脱敏装置,包括:获取模块,用于获取待脱敏姓名;执行模块,用于针对所述待脱敏姓名中的每一个汉字,从预存的多级字库中,查找该汉字所属级别的字库;其中,不同级别的字库中的汉字的属性存在不同,同一级别字库中的汉字的属性相同;确定模块,用于按照预设的单字变换算法,确定该汉字在所属级别的字库中对应的脱敏后的汉字;输出模块,用于基于所述待脱敏姓名中的每一个汉字对应的脱敏后的汉字,生成脱敏后的姓名。第三方面,本发明实施例还提供一种中文姓名数据的脱敏方法,包括:第一设备接收第二设备发送的待脱敏姓名集合;所述待脱敏姓名集合中包含多个待脱敏姓名;针对每一个待脱敏姓名中的每一个汉字,从预存的多级字库中,查找该汉字所属级别的字库,其中不同级别的字库中的汉字的属性存在不同,同一级别字库中的汉字的属性相同,按照预设的单字变换算法,确定该汉字在所属级别的字库中对应的脱敏后的汉字,基于该待脱敏姓名中的每一个汉字对应的脱敏后的汉字,生成脱敏后的姓名;将所述待脱敏姓名集合中的每一个待脱敏姓名对应的脱敏后的姓名发送给所述第二设备。采用本发明实施例,可以将待脱敏姓名中的每一个汉字脱敏成同级别字库中的汉字,从而使脱敏后的姓名仍然保持原有的属性,也即保持姓名原有的特点不变,既保护了用户隐私,又便于后续数据分析利用。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本发明实施例1所提供的一种中文姓名数据的脱敏方法的流程图;图2示出了本发明实施例1所提供的针对待脱敏姓名中任一汉字的脱敏方法的流程图;图3示出了本发明实施例1所提供的一种针对脱敏姓名还原的方法流程图;图4示出了本发明实施例1所提供的针对脱敏姓名中任一脱敏汉字的还原方法的流程图;图5示出了本发明实施例2所提供的一种中文姓名数据的脱敏装置的结构示意图;图6示出了本发明实施例3所提供的一种中文姓名数据的脱敏方法的流程图;图7示出了本发明实施例3所提供的一种针对脱敏姓名还原的方法流程图。图标:500-获取模块;510-执行模块;520-确定模块;530-输出模块。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1本发明实施例1提供了一种中文姓名数据的脱敏方法,其方法流程图见图1,具体步骤如下:s100,获取待脱敏姓名。s110,针对该待脱敏姓名中的每一个汉字,从预存的多级字库中,查找该汉字所属级别的字库;其中,不同级别字库中的汉字的属性存在不同,同一级别字库中的汉字的属性相同。s120,按照预设的单字变换算法,确定该汉字在所属级别的字库中对应的脱敏后的汉字。s130,基于待脱敏姓名中的每一汉字对应的脱敏后的汉字,生成脱敏后的姓名。其中,多级字库包括至少两个级别的字库,且不同的级别的字库中的汉字的属性不同,属性包括该字库的汉字的个数和常用性。根据对常用字进行考察,提出了四级字库。常用字的考察情况如下:(1)国家语言文字工作委员会、国家教育委员会1988年发布的《现代汉语常用字表》,其中将常用汉字分为常用字(2500字)和次常用字(1000字)两个部分。其中,经计算机抽样检测,常用字在中文资料中覆盖率达到99.48%。(2)gb2312是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集-基本集》。目前,中国大陆几乎所有的中文系统和国际化软件都支持gb2312。gb2312标准供收录了6763个汉字,其中一级汉字3755个,二级汉字3008个。(3)还用出现概率极低的一些字,称为生僻字,超出了gb2312范围的汉字,基本可以使用gb13000字符集来补充表示。该四级字库包括四个级别,分别为第零级、第一级、第二级和第三级,其中,第零级字库中的汉字为常用姓氏字,即将常见的206个中文姓氏设计为零级字库,这其中包括百家姓中的前189个汉字,另外加上挑选的十七个常见复姓中的第一个字。第一级字库中的汉字为常用姓名用字,即《现代汉语常用字表》中的常用字选择2311个,作为常见的姓名用字。《现代汉语常用字表》中的常用字为2500个,在这里面将那些在第零级字库中出现的汉字剔除,以及明显不合适作为姓名的汉字。第二级字库中的汉字为扩展姓名用字,即从gb2312字符集中选择4246个,作为扩展姓名字。gb2312标准一级和二级汉字宫6763个,在去除第零级、第一级中出现的,剩余4246个。第三级字库中的汉字为参考姓名字,考虑到姓名中的生僻字以及更多的取名可能,将gb1300字符集合中的汉字去除上述三级中出现过的汉字,剩余的所有汉字作为参考姓名字。综上,这种四级字库结构,将中文汉字大致按照姓名用字的使用频率进行了分级,“姓”和“名”中用的较多的汉字大部分将出现在第零级和第一级字库中,然后使用第二级字库来表示更多的常用汉字,第三级字库则为了保证生僻字时能够顺利脱敏处理。在步骤s120中,针对该待脱敏姓名中的任一汉字,按照预设的单字变换算法,确定该任一汉字在所属级别的字库中对应的脱敏后的汉字,包括如下步骤,其流程图见图2。s200,按照预设的单字变换算法,确定在该任一汉字所属级别的字库中,脱敏后的汉字相对该任一汉字的位置偏移量。s210,根据该任一汉字在所属字库中的位置,以及确定的上述位置偏移量,确定脱敏后的汉字。其中预存的单字变换算法,是根据预设公式确定脱敏后的汉字。偏移量在此的意思是一个汉字相对于另一个汉字在多级字库中的移动字数。在步骤s210中,根据该任一汉字在所属级别的字库中的位置,以及确定的上述位置偏移量,确定脱敏后的汉字,包括:根据公式(1)确定脱敏后的汉字,公式(1)如下:nrespos=(npos+nbias+k)modnlevellength(1)其中,nrespos为该任一汉字对应的脱敏后的汉字在所属级别的字库中的位置序号,npos为该任一汉字在所属字库中的位置序号,nbias为所述脱敏后的汉字相对该任一汉字的位置偏移量,k为设置的非负整数,nlevellength为所述任一汉字所属级别的字库的汉字个数;mod为取模运算。其中偏移量nbias的计算根据以下公式(2):nbias=nlevellength×nnamelen/m(2)其中,nnamelen为待脱敏姓名的字数,m为设置的正整数,nbias取整数。按照四级数据库的属性,当待脱敏姓名中的任一汉字不是该待脱敏姓名中的第一个汉字时,即该汉字不是该待脱敏姓名中的“姓”时,或者当待脱敏姓名为复姓,该任一汉字为该复姓的第二个字时,那么在步骤s110中,即从预存的多级字库中,查找该汉字所属的级别的字库之前,还包括:将该多级字库的前两个级别的字库中的汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字再和的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对于所属的原级别字库中的其它汉字的位置不变。比如,在上述四级字库中,当待脱敏姓名中的任一汉字,不是该待脱敏姓名的第一个汉字时,则将该四级字库中的第零级和第一级字库按照第零级字库在前,第一级字库在后进行合并,组成一个新的字库,该新的字库中的每个汉字在合并后的字库中相对于所属的原第零级、第一级字库中的其它汉字的位置不变。在对待脱敏姓名进行每一个汉字的脱敏后,按照与待脱敏姓名中的每个汉字一一对应的顺序,将脱敏后的汉字组成脱敏姓名。在脱敏过程中,有一些例外情况,比如某一待脱敏姓名中的某一待脱敏字符不是汉字,或者是汉字但不属于预存的多级字库,则在脱敏过程中不对该字符做任何处理,直接输出,作为该待脱敏字符的脱敏字符。在获得脱敏姓名之后,还可以将脱敏姓名还原成脱敏前的姓名,其方法流程图见图3所示,具体步骤如下所示:s300,获取已脱敏姓名。s310,针对该已脱敏姓名中的每一个脱敏汉字,从预存的多级字库中,查找该已脱敏汉字所属的字库。s320,按照预设的单字还原算法,确定该已脱敏汉字在所属级别的字库中对应的脱敏前的汉字。s330,基于已脱敏姓名中的每一个脱敏汉字对应的脱敏前的汉字,生成脱敏前的姓名。其中,在步骤s320中,针对已脱敏姓名中的任一脱敏汉字,按照预设的单字还原算法,确定该任一已脱敏汉字在所属级别的字库中对应的脱敏前的汉字,包括如下步骤,其流程图见图4。s400,按照预设的单字还原算法,确定在该任一已脱敏汉字所属级别的字库中,所述脱敏前的汉字相对该任一已脱敏汉字的位置偏移量。s410,根据该任一已脱敏汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定脱敏前的汉字。在步骤s410中,根据以下公式(3)确定脱敏前的汉字:nrespos=(npos+nlevellength-nbias-k)modnlevellength(3)其中,nrespos为该任一已脱敏汉字对应的脱敏前的汉字在所属级别的字库中的位置序号,npos为该任一已脱敏汉字在所属字库中的位置序号,nbias为脱敏前的汉字相对该任一已脱敏汉字的位置偏移量,k为设置的非负整数,nlevellength为任一已脱敏汉字所属级别的字库的汉字个数;mod为取模运算;根据以下公式(4)确定所述脱敏前的汉字相对该任一已脱敏汉字的位置偏移量:nbias=nlevellength×nnamelen/m(4)其中,nnamelen为已脱敏姓名的字数,m为设置的正整数。在单字还原算法中,若要使得一个已脱敏姓名完全还原为对应脱敏前的姓名,在公式(3)和公式(4)中的k值和m值分别与公式(1)和公式(2)中的k值和m值应保证相等。在具体实施例中,一般在同一次脱敏过程和对应的还原过程中,k值和m值取值一样。k值可以由客户自己掌握。同样,按照四级数据库的属性,当已脱敏姓名中的任一已脱敏汉字不是该已脱敏姓名中的第一个汉字时,即该已脱敏汉字不是该已脱敏姓名中的“姓”时,或者当已脱敏姓名为复姓,该任一已脱敏汉字为该复姓的第二个字时,那么在步骤s310中,即从预存的多级字库中,查找该已脱敏汉字所属的级别的字库之前,还包括:将该已多级字库的前两个级别的字库中的已脱敏汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字再和的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对于所属的原级别字库中的其它汉字的位置不变。比如,在上述四级字库中,当已脱敏姓名中的任一已脱敏汉字,不是该脱敏姓名的第一个已脱敏汉字时,则将该四级字库中的第零级和第一级字库按照第零级字库在前,第一级字库在后进行合并,组成一个新的字库,该新的字库中的每个汉字在合并后的字库中相对于所属的原第零级、第一级字库中的其它汉字的位置不变。在对已脱敏姓名进行每一个已脱敏汉字的还原后,按照与已脱敏姓名中的每个已脱敏汉字一一对应的顺序,将获得的脱敏前的汉字组成脱敏前的姓名。在还原过程中,有一些例外情况,比如某一脱敏姓名中的某一脱敏字符不是汉字,或者是汉字但不属于预存的多级字库,则在脱敏过程中不对该字符做任何处理,直接输出,作为该已脱敏字符的已脱敏字符。为了便于更好的理解中文姓名的脱敏方法,截取上述四级字库中的一部分,基于此,下面以一具体实施例进行详细阐述:其中以下表1和表2分别是第零级字库和第一级字库,其中部分字没有进行显示。0123456789abcdef1王李张刘陈杨黄吴赵周徐孙马朱胡林……………………………………………13独南诸尉公宇鲜子巫乐拓轩令呼表10123456789abcdef1一乙二十厂七卜人入八九几儿了力乃……………………………………………4……………………………………………96浸涨烫涌悟悄悔悦害宽家宵宴宾窄容……………………………………………99预桑绢绣验继球理捧描域掩捷排掉堆……………………………………………145籍魔灌霸露囊罐表2获取待脱敏姓名“张三丰”对其依次进行脱敏。首先对第一个字进行脱敏,在四级字库中寻找“张”,确定“张”属于第零级的字库,其位置序号为第三,则npos=3,其中nnamelen=3;nlevellength=206,令m=5,k=3,分别带入公式:nrespos=(npos+nbias+k)modnlevellength(1)nbias=nlevellength×nnamelen/m(2)中,得到nrespos=129,则在第零级的字库中查找对应位置序号为129的汉字,得到“欧”;其次,对“三”进行脱敏,因为“三”不是第一个汉字,则将第零级的字库与第一级的字库进行合并,“三”在新的字库中的位置序号为206+19=225;npos=225,其中nnamelen=3;nlevellength=206+2311=2517,令m=5,k=3,分别带入公式nrespos=(npos+nbias+k)modnlevellength(1)和公式nbias=nlevellength×nnamelen/m(2)中,得到nrespos=1738,则在新的字库中寻找位置序号为1738的汉字,得到“宵”同理,“丰”脱敏为“理”,则待脱敏姓名“张三丰”脱敏为“欧宵理”实施例2本发明实施例2提供了一种中文姓名数据的脱敏装置,如图5所示,包括:获取模块500,执行模块510、确定模块520和输出模块530。其中,获取模块500,用于获取待脱敏姓名。执行模块510,用于针对待脱敏姓名中的每一个汉字,从预存的多级字库中,查找该汉字所属级别的字库;其中,不同级别的字库中的汉字的属性存在不同,同一级别字库中的汉字的属性相同。确定模块520,用于按照预设的单字变换算法,确定该汉字在所属级别的字库中对应的脱敏后的汉字。输出模块530,用于基于待脱敏姓名中的每一个汉字对应的脱敏后的汉字,生成脱敏后的姓名。其中,确定模块520,具体用于按照预设的单字变换算法,确定在任一汉字所属级别的字库中,脱敏后的汉字相对该任一汉字的位置偏移量;根据该任一汉字在所属级别字库中的位置,以及确定的位置偏移量,确定脱敏后的汉字。确定模块520,具体用于根据以下公式(1)确定所述脱敏后的汉字:nrespos=(npos+nbias+k)modnlevellength;(1)其中,nrespos为该任一汉字对应的脱敏后的汉字在所属级别的字库中的位置序号,npos为该任一汉字在所属字库中的位置序号,nbias为脱敏后的汉字相对该任一汉字的位置偏移量,k为设置的非负整数,nlevellength为任一汉字所属级别的字库的汉字个数;mod为取模运算。确定模块520,用于按照以下公式(2)确定脱敏后的汉字相对该任一汉字的位置偏移量:nbias=nlevellength×nnamelen/m;(2)其中,nnamelen为待脱敏姓名的字数,m为设置的正整数。其中,执行模块510,还用于判断当待脱敏姓名中的任一汉字不是该待脱敏姓名中的第一个汉字时,从预存的多级字库中,查找该汉字所属级别的字库之前,将该多级字库的前两个级别的字库中的汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字在后的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对在所属的原级别字库中的其它汉字的位置不变,并从该新级别字库开始查找该汉字所属的级别的字库。在脱敏汉字还原方法中,获取模块500,还用于获取已脱敏姓名。执行模块510,还用于针对已脱敏姓名中的每一个已脱敏汉字,从预存的多级字库中,查找该已脱敏汉字所属的字库。确定模块520,还用于按照预设的单字还原算法,确定该已脱敏汉字在所属级别的字库中对应的脱敏前的汉字。输出模块530,还用于基于已脱敏姓名中的每一个已脱敏汉字对应的脱敏前的汉字,生成脱敏前的姓名。其中,确定模块520,还用于按照预设的单字还原算法,确定该任一已脱敏汉字所属级别的字库中,脱敏前的汉字相对该任一已脱敏汉字的位置偏移量;以及,用于根据该任一已脱敏汉字在所属级别字库中的位置,以及确定的位置偏移量,确定脱敏前的汉字。确定模块520,在根据该任一已脱敏汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定脱敏前的汉字时,根据以下公式(3)确定脱敏前的汉字:nrespos=(npos+nlevellength-nbias-k)modnlevellength;(3)其中,nrespos为该任一已脱敏汉字对应的脱敏前的汉字在所属级别的字库中的位置序号,npos为该任一已脱敏汉字在所属字库中的位置序号,nbias为所述脱敏前的汉字相对该任一脱敏汉字的位置偏移量,k为设置的非负整数,nlevellength为所述任一已脱敏汉字所属级别的字库的汉字个数;mod为取模运算。以及,根据以下公式(4)确定脱敏前的汉字相对该任一已脱敏汉字的位置偏移量:nbias=nlevellength×nnamelen/m(4)其中,nnamelen为已脱敏姓名的字数,m为设置的正整数。同理,脱敏汉字还原方法中,执行模块510,还用于判断当已脱敏姓名中的任一汉字不是该已脱敏姓名中的第一个汉字时,从预存的多级字库中,查找该已脱敏汉字所属级别的字库之前,将该多级字库的前两个级别的字库中的汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字在后的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对在所属的原级别字库中的其它汉字的位置不变,并从该新级别字库开始查找该已脱敏汉字所属的级别的字库。实施例3本发明实施例3提供了一种中文姓名数据的脱敏方法,其流程图见图6所示,具体步骤如下所示:s600,第一设备接收第二设备发送的待脱敏姓名集合;该待脱敏姓名集合中包含多个待脱敏姓名。其中第一设备和第二设备为计算机设备。s610,针对每一个待脱敏姓名中的每一个汉字,从预存的多级字库中,查找该汉字所属级别的字库,其中不同级别的字库中的汉字的属性存在不同,同一级别字库中的汉字的属性相同,按照预设的单字变换算法,确定该汉字在所属级别的字库中对应的脱敏后的汉字,基于该待脱敏姓名中的每一个汉字对应的脱敏后的汉字,生成脱敏后的姓名。s620,将该待脱敏姓名集合中的每个待脱敏姓名对应的脱敏后的姓名发送给第二设备。其中,在步骤610中,针对该待脱敏姓名中的任一汉字,按照预设的单字变换算法,确定该任一汉字在所属级别的字库中对应的脱敏后的汉字,具体方法包括:按照预设的单字变换算法,确定在该任一汉字所属级别的字库中,该脱敏后的汉字相对该任一汉字的位置偏移量。根据该任一汉字在所属级别的字库中的位置,以及确定的位置偏移量,确定脱敏后的汉字。其中,在根据该任一汉字在所属级别的字库中的位置,以及确定的位置偏移量,确定脱敏后的汉字,包括:根据公式(1)确定脱敏后的汉字:nrespos=(npos+nbias+k)modnlevellength;(1)其中,nrespos为该任一汉字对应的脱敏后的汉字在所属级别的字库中的位置序号,npos为该任一汉字在所属字库中的位置序号,nbias为脱敏后的汉字相对该任一汉字的位置偏移量,k为设置的非负整数,nlevellength为所述任一汉字所属级别的字库的汉字个数;mod为取模运算。根据以下公式(2)确定脱敏后的汉字相对该任一汉字的位置偏移量:nbias=nlevellength×nnamelen/m;(2)其中,nnamelen为待脱敏姓名的字数,m为设置的正整数。在步骤s610中,当所述待脱敏姓名中的任一汉字不是该待脱敏姓名中的第一个汉字时,从预存的多级字库中,查找该汉字所属级别的字库之前,还包括:将多级字库的前两个级别的字库中的汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字在后的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对在所属的原级别字库中的其它汉字的位置不变,并从该新级别字库开始查找该汉字所属的级别的字库。在步骤620之后,还包括以下具体步骤,其过程流程图如图7所示。s700,第一设备接收第二设备发送的已脱敏姓名集合;该已脱敏姓名集合中包含多个已脱敏姓名。s710,针对每一个已脱敏姓名中的每一个已脱敏汉字,从预存的多级字库中,查找该已脱敏汉字所属级别的字库,按照预设的单字还原算法,确定该已脱敏汉字在所属级别的字库中对应的脱敏前的汉字,基于已脱敏姓名中的每一个已脱敏汉字对应的脱敏前的汉字,生成脱敏前的姓名。s720,将该已脱敏姓名集合中的每个已脱敏姓名对应的脱敏前的姓名发送给第二设备。在步骤710中,针对已脱敏姓名中的任一已脱敏汉字,按照预设的单字还原算法,确定该任一已脱敏汉字在所属级别的字库中对应的脱敏前的汉字,具体方法包括:按照预设的单字还原算法,确定在该任一已脱敏汉字所属级别的字库中,脱敏前的汉字相对该任一已脱敏汉字的位置偏移量;根据该任一已脱敏汉字在所属级别的字库中的位置,以及确定的所述位置偏移量,确定脱敏前的汉字。其中,根据该任一已脱敏汉字在所属级别的字库中的位置,以及确定的位置偏移量,确定脱敏前的汉字,包括:根据以下公式(3)确定所述脱敏前的汉字:nrespos=(npos+nlevellength-nbias-k)modnlevellength;(3)其中,nrespos为该任一已脱敏汉字对应的脱敏前的汉字在所属级别的字库中的位置序号,npos为该任一已脱敏汉字在所属字库中的位置序号,nbias为脱敏前的汉字相对该任一已脱敏汉字的位置偏移量,k为设置的非负整数,nlevellength为所述任一已脱敏汉字所属级别的字库的汉字个数;mod为取模运算;根据以下公式(4)确定所述脱敏前的汉字相对该任一已脱敏汉字的位置偏移量:nbias=nlevellength×nnamelen/m;(4)其中,nnamelen为脱敏姓名的字数,m为设置的正整数。在步骤s710中,当所述已脱敏姓名中的任一汉字不是该已脱敏姓名中的第一个汉字时,从预存的多级字库中,查找该已脱敏汉字所属级别的字库之前,还包括:将多级字库的前两个级别的字库中的汉字按照第一个级别字库中的汉字在前,第二个级别字库中的汉字在后的顺序进行合并,作为新级别的字库;其中,每个汉字在合并后的字库中相对在所属的原级别字库中的其它汉字的位置不变,并从该新级别字库开始查找该已脱敏汉字所属的级别的字库。基于上述分析可知,与相关技术中的中文姓名的脱敏方法相比,本发明实施例可以将待脱敏姓名中的每一个汉字脱敏成同级别字库中的汉字,从而使脱敏后的姓名仍然保持原有的属性,也即保持姓名原有的特点不变,既保护了用户隐私,又便于后续数据分析利用。本发明实施例所提供的一种中文姓名数据的脱敏方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。本发明实施例所提供的一种中文姓名数据的脱敏装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1