一种验证码的分配方法、计算设备及存储介质转让专利

申请号 : CN202110336292.6

文献号 : CN112948812B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宁方伟

申请人 : 天津车之家数据信息技术有限公司

摘要 :

本发明公开了一种验证码的分配方法、计算设备及存储介质,该方法包括:响应客户端发送的获取验证码请求,从存储装置的所述风险分数等级表中查找与用户风险分数所属等级相对应的主验证码,若找到,判断已找出的主验证码是否可用;若已找出的主验证码可用,向客户端发送已找出的主验证码;若已找出的主验证码不可用,从存储装置的验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找到,发送已找到的降级验证码至所述客户端,若未查找到,向客户端发送离线模式。通过上述方法,实现了根据用户风险分数为用户分配相应难度的验证码,提高用户体验。

权利要求 :

1.一种验证码的分配方法,在业务服务器中执行,所述业务服务器分别与客户端、存储装置通信连接,所述存储装置中存储验证码关系表和风险分数等级表,其中,所述验证码关系表包括多条信息,每条信息包括主验证码、与主验证码关联的降级验证码,所述风险分数等级表包括用户风险分数等级、与用户风险分数等级相对应的主验证码,所述方法包括:响应客户端发送的获取验证码请求,从存储装置的所述风险分数等级表中查找与用户风险分数所属等级相对应的主验证码,若找到,判断已找出的主验证码是否可用,其中,所述获取验证码请求包括用户风险分数;

若已找出的主验证码可用,向所述客户端发送已找出的主验证码;

若已找出的主验证码不可用,从存储装置的所述验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找到,发送所述已找到的降级验证码至所述客户端,若未查找到,向所述客户端发送离线模式,其中,所述离线模式为在用户无感知的情况下向所述客户端发送验证码和完成验证的模式。

2.如权利要求1所述的方法,其中,所述验证码关联表的每条信息还包括验证码别名,所述获取验证码请求还包括待分配验证码别名,若无别名则待分配验证码别名为空,还包括步骤:判断所述待分配验证码别名是否为空,若否,在所述验证码关系表中匹配与所述待分配验证码别名相关联的主验证码,若是,则执行从存储装置的所述风险分数等级表中查找与用户风险分数所属等级相对应的主验证码的步骤;

若在所述验证码关系表中匹配到与所述待分配验证码别名相关联的主验证码,执行所述判断已找出的主验证码是否可用的步骤,若未匹配到,不向所述客户端发送验证码。

3.如权利要求1所述的方法,其中,所述从所述风险分数等级表中查找与所述用户风险分数所属等级相对应的主验证码的步骤还包括:若未从所述风险分数等级表中查找到与所述用户风险分数所属等级相对应的主验证码,不向所述客户端发送验证码。

4.如权利要求1至3中任一项所述的方法,其中,所述验证码关联表的每条信息还包括是否强制输出辅验证码和辅验证码,所述若已找出的主验证码可用,向所述客户端发送已找出的主验证码的步骤包括:从所述验证码关联表中查找与所述已找出的主验证码相关联的是否强制输出之验证码,判断是否强制输出辅验证码,若是,从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码,若否,判断已找出的主验证码是否存在被刷风险,若不存在,发送已找出的主验证码至所述客户端,若存在,则执行从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码的步骤。

5.如权利要求4所述的方法,其中,所述从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码的步骤包括:从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码,若找到,判断已找出的辅验证码是否可用,若未找到,不向所述客户端发送验证码。

6.如权利要求5所述的方法,其中,所述判断所述已找出的辅验证码是否可用的步骤包括:判断已找出的辅验证码是否可用,若可用,发送已找出的辅验证码至所述客户端,若不可用,发送所述离线模式至所述客户端。

7.如权利要求4所述的方法,其中,所述若已找出的主验证码不可用,从所述验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找到,发送已找到的降级验证码至所述客户端,若未查找到,向所述客户端发送离线模式的步骤包括:判断在所述验证码关联表中是否为已找出的主验证码配置降级验证码,若是,判断为已找出的主验证码配置的降级验证码是否可用,若并未给所述主验证码配置降级验证码,发送所述离线模式至所述客户端。

8.如权利要求7所述的方法,其中,所述判断为已找出的主验证码配置的降级验证码是否可用的步骤包括:判断为已找出的主验证码配置的降级验证码是否可用,若可用,执行所述判断是否强制输出辅验证码的步骤,若不可用,发送所述离线模式至所述客户端。

9.如权利要求1至3中任一项所述的方法,通过如下方法判断验证码是否可用,其中,所述验证码包括主验证码、辅验证码和降级验证码:每间隔第一预设时间,统计当前时间的前第二预设时间内验证码平均响应时间和响应失败率,其中,响应时间为从所述客户端发送获取验证码请求至向所述客户端发送验证码所需的时间,响应失败为响应所述客户端获取验证码的请求时间超过第三预设时间;

判断统计得到的平均响应时间是否超过预设平均响应时间阈值,若超过,确定所述验证码状态为不可用;

若统计得到的平均响应时间未超过所述预设平均响应时间阈值,则判断已得到的响应失败率是否超过预设响应失败率阈值,若是,确定所述验证码状态为不可用,若否,确定所述验证码状态为可用。

10.如权利要求9所述的方法,在确定所述验证码状态为不可用时,还包括步骤:将所述验证码的不可用状态维持第四预设时间;

在第四预设时间之后,继续将所述验证码的不可用状态维持第四预设时间,并在当前所述第四预设时间内,尝试恢复不可用状态的所述验证码为可用状态。

11.如权利要求10所述的方法,其中,所述在当前所述第四预设时间内,尝试恢复不可用状态的所述验证码为可用状态的步骤包括:在当前所述第四预设时间内,响应第一比例的所述客户端发送获取所述验证码的请求,向所述客户端发送验证码;

统计当前时间的前所述第二预设时间内所述验证码的平均响应时间和响应失败率;

判断已得到的平均响应时间是否超过所述预设平均响应时间阈值,若未超过,更改所述验证码状态为可用,若超过,则判断已得到的响应失败率是否超过所述预设响应失败率阈值,若是,维持所述验证码的不可用状态,若否,变更所述验证码状态为可用。

12.如权利要求10或11所述的方法,其中,所述第一预设时间为1秒,所述第二预设时间为10秒,所述第三预设时间为10分钟,所述第四预设时间为10秒,所述第一比例为50%。

13.一种计算设备,包括:

至少一个处理器;以及

存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1‑12中任一项所述的方法的指令。

14.一种存储有程序指令的可读存储介质,当所述程序指令被移动终端读取并执行时,使得计算设备执行如权利要求1‑12中任一项所述方法。

说明书 :

一种验证码的分配方法、计算设备及存储介质

技术领域

[0001] 本发明涉及互联网安全应用技术领域,特别涉及一种验证码的分配方法、计算设备和可读存储介质。

背景技术

[0002] 在互联网应用中,用户在注册、登录、下单、发帖、领优惠券等行为时,多先通过验证码进行验证,验证成功后继续进行上述行为。验证码的目的主要是分辨网络服务使用者是真人用户还是计算机程序,通过验证码的输入阻挡计算机程序,放行真人用户。因此,为用户分配相应地验证码就变得十分重要。
[0003] 现有技术中,多同时接入多种验证码组合,例如图片验证码和短信验证码组合。根据用户风险等级分数判断用户是否需要验证码,在用户需要验证码时,向用户发送预先设置好的高难度验证码,用户端只有通过验证后才可进行相应操作。但是上述方法仅根据用户风险等级分数判断用户是否需要验证码,而无法针对不同用户分配相应难度的验证码,可见已有方法对于验证码的分配不够灵活,用户体验差。
[0004] 为此,需要一种验证码的分配方法来解决上述技术方案中存在的问题。

发明内容

[0005] 为此,本发明提供一种验证码的分配方法、计算设备和可读存储介质,以解决或至少缓解上面存在的问题。
[0006] 根据本发明的一个方面,提供了一种验证码的分配方法,在业务服务器中执行,所述业务服务器分别与客户端、存储装置通信连接,所述存储装置中存储验证码关系表和风险分数等级表,其中,所述验证码关系表包括多条信息,每条信息包括主验证码、与主验证码关联的降级验证码,所述风险分数等级表包括用户风险分数等级、与用户风险分数等级相对应的主验证码,所述方法包括:
[0007] 响应客户端发送的获取验证码请求,从存储装置的所述风险分数等级表中查找与所述用户风险分数所属等级相对应的主验证码,若找到,判断已找出的主验证码是否可用,其中,所述获取验证码请求包括用户风险分数;
[0008] 若已找出的主验证码可用,向所述客户端发送已找出的主验证码;
[0009] 若已找出的主验证码不可用,从存储装置的所述验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找到,发送所述已找到的降级验证码至所述客户端,若未查找到,向所述客户端发送离线模式,其中,所述离线模式为在用户无感知的情况下向所述客户端发送验证码和完成验证的模式。
[0010] 可选地,所述验证码关联表的每条信息还包括验证码别名,所述获取验证码请求还包括待分配验证码别名,若无别名则待分配验证码别名为空,还包括步骤:
[0011] 判断所述待分配验证码别名是否为空,若否,在所述验证码关系表中匹配与所述待分配验证码别名相关联的主验证码,若是,则执行从存储装置的所述风险分数等级表中查找与所述用户风险分数所属等级相对应的主验证码的步骤;
[0012] 若在所述验证码关系表中匹配到与所述待分配验证码别名相关联的主验证码,执行所述判断已找出的主验证码是否可用的步骤,若未匹配到,不向所述客户端发送验证码。
[0013] 可选地,所述从所述风险分数等级表中查找与所述用户风险分数所属等级相对应的主验证码的步骤还包括:
[0014] 若未从所述风险分数等级表中查找到与所述用户风险分数所属等级相对应的主验证码,不向所述客户端发送验证码。
[0015] 可选地,所述验证码关联表的每条信息还包括是否强制输出辅验证码和辅验证码,所述若已找出的主验证码可用,向所述客户端发送已找出的主验证码的步骤包括:
[0016] 从所述验证码关联表中查找与所述已找出的主验证码相关联的是否强制输出之验证码,判断是否强制输出辅验证码,若是,从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码,若否,判断已找出的主验证码是否存在被刷风险,若不存在,发送已找出的主验证码至所述客户端,若存在,则执行从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码的步骤。
[0017] 可选地,所述从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码的步骤包括:
[0018] 从所述验证码关系表中查找与已找出的主验证码相关联的辅验证码,若找到,判断所述已找出的辅验证码是否可用,若未找到,不向所述客户端发送验证码。
[0019] 可选地,所述判断所述已找出的辅验证码是否可用的步骤包括:
[0020] 判断所述已找出的辅验证码是否可用,若可用,发送已找出的辅验证码至所述客户端,若不可用,发送所述离线模式至所述客户端。
[0021] 可选地,所述若已找出的主验证码不可用,从所述验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找到,发送所述已找到的降级验证码至所述客户端,若未查找到,向所述客户端发送离线模式的步骤包括:
[0022] 判断在所述验证码关联表中是否为已找出的主验证码配置降级验证码,若是,判断为已找出的主验证码配置的降级验证码是否可用,若并未给所述主验证码配置降级验证码,发送所述离线模式至所述客户端。
[0023] 可选地,所述判断为已找出的主验证码配置的降级验证码是否可用的步骤包括:
[0024] 判断为已找出的主验证码配置的降级验证码是否可用,若可用,执行所述判断是否强制输出辅验证码的步骤,若不可用,发送所述离线模式至所述客户端。
[0025] 可选地,通过如下方法判断验证码是否可用,其中,所述验证码包括主验证码、辅验证码和降级验证码:
[0026] 每间隔第一预设时间,统计当前时间的前第二预设时间内验证码平均响应时间和响应失败率,其中,响应时间为从所述客户端发送获取验证码请求至向所述客户端发送验证码所需的时间,响应失败为响应所述客户端获取验证码的请求时间超过第三预设时间;
[0027] 判断统计得到的平均响应时间是否超过预设平均响应时间阈值,若超过,确定所述验证码状态为不可用;
[0028] 若统计得到的平均响应时间未超过所述预设平均响应时间阈值,则判断已得到的响应失败率是否超过预设响应失败率阈值,若是,确定所述验证码状态为不可用,若否,确定所述验证码状态为可用。
[0029] 可选地,在确定所述验证码状态为不可用时,还包括步骤:
[0030] 将所述验证码的不可用状态维持第四预设时间;
[0031] 在第四预设时间之后,继续将所述验证码的不可用状态维持第四预设时间,并在当前所述第四预设时间内,尝试恢复不可用状态的所述验证码为可用状态。
[0032] 可选地,所述在当前所述第四预设时间内,尝试恢复不可用状态的所述验证码为可用状态的步骤包括:
[0033] 在当前所述第四预设时间内,响应第一比例的所述客户端发送获取所述验证码的请求,向所述客户端发送验证码;
[0034] 统计当前时间的前所述第二预设时间内所述验证码的平均响应时间和响应失败率;
[0035] 判断已得到的平均响应时间是否超过所述预设平均响应时间阈值,若未超过,更改所述验证码状态为可用,若超过,则判断已得到的响应失败率是否超过所述预设响应失败率阈值,若是,维持所述验证码的不可用状态,若否,变更所述验证码状态为可用。
[0036] 可选地,所述第一预设时间为1秒,所述第二预设时间为10秒,所述第三预设时间为10分钟,所述第四预设时间为10秒,所述第一比例为50%。
[0037] 根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述方法的指令。
[0038] 根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被移动终端读取并执行时,使得所述计算设备执行如上所述方法。
[0039] 根据本发明的技术方案,提供了一种验证码的分配方法,通过该方法,不再根据用户风险分数简单判断触发或不触发验证码,而是根据用户风险分数分配相应难度的验证码,即,用户风险分数高的用户对应分配难度高的验证码,用户风险分数低的用户对应分配难度低的验证码甚至不分配验证码,而难度低的验证码用户操作更加简便,因此本发明在达到最佳的防刷效果的同时,可简化用户操作,提高用户体验。具体地,从存储装置的风险分数等级表中查找与用户风险分数所属等级相对应的主验证码,若找到,判断已找出的主验证码是否可用,若不可用,从存储装置的验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找到,发送已找到的降级验证码至客户端,若未查找到,向客户端发送离线模式
[0040] 另外,本发明提供了自动判断验证码是否可用的方法,并且在验证码为不可用状态后,可将验证码的不可用状态自动恢复为可用状态,从而提高了工作效率。
[0041] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0042] 为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
[0043] 图1示出了根据本发明一个实施例的验证码的分配系统100的框图;
[0044] 图2示出了根据本发明一个实施例的计算设备200的结构图;
[0045] 图3示出了根据本发明一个实施例的验证码的分配方法300的流程图;以及[0046] 图4示出了根据本发明另一个实施例的验证码的分配方法400的流程图。

具体实施方式

[0047] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0048] 在互联网应用中,用户在注册、登录、下单、发帖、领优惠券等行为时,多先通过验证码进行验证,验证成功后继续进行上述行为。验证码的目的主要是分辨网络服务使用者是真人用户还是计算机程序,通过验证码的输入阻挡计算机程序,放行真人用户。因此,为用户分配相应地验证码就变得十分重要。
[0049] 现有技术中,多同时接入多种验证码组合,例如图片验证码和短信验证码组合。根据用户风险等级分数判断用户是否需要验证码,在用户需要验证码时,向用户发送预先设置好的高难度验证码。但是上述方法仅根据用户风险等级分数判断用户是否需要验证码,当用户为正常用户时,并不需要高难度验证码,只需要简单验证码甚至不需要验证码,只有高风险用户需要高难度验证码,但是目前为了达到阻挡计算机程序的目的,为多数用户均分配较高难度的验证码,而高难度验证码的验证过程相比于简单验证码的繁琐,用户体验差。
[0050] 为此,本发明提出一种验证码的分配系统,图1示出了根据本发明一个实施例的验证码的分配系统100的框图。如图1所示,验证码的分配系统100包括客户端101、业务服务器102和存储装置103,业务服务器102分别与客户端101和存储装置103通信连接。本发明不限制系统中各端之间的连接方式。例如,一端可以通过有线或无线的方式接入互联网,并通过数据接口与另一端连接,从而实现系统中各端之间的交互。
[0051] 本发明中的存储装置103可以为数据库,数据库可以是关系型数据库例如MySQL、ACCESS等,也可以是非关系型数据库例如NoSQL等。存储装置103可以驻留在业务服务器102中,从而业务服务器102可以直接从存储装置103中获取数据,也可驻留于配置服务器104中,且配置服务器104与业务服务器102通信连接,从而业务服务器102通过访问配置服务器104即可从存储装置103中获取数据,图1示出了存储装置103驻留于配置服务器104的情况。
本发明对存储装置103的具体部署、配置情况不做限制。
[0052] 当存储装置103驻留于业务服务器102中时,开发人员预先在业务服务器102中配置验证码关系表和风险分数等级表,并将配置好的验证码关系表和风险分数等级表保存至存储装置103中。当存储装置103驻留于配置服务器104中时,此时开发人员会预先在配置服务器104中配置验证码关系表和风险分数等级表,并将配置好的验证码关系表和风险分数等级表保存至存储装置103中。
[0053] 验证码关系表如表1所示,表1中包括多条信息,每条信息包括主验证码、与主验证码关联的辅验证码、降级验证码、是否强制输出辅验证码、验证码别名,其中,表1中出现的主验证码相同但验证码标识不同的情况,是为了区别相同验证码在不同组合形式下的属性,属性可包括验证码的有效时长等,此处不做具体限制。例如,主验证码均为短信验证码,但demo.sms的验证码有效时长为10分钟,而demo1.sms的验证码有效时长为15分钟。同理,主验证码均为语音,只是Demo1.voice、Demo2.voice对应的验证码的有效时长不同。
[0054] 表1
[0055]
[0056]
[0057] 其中,主验证码为在验证码防刷中受保护的验证码,辅验证码为在验证码防刷过程中作为防刷手段的验证码,降级验证码为在主验证码不可用时可选择的验证码。验证码别名为主验证码的另一个名称,通过验证码别名可在验证码关联表中查找到关联的主验证码。当然,开发人员可根据实际业务场景配置验证码关联表,表1仅为一个示例。
[0058] 验证码防刷为验证码的一种保护手段,具体为:同时校验两种验证码A和B,A验证码的触发条件是B校验通过,常用于保护成本较高的验证码形式,例如短信验证码和图片验证码组合,图片验证码校验正确之后发送短信验证码。其中,本发明包括25种主、辅验证码的组合形式,如表2所示,开发人员还可根据实际业务场景组合验证码,表2仅为一个示例。
[0059] 表2
[0060]
[0061]
[0062] 由于本发明中主、辅验证码组合形式的多样性,给恶意破解验证码的行为带来一定的难度,可能仅破解了其中的一种或者两种验证码组合形式,因此,主、辅验证码组合形式的多样性会提高被破解的难度,即提高验证码的安全性。
[0063] 风险分数等级表如表3所示,风险分数等级表包括用户风险分数等级、与用户风险分数等级相对应的验证码,其中,用户风险分数等级通过用户风险分数下限和用户风险分数上限表示,每一主验证码对应一个用户风险分数等级,即每一主验证码对应一组用户风险分数下限和用户风险分数上限。根据不同的业务场景,用户风险分数等级的设定也是不同的,例如,抢红包场景,由于该场景被恶意抢红包的风险较高,可以设置用户风险分数为10分就需要为该用户分配较大难度的验证码,而对于注册场景,可以配置用户风险分数为
20分时不需要分配验证码,当用户风险分数大于60分时才为该用户分配验证码,即用户风险分数0‑60分时不对应配置验证码,当用户风险分数大于60分才对应配置验证码。当然,开发人员可根据实际业务场景配置风险分数等级表,表3仅为一个示例。
[0064] 表3
[0065] 主验证码 用户风险分数下限 用户风险分数上限图片_demo.pic 20 30
极验_demo.gt 30 40
短信_demo.sms 40 50
短信_demo1.sms 50 60
短信_demo2.sms 60 70
语音_demo.voice 70 80
语音_demo1.voice 80 90
语音_demo2.voice 90 100
[0066] 如表3所示,用户风险分数下限20至用户风险分数上限30代表的用户风险分数等级对应的主验证码为图片_demo.pic,用户风险分数下限30至用户风险分数上限40代表的用户风险分数等级对应的主验证码为短信_demo.gt,用户风险分数下限70至用户风险分数上限80代表的用户风险分数等级对应的主验证码为语音_demo.voice。其中,用户风险分数代表用户恶意获取验证码的概率,用户风险分数越高用户恶意获取验证码的概率越大,当然,当用户风险分数低于20时,此时认为该用户恶意获取验证码的概率较低,可不向该用户发送验证码,即不对该用户的操作进行验证。与表1中相同的是,表3中出现的主验证码相同但验证码标识不同的情况,针对该情况可参见对表1的描述,此处不再赘述。
[0067] 客户端101,即用户所使用的终端设备,其具体可以是桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。客户端101可以包括一个或多个,图1示出了客户端101为多个的情况,当然本发明并不限制客户端
101的具体数量。在本发明的一个实施方式中,客户端101中安装移动应用,用户可在该移动应用触发获取验证码接口,从而向业务服务器102发送获取验证码的请求。
[0068] 业务服务器102可以为一个,当然,为了提高执行效率和稳定性,业务服务器102也可以为多个,多个业务服务器102组成业务服务器集群,本发明并不限制业务服务器102的具体数量。图1示出了业务服务器102为多个的情况,当然本发明并不限制业务服务器102的具体数量。
[0069] 基于本发明提供的验证码的分配系统100,业务服务器102响应客户端101发送的获取验证码的请求,匹配验证码并发送至客户端101。以下为响应一次获取验证码的请求,并为该请求分配验证码的工作过程:
[0070] 业务服务器102响应客户端101发送的获取验证码请求,从获取验证码请求中获取用户风险分数和待分配验证码别名,判断待分配验证码别名是否为空(即判断是否通过别名指定待分配验证码),若否(说明通过别名指定了待分配验证码),从驻留于配置服务器104的、存储装置103的验证码关系表中匹配与待分配验证码别名相关联的主验证码,若是(说明未通过别名指定了待分配验证码),从驻留于配置服务器104的、存储装置103的风险分数等级表中查找与用户风险分数所属等级相对应的主验证码,若找到与待分配验证码别名相关联的主验证码,判断已找出的主验证码是否可用,若未找到,不向客户端101发送验证码。若找到与用户风险分数所属等级相对应的主验证码,判断已找出的主验证码是否可用。若已找出的主验证码可用,向客户端101发送已找出的主验证码,若不可用,从驻留于配置服务器104的、存储装置103的验证码关系表中查找与已找出的主验证码相关联的降级验证码,若查找,发送已找到的降级验证码至客户端101,若未查找到,向客户端发送离线模式,其中,离线模式为在用户无感知的情况下向客户端101发送验证码和完成验证的模式。
[0071] 通过本发明的验证码的分配系统100,不再根据用户风险分数简单判断触发或不触发验证码,而是根据用户风险分数分配相应难度的验证码,即,用户风险分数高的用户对应分配难度高的验证码,用户风险分数低的用户对应分配难度低的验证码甚至不分配验证码,而难度低的验证码用户操作更加简便,因此本发明在达到最佳的防刷效果的同时,可简化用户操作,提高用户体验。
[0072] 应当指出,图1所示的验证码的分配系统100仅为示例性的,具体实现中,可以部署不同数量的客户端101、业务服务器102、配置服务器104,本发明对这些设备的数量和部署区域均不做限制。
[0073] 在一个实施例中,本发明的业务服务器102、配置服务器104均可以实现为一种计算设备,图2示出了根据本发明一个实施例的计算设备200的结构图。计算设备200的框图如图2所示,需要说明的是,图2所示的计算设备200仅为一个示例,在实践中,用于实施本发明的验证码的分配方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图2所示的计算设备200相同,也可以与图2所示的计算设备200不同。实践中用于实施本发明的验证码的分配方法的计算设备可以对图2所示的计算设备200的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
[0074] 如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
[0075] 取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器
204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
[0076] 取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器204读取。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。操作系统220例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用222包括用于实现各种用户期望的功能的程序指令,应用222例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用222被安装到计算设备200中时,可以向操作系统220添加驱动模块。
[0077] 在计算设备200启动运行时,处理器204会从存储器206中读取操作系统220的程序指令并执行。应用222运行在操作系统220之上,利用操作系统220以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用222时,应用222会加载至存储器206中,处理器204从存储器206中读取并执行应用222的程序指令。
[0078] 计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238,可移除储存器236和不可移除储存器238均与储存接口总线234连接。本发明中,程序执行过程中发生的各事件的相关数据和指示各事件发生的时间信息,可存储于储存设备232中,操作系统220适于管理储存设备232。其中,储存设备232可为磁盘。
[0079] 计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
[0080] 网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在根据本发明的计算设备200中,应用222包括用于执行本发明的方法300/400的指令,该指令可以指示处理器204执行本发明的方法300/400。
[0081] 图3示出了根据本发明一个实施例的验证码的分配方法300的示意性流程图。方法300适于在业务服务器102中执行,方法300始于步骤S301。在执行步骤S301之前,需要开发人员预先在业务服务器102或配置服务器104中配置验证码关系表和风险分数等级表,如表
1和表3所示出的配置验证码关系表和风险分数等级表,并保存至存储装置103中。
[0082] 在步骤S301,响应客户端101发送的获取验证码请求,从获取验证码的请求中获取用户风险分数和待分配验证码别名。之后在步骤S302中,判断待分配验证码别名是否为空(待分配验证码别名为空,即没有通过验证码别名指定待分配验证码),若是,则执行步骤S303,若否,执行步骤S304。
[0083] 在步骤S303中,从驻留于配置服务器104的、存储装置103的风险分数等级表中查找与用户风险分数所属等级相对应的主验证码,若未查找到,执行步骤S305,不向客户端101发送验证码,若查找到,执行步骤S306。在步骤S306中,判断已找出的主验证码是否可用,若可用,执行步骤S307,向客户端101发送已找出的主验证码,若不可用,执行步骤S308,从驻留于配置服务器104的、存储装置103的验证码关系表中查找与已找出的主验证码相关联的降级验证码。若找到与已找出的主验证码相关联的降级验证码,执行步骤S309,发送已找到的降级验证码至客户端101,若未找到与已找出的主验证码相关联的降级验证码,执行步骤S310,向客户端101发送离线模式。其中,离线模式为在用户无感知的情况下向客户端
101发送验证码和完成验证的模式。
[0084] 在步骤S304中,在驻留于配置服务器104的、存储装置103的验证码关系表中匹配与待分配验证码别名相关联的主验证码,若匹配到,执行步骤S306,若未匹配到,执行步骤S305。
[0085] 通过上述的验证码分配方法,不再根据用户风险分数简单判断触发或不触发验证码,而是根据用户风险分数分配相应难度的验证码,即,用户风险分数高的用户对应分配难度高的验证码,用户风险分数低的用户对应分配难度低的验证码甚至不分配验证码,而难度低的验证码用户操作更加简便,因此本发明在达到最佳的防刷效果的同时,可简化用户操作,提高用户体验。
[0086] 图4为根据本发明另一个实施例的验证码的分配方法400的示意性流程图。方法400同样适于在业务服务器102中执行,方法400始于步骤S401,包括步骤S401至步骤S416。
在执行步骤S301之前,同样需要开发人员预先在业务服务器102或配置服务器104中配置验证码关系表和风险分数等级表,如表1和表3所示出的配置验证码关系表和风险分数等级表,并保存至存储装置103中。
[0087] 在步骤S401,响应客户端101发送的获取验证码请求,从获取验证码的请求中获取用户风险分数和待分配验证码别名。在步骤S402中,判断待分配验证码别名是否为空(待分配验证码别名为空,即没有通过验证码别名指定待分配验证码),若是,则执行步骤S403,若否,执行步骤S404。
[0088] 随后,在步骤S403中,从驻留于配置服务器104的、存储装置103的风险分数等级表中查找与用户风险分数所属等级相对应的主验证码,若未查找到,执行步骤S405,不向客户端101发送验证码,若查找到,执行步骤S406。
[0089] 在步骤S404中,从驻留于配置服务器104的、存储装置103的验证码关系表中匹配与待分配验证码别名相关联的主验证码,若匹配到,执行步骤S406,若未匹配到,执行步骤S405。
[0090] 在步骤S406中,判断已找出的主验证码是否可用,若可用,执行步骤S407,若不可用,执行步骤S408。接着,从驻留于配置服务器104的、存储装置103的验证码关联表中查找与已找出的主验证码相关联的是否强制输出辅验证码(如表1中标记为是或否,若为是即需要强制输出辅验证码,若为否,即不需要强制输出辅验证码),并在步骤S407中,判断是否强制输出辅验证码,若是,执行步骤S409,若否,执行步骤S410。
[0091] 在步骤S408中,判断在验证码关联表中是否为已找出的主验证码配置降级验证码,若否,则执行步骤S411,发送离线模式至客户端101。若在验证码关联表中为已找出的主验证码配置降级验证码,并当与已找出的主验证码对应的降级验证码为多个时,在步骤S412中,判断降级验证码是否可用,若可用,执行步骤S407,若不可用,在步骤S413中,是否遍历完成已找出的降级验证码,若是,执行步骤S411,若否,执行步骤S412。
[0092] 接着,在步骤S409中,判断在驻留于配置服务器104的、存储装置103的验证码关联表中能否查找到与已找出的主验证码关联的辅验证码,若查找到,执行步骤S413,若未查找到,执行步骤S405。其中,本发明中包括多种主辅验证码的组合形式,如表2所示,此处不再赘述。在步骤S413中,判断已找出的辅验证码是否可用,若可用,执行步骤S414,发送已找出的辅验证码至客户端101,若不可用,执行步骤S415。当已找出的辅验证码为多个时,随后在步骤S415中,判断是否遍历完成已找出的辅验证码,若是,执行步骤S411,若否,执行步骤S413。
[0093] 之后在步骤S410中,判断主验证码是否存在被刷风险,若是,执行步骤S409,若否,执行步骤S416,发送已找出的主验证码至客户端101。其中,被刷风险为计算机程序恶意获取主验证码的情况。
[0094] 需要说明的是,上述的发送已找出的辅验证码至客户端101和发送已找出的主验证码至客户端101,是发送已找出的辅验证码的唯一标识或已找出的主验证码的唯一标识至客户端101,验证码的唯一标识用于标识分配给客户端101的验证码。客户端101在接收到验证码的唯一标识后,向业务服务器102发送获取与验证码的唯一标识对应键值对的键值,业务服务器102从通信连接的数据库获取与验证码的唯一标识对应键值对的键值,并发送至客户端101,其中,键值中包括唯一标识对应的验证码内容。用户在客户端101的屏幕输入键值,客户端将验证码的唯一标识和用户输入的内容发送至业务服务器102,业务服务器102比对客户端101发送的验证码的唯一标识对应的键值与用户输入内容是否一致,若一致,返回验证成功的消息至客户端101。
[0095] 还需说明的是,通过以下方法判断主验证码、辅验证码、降级验证码是否可用:
[0096] 每间隔第一预设时间,统计当前时间的前第二预设时间内验证码平均响应时间和响应失败率,其中,响应时间为从客户端发送获取验证码请求至向客户端发送验证码所需的时间,响应失败为响应客户端获取验证码的请求时间超过第三预设时间。第一预设时间、第二预设时间、第三预设时间可根据具体实际情况适当配置,本发明对此不做限制。例如,第一预设时间为1秒、第二预设时间为10秒、第三预设时间为10分钟。
[0097] 之后判断统计得到的平均响应时间是否超过预设平均响应时间阈值,若超过,确定验证码状态为不可用。若统计得到的平均响应时间未超过预设平均响应时间阈值,则判断已得到的响应失败率是否超过预设响应失败率阈值,若是,确定验证码状态为不可用,若否,确定验证码状态为可用。其中,预设平均响应时间阈值、预设响应失败率阈值可根据验证码的类型适当配置,本发明对此不做限制。例如,若验证码为短信验证码,那么设置的预设平均响应时间阈值、预设响应失败率阈值分别为500毫秒、30%,若验证码为语音验证码,那么设置的预设平均响应时间阈值、预设响应失败率阈值分别为1秒、30%,若验证码为图片验证码,那么设置的预设平均响应时间阈值、预设响应失败率阈值分别为200毫秒、10%。
[0098] 但是,为了将验证码的不可用状态自动恢复为可用状态,在维持验证码状态为不可用的第四预设时间之后,再次将验证码的不可用状态维持第四预设时间,相当于维持两个第四预设时间的验证码不可用状态,其中,第四预设时间同样可根据实际情况适当配置,本发明对此不做限制。例如,第四预设时间为10秒,那么相当于维持20秒的验证码不可用状态。在第四预设时间之后,继续将验证码的不可用状态维持第四预设时间,并在当前的第四预设时间内(即第二个第四预设时间内,也就是维持验证码不可用状态的第10至20秒内),尝试恢复不可用状态的验证码为可用状态,具体地:
[0099] 在当前的第四预设时间内(即在维持验证码不可用状态的第10至20秒内),响应第一比例的客户端发送获取验证码的请求,向客户端发送验证码,并统计当前时间的前第二预设时间内验证码的平均响应时间和响应失败率,判断已得到的平均响应时间是否超过预设平均响应时间阈值,若未超过,更改验证码状态为可用,若超过,则判断已得到的响应失败率是否超过预设响应失败率阈值,若是,维持验证码的不可用状态,若否,变更验证码状态为可用。其中,第一比例可根据实际情况进行设置,本发明对此不做限制,例如,第一比例为50%。
[0100] 通过上述判断验证码是否可用的方法,能够在维持验证码不可用状态的第二个时间段内,会尝试向一定比例的申请验证码的请求发送验证码,这里只向部分获取验证码请求发送验证码,是为了降低影响用户的范围,并且若在第二个时间段内统计到验证码能够正常发送,则认为验证码对应业务已恢复正常,即可将不可用的验证码状态更改为可用状态,实现了快速恢复验证码的可用状态,此过程不需要人为干预,提高判断验证码是否可用的工作效率。
[0101] 上述验证码的分配方法,不再根据用户风险分数简单判断触发或不触发验证码,而是根据用户风险分数分配相应难度的验证码,即,用户风险分数高的用户对应分配难度高的验证码,用户风险分数低的用户对应分配难度低的验证码甚至不分配验证码,而难度低的验证码用户操作更加简便,因此本发明在达到最佳的防刷效果的同时,可简化用户操作,提高用户体验。
[0102] 同时,由于本发明中主、辅验证码组合形式的多样性,给恶意破解验证码的行为带来一定的难度,可能仅破解了其中的一种或者两种验证码组合形式,因此,主、辅验证码组合形式的多样性会提高被破解的难度,即通过本发明的方法能够提高验证码的安全性。
[0103] 另外,本发明提供了自动判断验证码是否可用的方法,并且在验证码为不可用状态后,可将验证码的不可用状态自动恢复为可用状态,从而提高了工作效率。
[0104] A9如A1至8中任一项所述的方法,通过如下方法判断验证码是否可用,其中,所述验证码包括主验证码、辅验证码和降级验证码:
[0105] 每间隔第一预设时间,统计当前时间的前第二预设时间内验证码平均响应时间和响应失败率,其中,响应时间为从所述客户端发送获取验证码请求至向所述客户端发送验证码所需的时间,响应失败为响应所述客户端获取验证码的请求时间超过第三预设时间;
[0106] 判断统计得到的平均响应时间是否超过预设平均响应时间阈值,若超过,确定所述验证码状态为不可用;
[0107] 若统计得到的平均响应时间未超过所述预设平均响应时间阈值,则判断已得到的响应失败率是否超过预设响应失败率阈值,若是,确定所述验证码状态为不可用,若否,确定所述验证码状态为可用。
[0108] A10如A9所述的方法,在确定所述验证码状态为不可用时,还包括步骤:
[0109] 将所述验证码的不可用状态维持第四预设时间;
[0110] 在第四预设时间之后,继续将所述验证码的不可用状态维持第四预设时间,并在当前所述第四预设时间内,尝试恢复不可用状态的所述验证码为可用状态。
[0111] A11如A10所述的方法,其中,所述在当前所述第四预设时间内,尝试恢复不可用状态的所述验证码为可用状态的步骤包括:
[0112] 在当前所述第四预设时间内,响应第一比例的所述客户端发送获取所述验证码的请求,向所述客户端发送验证码;
[0113] 统计当前时间的前所述第二预设时间内所述验证码的平均响应时间和响应失败率;
[0114] 判断已得到的平均响应时间是否超过所述预设平均响应时间阈值,若未超过,更改所述验证码状态为可用,若超过,则判断已得到的响应失败率是否超过所述预设响应失败率阈值,若是,维持所述验证码的不可用状态,若否,变更所述验证码状态为可用。
[0115] A12如A10或11所述的方法,其中,所述第一预设时间为1秒,所述第二预设时间为10秒,所述第三预设时间为10分钟,所述第四预设时间为10秒,所述第一比例为50%。
[0116] 这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD‑ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
[0117] 在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的验证码的分配方法。
[0118] 以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
[0119] 在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0120] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0121] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0122] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
[0123] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0124] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0125] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
[0126] 如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0127] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。