僵尸账号检测方法、装置、电子设备及存储介质与流程

文档序号:24119660发布日期:2021-02-27 16:08阅读:131来源:国知局
僵尸账号检测方法、装置、电子设备及存储介质与流程

[0001]
本发明涉及云安全领域,尤其涉及一种僵尸账号检测方法、装置、电子设备及计算机可读存储介质。


背景技术:

[0002]
随着社交网络不断发展,产生了各种论坛以及交友平台,例如微信、微博以及社区论坛等。在这些平台及论坛中,如果允许用户发表言论或操作,都需要先进行注册。这种用户注册机制有助于企业进行用户管理,账号相当于用户的身份,方便统计用户信息,也利于用户与用户之间进行交流。
[0003]
然而,注册机制虽然在一定程度上限制了用户的操作行为,但是在某些情况下,不法用户可以通过注册大量的僵尸账号来绕过这一限制。如经常在举行抽奖或者发红包的活动中,会有人恶意的使用n多个僵尸号来盗刷系统,导致活动没有达到预期的效果,同时也给公司造成一定的经济损失;又如视频类网站,用户可通过雇佣网络水军来提高视频知名度,这种网络水军便是通过创建大量僵尸帐号来虚假提高视频的点击量与评论数量。
[0004]
当前问题是:面对这种利用僵尸账号来绕过单个帐号操作次数的限制或制造虚假评论的行为,没有及时有效的方法来检测访问系统的用户账号是否为僵尸账号,也没有有效的方法来防御。


技术实现要素:

[0005]
有鉴于此,本发明提出一种僵尸账号检测方法、装置、电子设备及计算机可读存储介质,可以及时有效的检测出访问账号是否为僵尸账号。
[0006]
首先,为实现上述目的,本发明提出一种僵尸账号检测方法,应用于电子设备,该方法包括步骤:
[0007]
从预设数据源获取已知的僵尸账号集合,将所述僵尸账号集合通过多个哈希函数分别映射至一个多维数组的x、y、z轴数组中对应的位置;
[0008]
接收待检测账号,计算所述待检测账号分别在所述多维数组的x、y、z轴数组中对应序位的状态值,若对应序位的状态值均为1,则判定所述待检测账号存在于所述僵尸账集合中、所述待检测账号为僵尸账号;若对应序位的状态值有一个不为1,则判定所述待检测账号不在所述僵尸账集合中、所述待检测账号为正常账号。
[0009]
优选的,计算所述待检测账号分别在所述x、y、z轴数组中对应序位的状态值,包括如下步骤:
[0010]
将所述待检测账号输入至所述多个哈希函数,得到对应的多个哈希值;
[0011]
将所述多个哈希值分别除以所述x轴数组、y轴数组以及z轴数组的预设长度,得出所述待检测账号分别在所述x轴数组、y轴数组以及z轴数组的对应序位的状态值。
[0012]
优选的,所述x轴、y、z轴数组的长度值相同,所述长度值为所述僵尸账号集合中僵尸账号的数量值与一个预设数值的比值。
[0013]
优选的,所述预设数值为0.75。
[0014]
优选的,所述哈希函数为murmurhash函数、cityhash函数、spookyhash函数以及fnv hash函数中的任意一种。
[0015]
优选的,所述多维数组的数据储存格式为(key,value)形式的键值对,其中,key值代表一个僵尸账号,value值代表该僵尸账号储存于所述多维数组中的位置。
[0016]
优选的,所述多维数组中的每一所述键值对的大小为16字节,包括8字节的编号key值和8字节的value值。
[0017]
为实现上述目的,本发明还提供一种僵尸账号检测装置,所述装置包括:
[0018]
映射模块:用于从预设数据源获取已知的僵尸账号集合,将所述僵尸账号集合通过多个哈希函数分别映射至一个多维数组的x、y、z轴数组中对应的位置;
[0019]
检测模块:用于接收待检测账号,计算所述待检测账号分别在所述多维数组的x、y、z轴数组中对应序位的状态值,若对应序位的状态值均为1,则判定所述待检测账号存在于所述僵尸账集合中、所述待检测账号为僵尸账号;若对应序位的状态值有一个不为1,则判定所述待检测账号不在所述僵尸账集合中、所述待检测账号为正常账号。
[0020]
此外,为实现上述目的,本发明还提供一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的僵尸账号检测程序,所述僵尸账号检测程序被所述处理器执行,以使所述处理器能够执行如上述僵尸账号检测方法。
[0021]
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有僵尸账号检测程序,所述僵尸账号检测程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述僵尸账号的检测方法的步骤。
[0022]
相较于现有技术,本发明所提出的僵尸账号检测方法、装置、电子设备及计算机可读存储介质,将已知的僵尸账号储存于预设的多维数组中,该数组的数据存储格式为(key-value)形式的键值对,其占用的空间小;另一方面,预先将已知的僵尸账号集合通过多个不同的哈希函数分别映射至预设多维数组包含的x轴数组、y轴数组以及z轴数组中的对应位置,接收待检测的账号,并计算出该账号分别在x轴数组、y轴数组以及z轴数组对应序位的状态值来判断该账号是否为僵尸账号,该方法极大提高了僵尸账号的检测速度,且实用性高。
附图说明
[0023]
图1是本发明僵尸账号检测方法的流程示意图;
[0024]
图2是本发明僵尸账号检测装置的模块示意图;
[0025]
图3是本发明电子设备一可选的硬件架构的示意图;
[0026]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0027]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
[0029]
本申请实施例提供的僵尸账号检测方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述僵尸账号检测方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
[0030]
参阅图1所示,是本发明僵尸账号检测方法的流程示意图,该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
[0031]
在本实施例中,一种僵尸账号检测方法包括以下步骤:
[0032]
步骤s1:从预设数据源获取已知的僵尸账号集合,将所述僵尸账号集合通过多个哈希函数分别映射至一个多维数组的x、y、z轴数组中对应的位置。
[0033]
本实施例中,所述多维数组为包括x轴数组、y轴数组以及z轴数组的一个三维数组,其中,所述x轴数组、y轴数组以及z轴数组的长度值相同。
[0034]
优选的,所述x轴数组、y轴数组以及z轴数组的长度值为所述僵尸账号集合中僵尸账号的数量值与一个预设数值的比值。在本实施例中,所述预设数值为0.75,用于降低不同僵尸账号映射到所述三维数组中同一个位置上的概率。比如,长度值为16(即包含16个元素)的一个数组,乘以0.75以后等于12,如果在这12个位置上都有了值,可以把这个长度为16的数组进行扩容,避免僵尸账号又映射到同一个位置上,这样就降低了碰撞的概率,也就是落在同一个位置上的概率。
[0035]
需要说明的是,所述三维数组的数据储存格式为(key,value)形式的键值对,且所述三维数组中的每一所述键值对的大小为16字节,包括8字节的编号key值和8字节的value值。其中,所述key值代表一个僵尸账号,所述value值代表该僵尸账号储存于所述三维数组中的位置。本实施例中,分别通过第一哈希函数hash1、第二哈希函数hash2以及第三哈希函数hash3将所述僵尸账号集合中的每一僵尸账号(key)分别映射至所述三维数组中包含的x轴数组、y轴数组以及z轴数组中对应的位置(value),例如:hash1(key)=x,hash2(key)=y,hash3(key)=z。
[0036]
具体的,所述哈希函数为murmurhash函数、cityhash函数、spookyhash函数以及fnv hash函数中的任意一种。优选的,本实施例中采用murmurhash函数将所述僵尸账号映射至所述三维数组中,所述murmurhash函数是一种非加密型哈希函数,适用于一般的哈希检索操作,对于繁杂的数据具有较高的平衡性与低碰撞率,它是一种可以实现布隆过滤器bloomfilter的函数。当然,不限于此,也可以采用其他适当的哈希函数,本发明对此不进行特殊限定。
[0037]
步骤s2:接收待检测账号,计算所述待检测账号分别在所述多维数组的x、y、z轴数组中对应序位的状态值,若对应序位的状态值均为1,则判定所述待检测账号存在于所述僵
尸账集合中、所述待检测账号为僵尸账号;若对应序位的状态值有一个不为1,则判定所述待检测账号不在所述僵尸账集合中、所述待检测账号为正常账号。
[0038]
进一步的,计算所述待检测账号分别在所述x轴数组、y轴数组以及z轴数组中的对应序位的状态值的方法包括如下步骤:
[0039]
将所述待检测账号作为一个key输入至所述第一哈希函数hash1、所述第二哈希函数hash2以及所述第三哈希函数hash3中,得到三个对应的哈希值;
[0040]
将得出的三个哈希值分别除以所述x轴数组、y轴数组以及z轴数组的预设长度,得出所述待检测账号分别在所述x轴数组、y轴数组以及z轴数组的对应序位的状态值。
[0041]
比如,hash1(key)%size1=5,hash2(key)%size2=2,hash3(key)%size3=3,其中,hash1、hash2以及hash3表示第一哈希函数、第二哈希函数及第三哈希函数,size1、size2以及size3分别为x轴数组、y轴数组以及z轴数组的长度值;hash1(key)%size1=5表示所述待检测账号在x轴数组中的第5个位的状态值应为1,hash2(key)%size2=2表示所述待检测账号在y轴数组中的第2个位的状态值应为1,hash3(key)%size3=3表示所述待检测账号在z轴数组中的第3个位的状态值应为1,若这三个序位号有任意一个不为1,则说明所述待检测账号不存在于预先映射至所述三维数组中的所述僵尸账集合中,判定所述待检测账号账号不为僵尸账号;若所述待检测账号在x轴数组中的第5个位、在y轴数组中的第2个位及在z轴数组中的第3个位的状态值均为1,则说明所述待检测账号存在于预先映射至所述三维数组中的所述僵尸账集合中,判定所述待检测账号为僵尸账号。
[0042]
本实施例中,将已知的僵尸账号储存于预设的多维数组中,该多维数组的数据存储格式为(key-value)形式的键值对,其占用的空间小;另一方面,预先将已知的僵尸账号集合通过多个不同的哈希函数分别映射至预设多维数组包含的x轴数组、y轴数组以及z轴数组中的对应位置;接收待检测的账号,并计算出该账号分别在x轴数组、y轴数组以及z轴数组对应序位的状态值来判断该账号是否为僵尸账号,该方法极大提高了僵尸账号的检测速度,且实用性高。
[0043]
参阅图2所示,是本发明僵尸账号检测装置200的模块示意图。
[0044]
本实施例中,所述僵尸账号的检测装置200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明僵尸账号的检测操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,僵尸账号检测装置200可以被划分为一个或多个模块。例如,在图2中,所述僵尸账号检测装置200可以被分割成映射模块201和检测模块202。其中:
[0045]
所述映射模块201,用于从预设数据源获取已知的僵尸账号集合,将所述僵尸账号集合通过多个哈希函数分别映射至一个多维数组的x、y、z轴数组中对应的位置。
[0046]
本实施例中,所述多维数组为包括x轴数组、y轴数组以及z轴数组的一个三维数组,其中,所述x轴数组、y轴数组以及z轴数组的长度值相同。
[0047]
优选的,所述x轴数组、y轴数组以及z轴数组的长度值为所述僵尸账号集合中僵尸账号的数量值与一个预设数值的比值。在本实施例中,所述预设数值为0.75,用于降低不同僵尸账号映射到所述三维数组中同一个位置上的概率。比如,长度值为16(即包含16个元素)的一个数组,乘以0.75以后等于12,如果在这12个位置上都有了值,可以把这个长度为16的数组进行扩容,避免僵尸账号又映射到同一个位置上,这样就降低了碰撞的概率,也就
是落在同一个位置上的概率。
[0048]
需要说明的是,所述三维数组的数据储存格式为(key,value)形式的键值对,且所述三维数组中的每一所述键值对的大小为16字节,包括8字节的编号key值和8字节的value值。其中,所述key值代表一个僵尸账号,所述value值代表该僵尸账号储存于所述三维数组中的位置。本实施例中,分别通过第一哈希函数hash1、第二哈希函数hash2以及第三哈希函数hash3将所述僵尸账号集合中的每一僵尸账号(key)分别映射至所述三维数组中包含的x轴数组、y轴数组以及z轴数组中对应的位置(value),例如:hash1(key)=x,hash2(key)=y,hash3(key)=z。
[0049]
具体的,所述哈希函数为murmurhash函数、cityhash函数、spookyhash函数以及fnv hash函数中的任意一种。优选的,本实施例中采用murmurhash函数将所述僵尸账号映射至所述三维数组中,所述murmurhash函数是一种非加密型哈希函数,适用于一般的哈希检索操作,对于繁杂的数据具有较高的平衡性与低碰撞率,它是一种可以实现布隆过滤器bloomfilter的函数。当然,不限于此,也可以采用其他适当的哈希函数,本发明对此不进行特殊限定。
[0050]
所述检测模块202,用于接收待检测账号,计算所述待检测账号分别在所述多维数组的x、y、z轴数组中对应序位的状态值,若对应序位的状态值均为1,则判定所述待检测账号存在于所述僵尸账集合中、所述待检测账号为僵尸账号;若对应序位的状态值有一个不为1,则判定所述待检测账号不在所述僵尸账集合中、所述待检测账号为正常账号。
[0051]
进一步的,计算所述待检测账号分别在所述x轴数组、y轴数组以及z轴数组中的对应序位的状态值的方法包括如下步骤:
[0052]
将所述待检测账号作为一个key输入至所述第一哈希函数hash1、所述第二哈希函数hash2以及所述第三哈希函数hash3中,得到三个对应的哈希值;
[0053]
将得出的三个哈希值分别除以所述x轴数组、y轴数组以及z轴数组的预设长度,得出所述待检测账号分别在所述x轴数组、y轴数组以及z轴数组的对应序位的状态值。
[0054]
比如,hash1(key)%size1=5,hash2(key)%size2=2,hash3(key)%size3=3,其中,hash1、hash2以及hash3表示第一哈希函数、第二哈希函数及第三哈希函数,size1、size2以及size3分别为x轴数组、y轴数组以及z轴数组的长度值;hash1(key)%size1=5表示所述待检测账号在x轴数组中的第5个位的状态值应为1,hash2(key)%size2=2表示所述待检测账号在y轴数组中的第2个位的状态值应为1,hash3(key)%size3=3表示所述待检测账号在z轴数组中的第3个位的状态值应为1,若这三个序位号有任意一个不为1,则说明所述待检测账号不存在于预先映射至所述三维数组中的所述僵尸账集合中,判定所述待检测账号账号不为僵尸账号;若所述待检测账号在x轴数组中的第5个位、在y轴数组中的第2个位及在z轴数组中的第3个位的状态值均为1,则说明所述待检测账号存在于预先映射至所述三维数组中的所述僵尸账集合中,判定所述待检测账号为僵尸账号。
[0055]
本实施例中,将已知的僵尸账号储存于预设的多维数组中,该多维数组的数据存储格式为(key-value)形式的键值对,其占用的空间小;另一方面,预先将已知的僵尸账号集合通过多个不同的哈希函数分别映射至预设多维数组包含的x轴数组、y轴数组以及z轴数组中的对应位置;接收待检测的账号,并计算出该账号分别在x轴数组、y轴数组以及z轴数组对应序位的状态值来判断该账号是否为僵尸账号,该方法极大提高了僵尸账号的检测
速度,且实用性高。
[0056]
参阅图3所示,是本发明实现僵尸账号检测方法的电子设备的结构示意图。
[0057]
所述电子设备1可以包括处理器10、存储器11和总线12,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如僵尸账号检测程序13。
[0058]
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如僵尸账号检测程序13的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0059]
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行僵尸账号检测程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
[0060]
所述总线13可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
[0061]
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0062]
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
[0063]
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
[0064]
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled
(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
[0065]
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0066]
所述电子设备1中的所述存储器11存储的僵尸账号检测程序13是多个指令的组合,在所述处理器10中运行时,可以实现:
[0067]
从预设数据源获取已知的僵尸账号集合,将所述僵尸账号集合通过多个哈希函数分别映射至一个多维数组的x、y、z轴数组中对应的位置;
[0068]
接收待检测账号,计算所述待检测账号分别在所述多维数组的x、y、z轴数组中对应序位的状态值,若对应序位的状态值均为1,则判定所述待检测账号存在于所述僵尸账集合中、所述待检测账号为僵尸账号;若对应序位的状态值有一个不为1,则判定所述待检测账号不在所述僵尸账集合中、所述待检测账号为正常账号。
[0069]
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
[0070]
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是非易失性的,也可以是易失性的。所述计算机可读存储介质存储有僵尸账号检测程序,所述僵尸账号检测程序可被处理器执行,以使所述处理器执行上述僵尸账号检测方法实施例中的步骤。
[0071]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0072]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0073]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0074]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0075]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图表记视为限制所涉及的权利要求。
[0076]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0077]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1