一种敏感信息展示方法及装置与流程

文档序号:18397010发布日期:2019-08-09 23:31阅读:175来源:国知局
一种敏感信息展示方法及装置与流程

本发明属于网络技术领域,特别涉及一种敏感信息展示方法及装置。



背景技术:

网络社交是人们当前主要的应用场景,例如:发布信息、评论信息或者获取他人分享的信息等等。目前在网络社交过程中可能会出现各种广告、色情暴力或者政治敏感词等敏感信息,严重的污染了健康的社交圈,影响到用户体验。

另外,在一些场景,比如数据防泄密的产品中,需要对文本内容进行检测,同时也经常需要对检测到的敏感内容进行必要的展示。

本发明人发现,在现有技术中,将包含有敏感信息的文本内容整体上传到服务端,会对通信链路造成很大的负荷,同时由于数据量太大,服务端在展示时容易出现页面刷新很慢等问题。



技术实现要素:

为了至少解决上述技术问题,本发明提供了一种敏感信息展示方法及装置。

根据本发明第一方面,提供了一种敏感信息展示方法,包括:

在检测到文本内容中存在敏感信息的情形下,计算文本内容大小;

判断所述文本内容大小,在所述文本内容大小未超过预设值的情形下,结束操作;

在所述文本内容大小超过预设值的情形下,获取各敏感信息所在的位置信息;

对所述各敏感信息所在位置信息进行过滤处理,得到去重信息集合;

根据所述去重信息集合对所述文本内容,生成包含敏感信息的待展示内容。

在本发明另一实施例中,所述在检测到文本内容中存在敏感信息的情形下,计算文本内容大小,包括:

对文本内容进行检测,在检测到文本内容中存在预设字段的情形下,判定文本内容中存在敏感信息,计算存在所述敏感信息的文本内容大小。

在本发明另一实施例中,所述预设值为10k。

在本发明另一实施例中,所述在所述文本内容大小超过预设值的情形下,获取各敏感信息所在的位置信息,包括:

从所述文本内容中获取所有的敏感信息所在的起始位置及敏感信息长度,将各敏感信息所在的起始位置和敏感信息长度作为敏感信息所在的位置信息。

在本发明另一实施例中,所述对各敏感信息所在位置信息进行过滤处理,得到去重信息集合,包括:

对所述各敏感信息所在位置信息进行合并去重、前后延伸预设字节数,以及匹配位置处理,生成去重信息集合。

在本发明另一实施例中,对所述各敏感信息所在位置信息进行合并去重、前后延伸预设字节数,以及匹配位置处理,生成去重信息集合,包括:

对所述各敏感信息所在位置信息进行合并去重处理;

从所述敏感信息所在的起始位置开始,获取与所述敏感信息长度相同的数据,作为所述敏感信息所在位置信息前后延伸结果;

根据所述敏感信息所在位置信息前后延伸结果进行匹配位置处理,生成去重信息集合。

在本发明另一实施例中,所述根据所述去重信息集合对所述文本内容,生成包含敏感信息的待展示内容,包括:

在所述文本内容的基础上,根据去重信息集合,对所述去重信息集合中的各敏感信息进行叠加处理,具体按照预设方式在每个敏感信息的开端增加分隔符做分割,生成包含所述敏感信息的待展示内容。

在本发明第二方面,提供一种敏感信息展示装置,包括:

计算模块,用于在检测到文本内容中存在敏感信息的情形下,计算文本内容大小;

判断模块,用于判断所述文本内容大小,在所述文本内容大小未超过预设值的情形下,展示所述文本内容,结束操作;

位置获取模块,用于在所述文本内容大小超过预设值的情形下,获取各敏感信息所在的位置信息;

去重模块,用于对所述各敏感信息所在位置信息进行过滤处理,得到去重信息集合;

裁剪模块,用于根据所述去重信息集合对所述文本内容,生成包含敏感信息的待展示内容,展示所述待展示内容。

在本发明第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序被执行时,能够实现如上所述的敏感信息展示方法。

本发明的有益效果:在本发明实施例中,通过对大小超过预设值的文本内容,获取其所包含的各敏感信息所在的位置信息,并对该敏感信息所在的位置信息进行过滤处理,以避免获取到的敏感信息重复,再针对过滤处理得到的去重信息集合生成包含敏感信息的待展示内容,以使得敏感信息能够按照预设方式进行展示,便于用户清楚、直观的了解敏感信息的内容,并且,本发明有针对性的对包含敏感信息的待展示内容进行展示时,使得需展示的数据量大大缩小,降低响应于展示待展示内容的通信链路的负荷,提升了待展示内容页面刷新的速度,进而用于展示待展示内容的服务器硬件需求,节约成本。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,

图1为本发明提供的一种敏感信息展示方法的流程图;

图2为本发明提供的一种敏感信息展示装置结构框图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

本发明提供一种敏感信息展示方法,如图1所示,包括:

步骤201:在检测到文本内容中存在敏感信息的情形下,计算文本内容大小;

在本发明实施例中,对文本内容进行检测的算法中,一个具体的算法单位,比如设置了关键字规则“utf-8数据”,若文本中包含“utf-8数据”,则判断为敏感文本。

具体地,在检测到文本内容中存在敏感信息的情形下,计算文本内容的大小org_content_len,如果小于预设值10k,则不进行裁剪,若存在,操作结束。否则执行步骤202,进入获取简单信息集合的工作,进一步对文本内容大小进行相应操作。

步骤202:判断文本内容大小,如果超过预设值,则执行步骤203;否则展示文本内容,结束。

在本发明实施例中,在检测到文本内容中存在敏感信息的情形下,计算文本内容大小,并对文本内容大小进行判断,在文本内容大小大于预设值的情形下,即文本内容大小超过预设值时,执行步骤203。其中,预设值为10k。

步骤203:获取各敏感信息所在的位置信息;

在本发明实施例中,从文本内容中获取所有的敏感信息所在的起始位置及敏感信息长度,将各敏感信息所在的起始位置和敏感信息长度作为敏感信息所在的位置信息。

具体地,根据算法检测模块获取到的位置信息,求取匹配范围的简单合集all_ranges,此时不管顺序和是否重叠;

排序简单合集all_ranges,对集合的排序可采用list的sort排序方法;

至此,获取到一个有序的简单的包含匹配范围的集合all_ranges。

步骤204:对各敏感信息所在位置信息进行过滤处理,得到去重信息集合;

在本发明实施例中,对各敏感信息所在位置信息进行合并去重,以及匹配位置前后延伸预设字节数,生成一个全新过滤的信息集合,即去重信息集合。

具体地,定义两个双向链表(iterprev、itercurr),保存当前匹配范围与前一个匹配范围。开始进入合并去重的工作;

进入遍历all_ranges判断接口,进行合并all_range的交叠区域工作,for循环遍历;

在itercurr到all_ranges的尾部的情形下,

在itercurr没有到all_ranges的尾部的情形下,定义临时链表rulematchrange&curr_range=*itercurr;得到临时变量curr_range,保存当前匹配范围的信息。定义临时链表rulematchrange&prev_range=*iterprev;临时变量,保存前一个匹配范围的信息;

定义start_pos/end_pos,保存计算每次curr_range得到的文本中位置信息;

进入延伸匹配位置信息的工作;

向前延伸128个字节(start_pos-=128),因为常规的utf-8汉字是三个字节,所以对应加入的utf-8汉字有42个左右.如果start_pos<0,则说明已经到文本头部,start_pos=0处理。因为utf-8的字节数可能1~6个不固定,所以此处需要进行校验utf-8第一个字节。如果不是第一个字节,start_pos--,做自减1处理,直到是第一个字节,保证utf-8字符的完整性。具体检验方法包括:

utf-8是一种变长字节编码方式。对于某一个字符的utf-8编码,如果只有一个字节则其最高二进制位为0;

如果是多字节,其第一个字节从最高位开始,连续的二进制位值为的个数决定了其编码的位数,其余各字节均以开头。

utf-8最多可用到个字节。如表:

1字节0xxxxxxx

2字节110xxxxx10xxxxxx

3字节1110xxxx10xxxxxx10xxxxxx

4字节11110xxx10xxxxxx10xxxxxx10xxxxxx

5字节111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxx

6字节1111110x10xxxxxx10xxxxxx10xxxxxx10xxxxxx10xxxxxx

基于上述utf-8编码的说明,可用表达式boolisutf-8leadbyte=(0x80==(0xc0&(constunsignedchar)ch))的返回值来判断是否是第一个字节,其中ch是传入的utf-8字符。

原因分析如下:

表达式中,0xc0也就是1100,这个&运算判断的是下一个ch的头两位是什么字符,因为能完全反映出本来的数字,对于普通的ansi字符(非扩展集)而言,他的头一位一定是(00000000~01111111)

对于utf-8字符而言,因为utf-8编码是一种多字节序的形式,他采用上表的数字序规律,所有10打头的在utf-8里面,表示都是一个多字节序的子序,两个utf-8字符,打头则是以110开始,后面跟10xxxxxx,10yyyyyy表示接下来的字符,三个则是1110开始,后面跟三个10xxxxxx来表示字符,所以在计算字符串个数的时候,只需要判断当前字符是不是等于10开头,不等于10开头就一定是一个单字符或者一个多字符,然后计数器+1即可。

向后延伸128个字节(end_pos+=128),因为常规的utf-8汉字是三个字节,所以对应加入的utf-8汉字有个左右,如果end_pos>org_content_len,则说明已经到文本尾部,做end_pos=org_content_len处理。因为utf-8的字节数可能1~6个不固定,所以此处需要进行校验utf-8第一个字节。如果不是第一个字节,end_pos++,做自加一处理,直到是第一个字节,保证utf-8字符的完整性。

步骤205:根据去重信息集合对文本内容,生成包含敏感信息的待展示内容,展示待展示内容。

在本发明实施例中,在文本内容的基础上,根据去重信息集合,对去重信息集合中的各敏感信息进行叠加处理,生成新的包含敏感信息的待展示内容,展示待展示内容。

可选的,对于去重信息集合中的各敏感信息进行叠加处理包括,延伸后的文本字段的阅读,可以在每个记录的开端增加省略号做分割,表示有文本内容被省略未显示。

进一步地,对当前的range信息进行填充curr_range.start=start_pos;curr_range.length=end_pos-start_pos;

通过if(curr_range.start<=prev_range.start+prev_range.length),判断当前的起始位置是否小于前一个的匹配范围range,如果是的话,说明存在交叠部分;否则说明没有交叠部分;

在存在交叠部分的情形下,

itercurr=all_ranges.erase(itercurr);返回遍历all_ranges判断接口,进行合并all_range的交叠区域工作,进入下一次的迭代;

如果没有交叠部分,将当前匹配范围信息赋值给前一个匹配范围信息iterprev=itercurr;当前匹配范围信息自增一处理itercurr++;完成一次迭代。返回遍历all_ranges判断接口,进行合并all_range的交叠区域工作,进入下一次的迭代;

遍历all_ranges结束;

至此,获取到整理后的信息集合,进入从原始文本串content_org生成裁剪版字符串的工作;

为裁剪文本的子段content_trim预分配4k的内存;

开始遍历all_range,进行叠加拼接;

判断rang的第一个位置如果不是在文本头部则增加省略号,以表示有内容被省略;

计算需要增加的文本串长度,to_add_len=curr_range.length。同时,初始化boolto_break=false,表示文本串未达到上限;

如果叠加的文本串长度(content_trim.length()+to_add_len)超过10k,则重新计算本次应该叠加的长度,to_add_len=10*1024-content_trim.length(),并标记to_break=true,表示完成最后一次叠加后,可以退出叠加步骤了,此时,可以进行叠加content_trim.append(org_content,curr_range.start,to_add_len);且记录最后一次的文本位置last_end_pos=curr_range.start+to_add_len。

同样,在没超过10k的情形下,

进行叠加content_trim.append(org_content,curr_range.start,to_add_len);且记录最后一次的文本位置last_end_pos=curr_range.start+to_add_len;如果遍历完成,进行叠加content_trim.append(org_content,curr_range.start,to_add_len);

遍历完如果没有到文本的末尾,则最后加省略号,表示后面有内容被省略,完成拼接。

在本发明第二方面,提供一种敏感信息展示装置,如图2所示,包括:

计算模块401,用于在检测到文本内容中存在敏感信息的情形下,计算文本内容大小;

在本发明实施例中,对文本内容进行检测的算法中,一个具体的算法单位,比如设置了关键字规则“utf-8数据”,则文本中包含“utf-8数据”则判断为敏感文本。

具体地,计算模块401,用于在检测到文本内容中存在敏感信息的情形下,计算文本内容的大小org_content_len,如果小于预设值10k,则不进行裁剪若存在,操作结束。否则执行步骤202,进入获取简单信息集合的工作,进一步对文本内容大小进行相应操作。

判断模块402,用于判断文本内容大小;

在本发明实施例中,判断模块402,用于在检测到文本内容中存在敏感信息的情形下,计算文本内容大小,并对文本内容大小进行判断,在文本内容大小大于预设值的情形下,即文本内容大小超过预设值时,执行步骤203。其中,预设值为10k。

位置获取模块403,用于在文本内容大小超过预设值的情形下,获取各敏感信息所在的位置信息;

在本发明实施例中,位置获取模块403,用于从文本内容中获取所有的敏感信息所在的起始位置及敏感信息长度,将各敏感信息所在的起始位置和敏感信息长度作为敏感信息所在的位置信息。

具体地,位置获取模块403,用于根据算法检测模块获取到的位置信息,求取匹配范围的简单合集all_ranges,此时不管顺序和是否重叠;

排序简单合集all_ranges,对集合的排序可采用list的sort排序方法;

至此,获取到一个有序的简单的包含匹配范围的集合all_ranges。

去重模块404,用于对各敏感信息所在位置信息进行过滤处理,得到去重信息集合;

在本发明实施例中,去重模块404,用于对各敏感信息所在位置信息进行合并去重,以及匹配位置前后延伸预设字节数,生成一个全新过滤的信息集合,即去重信息集合。

具体地,去重模块404,用于定义两个双向链表(iterprev、itercurr),保存当前匹配范围与前一个匹配范围。开始进入合并去重的工作;

进入遍历all_ranges判断接口,进行合并all_range的交叠区域工作,for循环遍历;

在itercurr到all_ranges的尾部的情形下,

在itercurr没有到all_ranges的尾部的情形下,定义临时链表rulematchrange&curr_range=*itercurr;得到临时变量curr_range,保存当前匹配范围的信息。定义临时链表rulematchrange&prev_range=*iterprev;临时变量,保存前一个匹配范围的信息;

定义start_pos/end_pos,保存计算每次curr_range得到的文本中位置信息;

进入延伸匹配位置信息的工作;

向前延伸128个字节(start_pos-=128),因为常规的utf-8汉字是三个字节,所以对应加入的utf-8汉字有42个左右.如果start_pos<0,则说明已经到文本头部,start_pos=0处理。因为utf-8的字节数可能1~6个不固定,所以此处需要进行校验utf-8第一个字节。如果不是第一个字节,start_pos--,做自减1处理,直到是第一个字节,保证utf-8字符的完整性。具体检验方法包括:

utf-8是一种变长字节编码方式。对于某一个字符的utf-8编码,如果只有一个字节则其最高二进制位为0;

如果是多字节,其第一个字节从最高位开始,连续的二进制位值为的个数决定了其编码的位数,其余各字节均以开头。

utf-8最多可用到个字节。如表:

1字节0xxxxxxx

2字节110xxxxx10xxxxxx

3字节1110xxxx10xxxxxx10xxxxxx

4字节11110xxx10xxxxxx10xxxxxx10xxxxxx

5字节111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxx

6字节1111110x10xxxxxx10xxxxxx10xxxxxx10xxxxxx10xxxxxx

基于上述utf-8编码的说明,可用表达式boolisutf-8leadbyte=(0x80==(0xc0&(constunsignedchar)ch))的返回值来判断是否是第一个字节,其中ch是传入的utf-8字符。

基于此处理的原因分析如下:

表达式中,0xc0也就是1100,这个&运算判断的是下一个ch的头两位是什么字符,因为能完全反映出本来的数字,对于普通的ansi字符(非扩展集)而言,他的头一位一定是(00000000~01111111),对于utf-8字符而言,因为utf-8编码是一种多字节序的形式,他采用上表的数字序规律,所有10打头的在utf-8里面,表示都是一个多字节序的子序,两个utf-8字符,打头则是以110开始,后面跟10xxxxxx,10yyyyyy表示接下来的字符,三个则是1110开始,后面跟三个10xxxxxx来表示字符,所以在计算字符串个数的时候,只需要判断当前字符是不是等于10开头,不等于10开头就一定是一个单字符或者一个多字符,然后计数器+1即可。

向后延伸128个字节(end_pos+=128),因为常规的utf-8汉字是三个字节,所以对应加入的utf-8汉字有个左右,如果end_pos>org_content_len,则说明已经到文本尾部,做end_pos=org_content_len处理。因为utf-8的字节数可能1~6个不固定,所以此处需要进行校验utf-8第一个字节。如果不是第一个字节,end_pos++,做自加一处理,直到是第一个字节,保证utf-8字符的完整性。

裁剪模块405,用于根据去重信息集合对文本内容生成包含敏感信息的待展示内容。

在本发明实施例中,裁剪模块405,用于在文本内容的基础上,根据去重信息集合,叠加生成新的包含敏感信息的待展示内容。

可选的,对于去重信息集合中,延伸后的文本字段的阅读,可以在每个记录的开端增加省略号做分割,表示有文本内容被省略未显示。

进一步地,裁剪模块405,用于对当前的range信息进行填充curr_range.start=start_pos;curr_range.length=end_pos-start_pos;

通过if(curr_range.start<=prev_range.start+prev_range.length),判断当前的起始位置是否小于前一个的匹配范围range,如果是的话,说明存在交叠部分;否则说明没有交叠部分;

在存在交叠部分的情形下,

itercurr=all_ranges.erase(itercurr);返回遍历all_ranges判断接口,进行合并all_range的交叠区域工作,进入下一次的迭代;

如果没有交叠部分,将当前匹配范围信息赋值给前一个匹配范围信息iterprev=itercurr;当前匹配范围信息自增一处理itercurr++;完成一次迭代。返回遍历all_ranges判断接口,进行合并all_range的交叠区域工作,进入下一次的迭代;

遍历all_ranges结束;

至此,获取到整理后的信息集合,进入从原始文本串content_org生成裁剪版字符串的工作;

为裁剪文本的子段content_trim预分配4k的内存;

开始遍历all_range,进行叠加拼接;

判断rang的第一个位置如果不是在文本头部则增加省略号,以表示有内容被省略;

计算需要增加的文本串长度,to_add_len=curr_range.length。同时,初始化boolto_break=false,表示文本串未达到上限;

如果叠加的文本串长度(content_trim.length()+to_add_len)超过10k,则重新计算本次应该叠加的长度,to_add_len=10*1024-content_trim.length(),并标记to_break=true,表示完成最后一次叠加后,可以退出叠加步骤了,此时,可以进行叠加content_trim.append(org_content,curr_range.start,to_add_len);且记录最后一次的文本位置last_end_pos=curr_range.start+to_add_len。

同样,在没超过10k的情形下,

进行叠加content_trim.append(org_content,curr_range.start,to_add_len);且记录最后一次的文本位置last_end_pos=curr_range.start+to_add_len;如果遍历完成,进行叠加content_trim.append(org_content,curr_range.start,to_add_len);

遍历完如果没有到文本的末尾,则最后加省略号,表示后面有内容被省略,完成拼接。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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