一种应用于电子邮箱地址敏感信息脱敏的方法及系统与流程

文档序号:17791429发布日期:2019-05-31 20:18阅读:674来源:国知局
一种应用于电子邮箱地址敏感信息脱敏的方法及系统与流程
本发明涉及数据脱敏领域,具体涉及一种应用于电子邮箱地址敏感信息脱敏的方法及系统。
背景技术
:由于银行的数据库系统中,存有大量的个人的隐私敏感信息。而在银行的日常工作中,又时刻需要各种数据来开展工作,数据泄露的风险很大,所以需要对敏感信息进行加工处理,隐藏隐私敏感数据。电子邮箱地址对于个人来是一个比较重要的隐私信息,不仅通过该邮箱可以联系到所有者,而且很多网站,手机端的app应用都是可以通过邮箱绑定,甚至一些重要的账号找回功能也可以通过邮箱来重置。目前电子邮箱地址由于不太重视,脱敏方法较为简单主要分为下面几类:1、符号替换法,直接以特殊符号(如*)把所有(或部分)字母替换。2、编码移位法,将各个字母的编码移动固定位数,如a移位变成b,b移位变成c。上面几种方法存在一些缺点,第一种可以有效隐藏敏感信息,但是由于其替换后多个邮箱地址对应同一个编码后的地址,打破数据的关联关系,如两张数据表有相同地址的邮箱,实施该方法脱敏后,分析人员无法知道两条数据对应的是同一个地址。第二种保持了一对一的关联关系,但是容易从已知的脱敏结果中推算出偏移的参数,从而得到原数据。技术实现要素:本发明解决了现有技术存在的对电子邮箱的脱敏方法安全性得不到保障以及脱敏效率低、成本高的问题,提供一种应用于电子邮箱地址敏感信息脱敏的方法及系统,其应用时提升脱敏过程的安全性,脱敏后的数据可以较好的隐藏敏感信息,而且根据大量的脱敏后的数据无法轻易破解出原数据;提升脱敏效率,节约成本,采用的算法在空间上和时间上耗费较低;保持脱敏前后的一致性,原数据和脱敏后的数据保持一对一的映射关系,保证数据的关联性关系。本发明通过下述技术方案实现:一种应用于电子邮箱地址敏感信息脱敏的方法,进行以下步骤:a、拆分,将电子邮箱地址按照字符拆分为用户自定义部分和服务器定义部分;b、编码,将电子邮箱地址的用户自定义部分通过霍夫曼编码方法进行编码;c、压缩,遍历电子邮箱地址的用户自定义部分的字符,将步骤b中得到的编码结果用字节数组存储;d、二进制转换,用base64编码方法表示步骤b得到的字节数组,对步骤b得到的字节数组进行编码得到可见字符串,即电子邮箱地址的用户自定义部分脱敏后的字符串;e、拼接用户名和域名,将步骤d中得到的脱敏后的字符串用@符号与服务器定义部分拼接起来,得到该电子邮箱地址最终脱敏后的字符串。本发明提供的电子邮箱地址脱敏方法包括下列步骤:拆分--编码--压缩--二进制转换--拼接邮箱拆分首先根据邮箱地址的@符号,将邮箱的用户名与域名拆开。根据业务场可以按需用户名和域名分别进行脱敏或仅对用户名进行脱敏。本发明中,按仅对用户名进行脱敏来阐述原理。编码、压缩电子邮箱地址字符允许的字符为字母、数字、句点、连字符或下划线五类共出39个字符(英文字母不区分大小写)。其频率特征较为明显,经申请人统计,排名前6位的字母出现频率加起来超过了50%,因此本发明利用在压缩领域广泛应用的霍夫曼编码算法可以有效地对邮箱地址进行压缩存储。霍夫曼编码原理:霍夫曼编码是一种异字头的变字长编码,基本原理用最短的编码表示频率最高的字符,频率最低的字符用最长的编码表示。本发明中,在脱敏开始前,首先利用广泛使用的算法创建霍夫曼编码表(二叉树结构),在得到编码表后,本发明利用编码表对拆分得到的用户名进行编码,然后使用一种特殊方法来存储编码,遍历用户名的字符,得到其编码,用字节数组存储。存储格式按二进制位从第一个字节的第3位(二进制位序号从0开始计算)开始左到右依次写入0或1。按此方法挨个写入用户名中所有字符的编码后,由于得到的字节数组中,最后一个字节并不是完全都被占满,在输入两个字符后,最后一个字节实际只用到了第0位和第1位。实际场景中最后一个字节0-7位都可能被占用,本发明中使用第一个字节的前三个二进制位(以下用“位指示符”代称),来表示最后一个字节占用的最高位(三个二进制位刚好可以表示0-7)。由霍夫曼编码的特性,和本发明的特殊存储方式可以保证这样最终得到的二进制编码对于原始字符串是一一对应关系,且本存储方式对每个字符串仅仅需3个二进制位(bit),效率较高。二进制转换步骤c得到的字节数组为二进制数组,如果直接存入数据库中,不便于查询。本发明利用一种在互联网领域常见的base64编码来处理字节数组,base64编码是一种基于64个可打印字符来表示二进制数据的方法。对字节数组进行编码得到可见字符串,即为用户名脱敏后的字符串。拼接用户名和域名将得到的字符串用@符号将原域名拼接起来,得到该邮箱地址最终脱敏后的字符串。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤a的具体过程为:根据邮箱地址的@符号,将电子邮箱地址的字符拆分为用户名和域名,@符号之前为用户名,即所述用户自定义部分,@符号之后为域名,即所述服务器定义部分。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤b具体为:统计电子邮箱地址中用户自定义部分的每个字符的出现频率,将所有字符按照出现频率从高到低排序并创建排序表,根据所述排序表的排序创建霍夫曼编码表,根据所述霍夫曼编码表对电子邮箱地址的用户自定义部分进行编码。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述字符包括英文字母、数字字符、句点、连字符和下划线的任意组合。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤b中根据排序表创建霍夫曼编码表的过程具体为:b1、通过统计或抽样得出电子邮箱地址中的用户名中字符的出现频率,为电子邮箱地址可能出现的英文字母、数字字符、句点、连字符和下划线共39个字符创建39个节点,每个节点中包含其对应出现频率的频率数值,并按频率数值从小到大排列,存入节点数组中,节点数组记为n1,n2,n3,…,n39;b2、从节点数组中移除前两个节点n1、n2,将前两个节点的频率相加创建一个新节点p3,并将n1、n2作为p3的两个子节点;b3、根据p3的频率按从小到大的顺序插入到原节点数组中,其中p3的频率由n1、n2.的频率相加得来;b4、重复上述步骤b2、b3,直到整个节点数组只剩下最后一个节点r,r即二叉树的根节点,而每个叶节点对应电子邮箱地址可能出现的39个字符;b5、从r遍历每个子叶节点,对每个子节点,如果为左子节点则在路径加0,如果为右子节点则在路径加1,直到遇到叶节点,则路径上的01组合即为该叶节点所代表字符的编码;b6、将每个字符与其对应的编码存入哈希表t中,供后续使用。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤b还包括:将电子邮箱地址的服务器定义部分通过霍夫曼编码方法进行编码。因为域名的重复字符率比用户名更高,所以如果需要对电子邮箱地址的域名脱敏,最优的方式是另外单独抽样统计域名的字符频率再创建一份编码表。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤b中将电子邮箱地址的服务器定义部分通过霍夫曼编码方法进行编码的过程具体为:统计电子邮箱地址中服务器定义部分的每个字符的出现频率,将所有字符按照出现频率从高到低排序并创建排序表,根据所述排序表的排序创建霍夫曼编码表,根据所述霍夫曼编码表对电子邮箱地址的服务器定义部分进行编码。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤c中将得到的编码结果用字节数组存储的具体过程为:c1、遍历电子邮箱地址的用户自定义部分的字符,对其每一个字符编码,并用字节数组存储,存储格式按二进制位从第一个字节的第3位开始左到右依次写入0或1,依次写入电子邮箱地址的用户自定义部分中所有字符的编码;c2、由于步骤c1得到的字节数组中,最后一个字节并不是完全都被占满,用第一个字节的前三个二进制位来表示最后一个字节占用的最高位。进一步的,一种应用于电子邮箱地址敏感信息脱敏的方法,所述步骤d中的base64编码方法是基于64个可打印字符表示二进制数据的方法。一种应用于电子邮箱地址敏感信息脱敏的系统,包括拆分模块、字符编码模块、压缩模块、二进制转换模块和拼接模块,其中:拆分模块,用于将电子邮箱地址按照字符拆分为用户自定义部分和服务器定义部分;字符编码模块,用于将拆分模块拆分得到的电子邮箱地址的用户自定义部分通过霍夫曼编码方法进行编码;压缩模块,用于遍历电子邮箱地址的用户自定义部分的字符,并将字符编码模块编码得到的编码结果用字节数组存储;二进制转换模块,用于通过base64编码方法表示压缩模块得到的字节数组,将得到的字节数组进行编码得到可见字符串,即电子邮箱地址的用户自定义部分脱敏后的字符串;拼接模块,用于拼接用户名和域名,将二进制转换模块转换得到的脱敏后的字符串用@符号与服务器定义部分拼接起来,得到该电子邮箱地址最终脱敏后的字符串。本发明与现有技术相比,具有如下的优点和有益效果:1、安全性,脱敏后的数据可以较好的隐藏敏感信息,而且根据大量的脱敏后的数据无法轻易破解出原数据。2、高效性,由于本发明的编码过程,都是可以通过移位,与,或等二进制操作来完成,目前cpu中,执行二进制操作是非常高效的。3、省空间,由于霍夫曼编码表是根据实际生产数据而得出的编码表,因此使用该编码表对整个库的邮箱编码后得到的二进制大小比原始空间可以节省约35%左右,在使用base64编码转换二进制时,空间会增加33%,整体算下来脱敏后所占的空间比约为(1-35%)*(1+33%)=86%,即最终脱敏后节省14%左右的空间。附图说明此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:图1为本发明流程示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。实施例1如图1所示,一种应用于电子邮箱地址敏感信息脱敏的方法,进行以下步骤:a、拆分,将电子邮箱地址按照字符拆分为用户自定义部分和服务器定义部分;具体过程为:根据邮箱地址的@符号,将电子邮箱地址的字符拆分为用户名和域名,@符号之前为用户名,即所述用户自定义部分,@符号之后为域名,即所述服务器定义部分。b、编码,将电子邮箱地址的用户自定义部分通过霍夫曼编码方法进行编码;具体为:统计电子邮箱地址中用户自定义部分的每个字符的出现频率,将所有字符按照出现频率从高到低排序并创建排序表,根据所述排序表的排序创建霍夫曼编码表,根据所述霍夫曼编码表对电子邮箱地址的用户自定义部分进行编码。所述字符包括英文字母、数字字符、句点、连字符和下划线的任意组合。根据排序表创建霍夫曼编码表的过程具体为:b1、通过统计或抽样得出电子邮箱地址中的用户名中字符的出现频率,为电子邮箱地址可能出现的英文字母、数字字符、句点、连字符和下划线共39个字符创建39个节点,每个节点中包含其对应出现频率的频率数值,并按频率数值从小到大排列,存入节点数组中,节点数组记为n1,n2,n3,…,n39;b2、从节点数组中移除前两个节点n1、n2,将前两个节点的频率相加创建一个新节点p3,并将n1、n2作为p3的两个子节点;b3、根据p3的频率按从小到大的顺序插入到原节点数组中,其中p3的频率由n1、n2.的频率相加得来;b4、重复上述步骤b2、b3,直到整个节点数组只剩下最后一个节点r,r即二叉树的根节点,而每个叶节点对应电子邮箱地址可能出现的39个字符;b5、从r遍历每个子叶节点,对每个子节点,如果为左子节点则在路径加0,如果为右子节点则在路径加1,直到遇到叶节点,则路径上的01组合即为该叶节点所代表字符的编码;b6、将每个字符与其对应的编码存入哈希表t中,供后续使用。步骤b还包括:将电子邮箱地址的服务器定义部分通过霍夫曼编码方法进行编码。因为域名的重复字符率比用户名更高,所以如果需要对电子邮箱地址的域名脱敏,最优的方式是另外单独抽样统计域名的字符频率再创建一份编码表。具体为:统计电子邮箱地址中服务器定义部分的每个字符的出现频率,将所有字符按照出现频率从高到低排序并创建排序表,根据所述排序表的排序创建霍夫曼编码表,根据所述霍夫曼编码表对电子邮箱地址的服务器定义部分进行编码。c、压缩,遍历电子邮箱地址的用户自定义部分的字符,将步骤b中得到的编码结果用字节数组存储;具体过程为:c1、遍历电子邮箱地址的用户自定义部分的字符,对其每一个字符编码,并用字节数组存储,存储格式按二进制位从第一个字节的第3位开始左到右依次写入0或1,依次写入电子邮箱地址的用户自定义部分中所有字符的编码;c2、由于步骤c1得到的字节数组中,最后一个字节并不是完全都被占满,用第一个字节的前三个二进制位来表示最后一个字节占用的最高位。d、二进制转换,用base64编码方法表示步骤b得到的字节数组,对步骤b得到的字节数组进行编码得到可见字符串,即电子邮箱地址的用户自定义部分脱敏后的字符串;base64编码方法是基于64个可打印字符表示二进制数据的方法。e、拼接用户名和域名,将步骤d中得到的脱敏后的字符串用@符号与服务器定义部分拼接起来,得到该电子邮箱地址最终脱敏后的字符串。实施例2本实施例基于实施例1,提供的电子邮箱脱敏算法包括下列步骤。步骤a拆分--步骤b编码—步骤c压缩--步骤d二进制转换--步骤e拼接邮箱下面分别描述各步骤步骤a拆分首先根据邮箱地址的@符号,将邮箱的用户名v1与域名v2拆开,如wang@sina.com,v1则为wang,v2为sina.com。根据业务场可以按需对v1和v2分别进行脱敏或仅对v1进行脱敏。本发明中,按仅对户名v1进行脱敏来阐述原理。步骤b编码、步骤c压缩邮箱地址字符允许的字符为字母、数字、句点(.)、连字符(-)或下划线(_)五类共出39个字符(英文字母不区分大小写)。其频率特征较为明显,在我行系统中统计,排名前6位的字母出现频率加起来超过了50%,因此本发明利用在压缩领域广泛应用的霍夫曼编码算法可以有效地对邮箱地址进行压缩存储。霍夫曼编码原理简述:霍夫曼编码是一种异字头的变字长编码,基本原理用最短的编码表示频率最高的字符,频率最低的字符用最长的编码表示。如aaabbc,编码表为a->1,b->01c->00,这样aaabbc即可表示为111010100,总共9位(bit),即需要两个字节(byte)存储,而原字符串需要6个字节存储(每个符号占一个字节)。本发明中,在脱敏开始前,首先利用广泛使用的算法创建霍夫曼编码表(二叉树结构),简述如下:1、通过统计或抽样得出系统中邮箱地址中的用户名出现字符的频率,为邮箱地址可能出现的39个字符创建39个节点,每个节点中包含其对应的频率数值,并按频率数值由小到排列,存入节点数组中。n1,n2,n3,…,n392、从数组中移除前两个节点n1,n2,将两个节点的频率相加创建一个新节点p3,并将n1,n2作为p3的两个子节点。3、根据p3的频率(由n1,n2相加得来)按从小到大的顺序插入到原数组中。4、重复上述步骤2-3,直到整个数组只剩下最后一个节点r,r即二叉树的根节点,而每个叶节点对应邮箱地址可能出现的39个字符。5、从r遍历每个子叶节点,对每个子节点,如果为左子节点则在路径加0,如果为右子节点则在路径加1,直到遇到叶节点,则路径上的01组合即为该叶节点所代表的字母的编码。6、将每个字母与其对应的编码存入哈希表t中,供后面步骤使用。7、备注:因为域名的重复字符率比用户名更高,所以如果需要对邮箱地址的域名脱敏,一种建议的做法是另外单独抽样统计域名的字符频率再创建一份编码表。在得到编码表后,本发明利用编码表对步骤a得到的v1进行编码,然后使用一种特殊方法来存储编码,具体步骤如下:1、遍历v1的字符,对其每一个字符c根据上面步骤得到的哈希表t,得到其编码,用字节数组m1存储。存储格式按二进制位从第一个字节的第3位(二进制位序号从0开始计算)开始左到右依次写入0或1。例如第一个字符编码为011,此时字节数字m1的第一个字节如下:位数01234567二进制值00001100如果第二个字符的编码为1110,则存入该字符后,字符数组m1如下:按此方法挨个写入v1中所有字符的编码。2、对v1的每个编码都写入后,由于1步骤得到的字节数组中,最后一个字节并不是完全都被沾满,如步骤1中的例子,在输入两个字符后,最后一个字节实际只用到了第0位和第1位。实际场景中最后一个字节0-7位都可能被占用,本发明中使用第一个字节的前三个二进制位(以下用“位指示符”代称),来表示最后一个字节占用的最高位(三个二进制位刚好可以表示0-7)。步骤1中的例子,最后一个字节被占用的最高位为1,所以第一个字节的前三位应为001,及字节数组m1最终如下:由霍夫曼编码的特性,和本发明的特殊存储方式可以保证这样最终得到的二进制编码对于原始字符串是一一对应关系,且本存储方式对每个字符串仅仅需3个二进制位(bit),效率较高。步骤d二进制转换步骤b得到的字节数组m1为二进制数组,如果直接存入数据库中,不便于查询。本发明利用一种在互联网领域常见的base64编码来处理字节数组m1,base64编码是一种基于64个可打印字符来表示二进制数据的方法。对字节数组m1进行编码得到可见字符串r1,r1即为v1脱敏后的字符串。步骤e拼接用户名和域名将得到的r1用@符号将原域名拼接起来,得到该邮箱地址最终脱敏后的字符串l。实施例3基于实施例1和实施例2,对chen@sina.com进行脱敏,首先根据抽样创建的霍夫曼编码表,其中部分编码如下:字符编码字符编码c1011h10000e01100n010步骤a拆分将chen@sina.com拆分得到为v1:chen步骤b编码、步骤c压缩对v1进行编码,首先插入c编码1011,如下,(计算机是按8位来存存储,所以第7位填入0,下同)接着插入h的编码,如下:位数0123456701234567二进制值0001011100000000接着插入e的编码最后插入n的编码,并更新位指示符(最后一个字节最末位为3,所以位指示符位写入3)即chen的压缩二进制编码m1为011101110000011000100000步骤d二进制转换用base64编码对m1进行编码转换m1转换后得到r1为:dwyg步骤e拼接邮箱用步骤c得到的r1拼接原始域名得到最终脱敏后的值为dwyg@sina.com实施例4一种应用于电子邮箱地址敏感信息脱敏的系统,包括拆分模块、字符编码模块、压缩模块、二进制转换模块和拼接模块,其中:拆分模块,用于将电子邮箱地址按照字符拆分为用户自定义部分和服务器定义部分;字符编码模块,用于将拆分模块拆分得到的电子邮箱地址的用户自定义部分通过霍夫曼编码方法进行编码;压缩模块,用于遍历电子邮箱地址的用户自定义部分的字符,并将字符编码模块编码得到的编码结果用字节数组存储;二进制转换模块,用于通过base64编码方法表示压缩模块得到的字节数组,将得到的字节数组进行编码得到可见字符串,即电子邮箱地址的用户自定义部分脱敏后的字符串;拼接模块,用于拼接用户名和域名,将二进制转换模块转换得到的脱敏后的字符串用@符号与服务器定义部分拼接起来,得到该电子邮箱地址最终脱敏后的字符串。本发明脱敏后的数据可以较好的隐藏敏感信息,而且根据大量的脱敏后的数据无法轻易破解出原数据。由于本发明的编码过程,都是可以通过移位,与,或等二进制操作来完成,目前cpu中,执行二进制操作是非常高效的。由于霍夫曼编码表是根据实际生产数据而得出的编码表,因此使用该编码表对整个库的邮箱编码后得到的二进制大小比原始空间可以节省约35%左右,在使用base64编码转换二进制时,空间会增加33%,整体算下来脱敏后所占的空间比约为(1-35%)*(1+33%)=86%,即最终脱敏后节省14%左右的空间。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1