一种账号过滤方法、装置、电子设备及机器可读存储介质与流程

文档序号:20512739发布日期:2020-04-24 18:43阅读:129来源:国知局
一种账号过滤方法、装置、电子设备及机器可读存储介质与流程

本发明涉及网络技术领域,特别是涉及一种账号过滤方法、装置、电子设备及机器可读存储介质。



背景技术:

在当前的网络服务中,为了提升用户的使用体验,基于用户的访问数据,向用户推荐感兴趣的视频、网站等数据,需要对用户的登录账号、访问数据等进行统计。然而,在实际的网络系统中,登录账号除了包括用户的登录账号以外,还包括内部运营人员的账号、内部机器人账号等内部账号,这些内部账号在进行网络访问时所产生的访问数据与用户的访问数据无关,因此,在进行统计时,不应统计内部账号产生的访问数据,需要对这些内部账号进行过滤。

在传统的账号过滤方法中,建立了一个数据库,用来存储内部账号,在获取到登录账号时,查询数据库,判断该登录账号是否为内部账号,如果是内部账号,则将该登录账号过滤掉。通过该账号过滤方法,过滤了所有内部账号,只对用户的登录账号所产生的访问数据进行统计。

然而,在实际的网络系统中,内部账号的数量往往是海量的,这就需要建立一个非常庞大的数据库来存储内部账号,并且,在获取到一个登录账号后,需要通过遍历的方式到数据库中进行查询,查询过程耗时很长,导致账号过滤的效率较差。



技术实现要素:

本发明实施例的目的在于提供一种账号过滤方法、装置、电子设备及机器可读存储介质,以提高账号过滤的效率。具体技术方案如下:

第一方面,本发明实施例提供了一种账号过滤方法,该方法包括:

接收访问请求,其中,访问请求包括登录账号;

利用第一布隆过滤器,对登录账号进行识别,其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号;

若登录账号为内部账号,则过滤掉该登录账号。

可选的,在确定登录账号为内部账号之后,该方法还包括:

利用第二布隆过滤器,对登录账号进行识别,其中,第二布隆过滤器采用多个第二哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号,多个第二哈希函数与多个第一哈希函数不完全相同;

若登录账号为内部账号,则过滤掉该登录账号。

可选的,利用第一布隆过滤器,对登录账号进行识别的步骤,包括:

利用多个第一哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;

从第一预设标记序列中,查找各哈希地址分别对应的标记位;

若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;

若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号;

利用第二布隆过滤器,对登录账号进行识别的步骤,包括:

利用多个第二哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;

从第二预设标记序列中,查找各哈希地址分别对应的标记位;

若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;

若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号。

可选的,在接收访问请求的步骤之前,该方法还包括:

获取预先设定的各内部账号;

利用多个第一哈希函数,分别对各内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对各内部账号进行哈希运算,得到多个第二哈希地址;

将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值,其中,第一预设标记序列中各标记位的初始标记值为0,第二预设标记序列中各标记位的初始标记值为0。

可选的,该方法还包括:

若获取到新添加的内部账号,则利用多个第一哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第二哈希地址;

将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值。

第二方面,本发明实施例提供了一种账号过滤装置,该装置包括:

接收模块,用于接收访问请求,其中,访问请求包括登录账号;

第一识别模块,用于利用第一布隆过滤器,对登录账号进行识别,其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号;

过滤模块,用于若第一识别模块的识别结果为登录账号为内部账号,则过滤掉该登录账号。

可选的,该装置还包括:第二识别模块;

第二识别模块,用于若第一识别模块的识别结果为登录账号为内部账号,则利用第二布隆过滤器,对登录账号进行识别,其中,第二布隆过滤器采用多个第二哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号,多个第二哈希函数与多个第一哈希函数不完全相同;

过滤模块,还用于若第二识别模块的识别结果为登录账号为内部账号,则过滤掉该登录账号。

可选的,第一识别模块,具体用于:

利用多个第一哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;从第一预设标记序列中,查找各哈希地址分别对应的标记位;若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号;

第二识别模块,具体用于:

利用多个第二哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;从第二预设标记序列中,查找各哈希地址分别对应的标记位;若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号。

可选的,该装置还包括:

获取模块,用于获取预先设定的各内部账号;

第一运算模块,用于利用多个第一哈希函数,分别对各内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对各内部账号进行哈希运算,得到多个第二哈希地址;

第一设置模块,用于将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值,其中,第一预设标记序列中各标记位的初始标记值为0,第二预设标记序列中各标记位的初始标记值为0。

可选的,该装置还包括:

第二运算模块,用于若获取到新添加的内部账号,则利用多个第一哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第二哈希地址;

第三设置模块,用于将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的计算机程序时,实现本发明实施例第一方面所提供的账号过滤方法。

第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例第一方面所提供的账号过滤方法。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行本发明实施例第一方面所提供的账号过滤方法。

本发明实施例提供的一种账号过滤方法、装置、电子设备及机器可读存储介质,接收包括登录账号的访问请求,利用第一布隆过滤器,对登录账号进行识别,其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号,如果登录账号为内部账号,则过滤掉该登录账号。基于布隆过滤器对内部账号进行过滤,布隆过滤器的原理是采用多个哈希函数分别对登录账号进行哈希运算,运算结果映射出登录账号是否为内部账号,则本发明实施例不需要建立庞大的数据库来存储内部账号,节省了内存空间,并且,不再需要去数据库中进行遍历查询,提升了账号过滤的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例的账号过滤方法的流程示意图;

图2为本发明另一实施例的账号过滤方法的流程示意图;

图3为本发明实施例的账号过滤的架构示意图;

图4为本发明再一实施例的账号过滤方法的流程示意图;

图5为本发明一实施例的账号过滤装置的结构示意图;

图6为本发明另一实施例的账号过滤装置的结构示意图;

图7为本发明再一实施例的账号过滤装置的结构示意图;

图8为本发明实施例的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高账号过滤的效率,本发明实施例提供了一种账号过滤方法、装置、电子设备及机器可读存储介质。下面,首先对本发明实施例所提供的账号过滤方法进行介绍。

本发明实施例所提供的账号过滤方法的执行主体可以为用于进行账号过滤的服务器,也可以是网关、防火墙等设备,实现本发明实施例所提供的账号过滤方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种。

如图1所示,本发明实施例提供了一种账号过滤方法,可以包括如下步骤。

s101,接收访问请求,其中,访问请求包括登录账号。

访问请求是指用户、内部运营人员、内部机器人等访问网站所产生的请求,该请求可以是登录时产生的,也可以是在有访问数据时产生的。

s102,利用第一布隆过滤器,对登录账号进行识别,判断登录账号是否为内部账号,如果是则执行s103,否则执行s104。

其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号。在接收到访问请求时,利用第一布隆过滤器对登录账号进行识别,判断登录账号是否为内部账号。具体的,第一布隆过滤器是由一个很长的二进制向量和一系列哈希函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。其原理是,采用多个第一哈希函数分别对登录账号进行哈希运算,可以得到多个运算结果(一个哈希函数对应一个运算结果),哈希运算结果映射到二进制向量中的具体位,位的标记值直接表明了登录账号是否为内部账号。

s103,过滤掉该登录账号。

如果识别出登录账号是内部账号,则将该登录账号过滤掉,这样,可以不对内部账号访问所产生的访问数据、用户数据等进行统计。

s104,执行正常的访问请求逻辑。

正常的访问请求逻辑即为允许用户正常的进行访问,并且对用户的访问数据、用户数据进行统计。

应用本发明实施例,基于布隆过滤器对内部账号进行过滤,布隆过滤器的原理是采用多个哈希函数分别对登录账号进行哈希运算,运算结果映射出登录账号是否为内部账号,则本发明实施例不需要建立庞大的数据库来存储内部账号,节省了内存空间,并且,不再需要去数据库中进行遍历查询,提升了账号过滤的效率。

利用第一布隆过滤器对登录账号进行识别时,对同一个登录账号应用不同的哈希函数进行运算时,会得到多个不同的运算结果,然而针对另一个登录账号,也利用不同的哈希函数进行运算,运算结果可能与之前登录账号的运算结果冲突,导致无法确认是否100%存在内部账号,由于无法确认是否存在内部账号,在进行内部账号过滤时,无法进行准确的过滤操作。为了应对这种问题,本发明实施例还提供了一种账号过滤方法,如图2所示,可以包括如下步骤。

s201,接收访问请求,其中,访问请求包括登录账号。

s202,利用第一布隆过滤器,对登录账号进行识别,判断登录账号是否为内部账号,如果是则执行s203,否则执行s205。

其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号。

s203,利用第二布隆过滤器,对登录账号进行识别,判断登录账号是否为内部账号,如果是则执行s204,否则执行s205。

其中,第二布隆过滤器采用多个第二哈希函数分别对所述登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号,多个第二哈希函数与多个第一哈希函数不完全相同。

在本发明实施例中,采用两层布隆过滤器对登录账号进行识别,如果第一布隆过滤器识别出登录账号是内部账号,则再利用第二布隆过滤器对登录账号进行第二次识别,第二布隆过滤器所采用的多个第二哈希函数与第一布隆过滤器所采用的多个第一哈希函数不完全相同,这样,减少了利用不同哈希函数对同一登录账号进行哈希运算,计算得到相同运算结果的概率,从而提高了识别结果的准确性,进一步的,由于能够准确识别出内部账号,则可以准确地过滤掉内部账号。

s204,过滤掉该登录账号。

s205,执行正常的访问请求逻辑。

应用本发明实施例,基于布隆过滤器对内部账号进行过滤,布隆过滤器的原理是采用多个哈希函数分别对登录账号进行哈希运算,运算结果映射出登录账号是否为内部账号,则本发明实施例不需要建立庞大的数据库来存储内部账号,节省了内存空间,并且,不再需要去数据库中进行遍历查询,提升了账号过滤的效率。

并且,利用两个布隆过滤器先后对登录账号进行识别,在第一布隆过滤器识别登录账号是内部账号时,再利用第二布隆过滤器对登录账号进行识别,如果识别结果是内部账号,则确定该登录账号是内部账号。第二布隆过滤器所采用的多个第二哈希函数与第一布隆过滤器所采用的多个第一哈希函数不完全相同,这样,减少了利用不同哈希函数对同一登录账号进行哈希运算,计算得到相同运算结果的概率,从而提高了识别结果的准确性,进一步的,由于能够准确识别出内部账号,则可以准确地过滤掉内部账号。

在图1和图2所示的实施例中,利用第一布隆过滤器,对登录账号进行识别的步骤,具体包括:

利用多个第一哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;从第一预设标记序列中,查找各哈希地址分别对应的标记位;若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号。

利用第一布隆过滤器对登录账号进行识别的过程,主要是通过多个第一哈希函数对登录账号进行哈希运算,可以对应的得到多个哈希地址(一个哈希函数对应得到一个哈希地址),哈希地址对应指示了第一预设标记序列中的一个标记位,例如,哈希地址计算出来为0,则指示了第一预设标记序列中的第0位。第一预设标记序列记录的为是否是内部账号的标记值,如果是内部账号则标记位的标记值为预设标记值(例如为1)。

经过多个哈希函数的运算,得到多个哈希地址,则相应的可以查找到第一预设标记序列中的多个标记位,判断查找到的各个标记位的标记值是否为预设标记值(例如1),如果查找到的各个标记位的标记值均为预设标记值,则说明登录账号为内部账号,一旦有一个查找到的标记位的标记值不是预设标记值,则说明登录账号为非内部账号。

图2所示的实施例中,利用第二布隆过滤器,对登录账号进行识别的步骤,具体包括:

利用多个第二哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;从第二预设标记序列中,查找各哈希地址分别对应的标记位;若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号。

与利用第一布隆过滤器对登录账号进行识别的过程相同,利用第二布隆过滤器对登录账号进行识别的过程,是通过多个第二哈希函数对登录账号进行哈希运算,可以对应的得到多个哈希地址,则相应的可以查找到第二预设标记序列中的多个标记位,判断查找到的各个标记位的标记值是否为预设标记值(例如1),如果查找到的各个标记位的标记值均为预设标记值,则说明登录账号为内部账号,一旦有一个查找到的标记位的标记值不是预设标记值,则说明登录账号为非内部账号。上述第一预设标记序列和第二预设标记序列可以为同一个标记序列,也可以是两个不同标记序列。

以第一布隆过滤器采用三种哈希函数、第二布隆过滤器采用三种哈希函数为例,第一预设标记序列和第二预设标记序列为两个不同的标记序列。利用第一布隆过滤器对登录账号进行识别,得到{1,4,7}三个哈希地址,到如图3所示的第一预设标记序列中查找第1位、第4位和第7位,这三位的标记值都是1,则可以确定登录账号为内部账号;再利用第二布隆过滤器对登录账号进行识别,得到{2,6,9}三个哈希地址,到如图3所示的第二预设标记序列中查找第2位、第6位和第9位,这三位的标记值都是1,则可以确定登录账号为内部账号,综上,可以确定该登录账号为内部账号。

基于上述利用第一布隆过滤器、第二布隆过滤器对登录账号进行识别的步骤,在执行本发明实施例所提供的账号过滤方法之前,需要对第一预设标记序列、第二预设标记序列进行初始化。具体的,如图4所示,对预设标记序列进行初始化的流程包括如下步骤。

s401,获取预先设定的各内部账号。

网络系统中具体有哪些账号是内部账号可以是预先设定好的,由技术人员预先输入到本地缓存中存储,在系统启动时,可以从本地缓存中获取到预先设定的各内部账号。

s402,利用多个第一哈希函数,分别对各内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对各内部账号进行哈希运算,得到多个第二哈希地址。

s403,将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值,其中,第一预设标记序列中各标记位的初始标记值为0,第二预设标记序列中各标记位的初始标记值为0。

在获取到各内部账号后,利用多个第一哈希函数对各内部账号进行哈希运算,可以得到多个第一哈希地址,每个第一哈希地址对应到第一预设标记序列中的一个标记位,相应的可以将标记位的标记值设置为预设标记值;还需要利用多个第二哈希函数对各内部账号进行哈希运算,可以得到多个第二哈希地址,每个第二哈希地址对应到第二预设标记序列中的一个标记位,相应的可以将标记位的标记值设置为预设标记值,为后续的识别过程提供匹配基础。上述第一预设标记序列与第二预设标记序列可以为同一个标记序列,也可以为两个不同标记序列。

针对第一预设标记序列与第二预设标记序列为同一个标记序列的情况,可以同时使用多个第一哈希函数和多个第二哈希函数分别对各内部账号进行哈希运算,基于得到的多个哈希地址,将预设标记序列中相应的标记位置为预设标记值。

在本发明实施例中,先利用多个第一哈希函数对各内部账号进行哈希运算,还是先利用多个第二哈希函数对各内部账号进行哈希运算,这里不做限定。

另外,在本发明实施例的另一种实现方式中,可以实时添加新的内部账号,则相应的,本发明实施例所提供的账号过滤方法还可以包括:

若获取到新添加的内部账号,则利用多个第一哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第二哈希地址;将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值。

如果获取到新添加的内部账号,利用多个第一哈希函数对新添加内部账号进行哈希运算,可以得到多个第一哈希地址,每个第一哈希地址对应到第一预设标记序列中的一个标记位,相应的可以将标记位的标记值设置为预设标记值;再利用多个第二哈希函数对新添加的内部账号进行哈希运算,可以得到多个第二哈希地址,每个第二哈希地址对应到第二预设标记序列中的一个标记位,相应的可以将标记位的标记值设置为预设标记值。上述第一预设标记序列与第二预设标记序列可以为同一个标记序列,也可以为两个不同标记序列。

相应于上述方法实施例,本发明实施例提供了一种账号过滤装置,如图5所示,该装置包括:

接收模块510,用于接收访问请求,其中,访问请求包括登录账号;

第一识别模块520,用于利用第一布隆过滤器,对登录账号进行识别,其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号;

过滤模块530,用于若第一识别模块的识别结果为登录账号为内部账号,则过滤掉该登录账号。

应用本发明实施例,基于布隆过滤器对内部账号进行过滤,布隆过滤器的原理是采用多个哈希函数分别对登录账号进行哈希运算,运算结果映射出登录账号是否为内部账号,则本发明实施例不需要建立庞大的数据库来存储内部账号,节省了内存空间,并且,不再需要去数据库中进行遍历查询,提升了账号过滤的效率。

基于图5所示实施例,本发明实施例还提供了一种账号过滤装置,如图6所示,该装置包括:

接收模块610,用于接收访问请求,其中,访问请求包括登录账号;

第一识别模块620,用于利用第一布隆过滤器,对登录账号进行识别,其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号;

第二识别模块630,用于若第一识别模块620的识别结果为登录账号为内部账号,则利用第二布隆过滤器,对登录账号进行识别,其中,第二布隆过滤器采用多个第二哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号,多个第二哈希函数与多个第一哈希函数不完全相同;

过滤模块640,用于若第二识别模块630的识别结果为登录账号为内部账号,则过滤掉该登录账号。

应用本发明实施例,基于布隆过滤器对内部账号进行过滤,布隆过滤器的原理是采用多个哈希函数分别对登录账号进行哈希运算,运算结果映射出登录账号是否为内部账号,则本发明实施例不需要建立庞大的数据库来存储内部账号,节省了内存空间,并且,不再需要去数据库中进行遍历查询,提升了账号过滤的效率。并且,利用两个布隆过滤器先后对登录账号进行识别,在第一布隆过滤器识别登录账号是内部账号时,再利用第二布隆过滤器对登录账号进行识别,如果识别结果是内部账号,则确定该登录账号是内部账号。第二布隆过滤器所采用的多个第二哈希函数与第一布隆过滤器所采用的多个第一哈希函数不完全相同,这样,减少了利用不同哈希函数对同一登录账号进行哈希运算,计算得到相同运算结果的概率,从而提高了识别结果的准确性。

可选的,第一识别模块620,具体可以用于:

利用多个第一哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;从第一预设标记序列中,查找各哈希地址分别对应的标记位;若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号;

第二识别模块630,具体可以用于:

利用多个第二哈希函数,分别对登录账号进行哈希运算,得到多个哈希地址;从第二预设标记序列中,查找各哈希地址分别对应的标记位;若各哈希地址分别对应标记位的标记值均为预设标记值,则确定登录账号为内部账号;若任一哈希地址对应标记位的标记值不为预设标记值,则确定登录账号为非内部账号。

基于图6所示实施例,本发明实施例还提供了一种账号过滤装置,如图7所示,该装置包括:

获取模块710,用于获取预先设定的各内部账号;

第一运算模块720,用于利用多个第一哈希函数,分别对各内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对各内部账号进行哈希运算,得到多个第二哈希地址;

第一设置模块730,用于将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值,其中,第一预设标记序列中各标记位的初始标记值为0,第二预设标记序列中各标记位的初始标记值为0;

接收模块740,用于接收访问请求,其中,访问请求包括登录账号;

第一识别模块750,用于利用第一布隆过滤器,对登录账号进行识别,其中,第一布隆过滤器采用多个第一哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号;

第二识别模块760,用于若第一识别模块620的识别结果为登录账号为内部账号,则利用第二布隆过滤器,对登录账号进行识别,其中,第二布隆过滤器采用多个第二哈希函数分别对登录账号进行哈希运算,基于运算结果识别登录账号是否为内部账号,多个第二哈希函数与多个第一哈希函数不完全相同;

过滤模块770,用于若第二识别模块630的识别结果为登录账号为内部账号,则过滤掉该登录账号。

可选的,上述图5-图7所示实施例的装置还可以包括:

第二运算模块,用于若获取到新添加的内部账号,则利用多个第一哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第一哈希地址,利用多个第二哈希函数,分别对新添加的内部账号进行哈希运算,得到多个第二哈希地址;

第三设置模块,用于将第一预设标记序列中多个第一哈希地址分别对应标记位的标记值设置为预设标记值,将第二预设标记序列中多个第二哈希地址分别对应标记位的标记值设置为预设标记值。

本发明实施例提供了一种电子设备,如图8所示,包括处理器810、通信接口820、存储器830和通信总线840,其中,处理器810、通信接口820、存储器830通过通信总线840完成相互间的通信;

存储器830,用于存放计算机程序;

处理器810,用于执行存储器830上所存放的计算机程序时,实现本发明实施例提供的账号过滤方法。

应用本发明实施例,基于布隆过滤器对内部账号进行过滤,布隆过滤器的原理是采用多个哈希函数分别对登录账号进行哈希运算,运算结果映射出登录账号是否为内部账号,则本发明实施例不需要建立庞大的数据库来存储内部账号,节省了内存空间,并且,不再需要去数据库中进行遍历查询,提升了账号过滤的效率。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory,简称nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种机器可读存储介质,机器可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例所提供的账号过滤方法。

本发明实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行本发明实施例所提供的账号过滤方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,简称dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如数字多功能光盘(digitalversatiledisc,简称dvd))、或者半导体介质(例如固态硬盘(solidstatedisk,简称ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、机器可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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