验证码交互方法、装置、客户端和服务器
技术领域
本申请涉及计算设备的图形用户界面(GUI)交互技术领域,尤其涉及一种验证码交互方法、装置、客户端和服务器。
背景技术
用户登录应用程序,或者使用应用程序某些功能之前,一般需要输入系统随机生成的一个验证码,才能继续使用。
验证码(CAPTCHA)是“Completely Automated Public Turing test to tellComputers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。以防止恶意破解密码、刷票、论坛灌水等。
黑客们为了获取特定注册用户的账户信息,通常会采用特定程序进行不断的登录尝试。为了防止这种暴力破解方式,很多网站的通行方式是使用验证码(比如,各大银行的网上个人银行、各大网站的社区等)。虽然登录麻烦一点,但是,对网络网户的账户安全而言,验证码这个功能还是很有必要的。
但是,对于移动计算设备,例如平板电脑、智能手机等,由于其屏幕比较小,当验证码比较复杂的时候,用户难于阅读辨识;并且由于键盘也比较小,用户输入多个验证码也不方便。
现有技术在验证码交互阶段,给用户带来了诸多不便,存在浪费时间、增加出错可能性的问题,这降低了用户体验。
发明内容
本申请针对现有技术的不足,提供一种验证码交互方法、装置、客户端和服务器,降低用户误操作的发生、提高计算设备交互效率和用户体验。
根据本申请一个方面,提供一种验证码交互方法,包括:显示验证码数值及数值选择界面,其中,验证码为数字类型验证码;接收用户在所述数值选择界面上的输入并将其转化为输入数值;和根据预设的误差范围判断所述输入数值是否等于所述验证码数值。
根据本申请另一个方面,提供一种验证码交互方法,应用于客户端,包括:接收来自服务器的验证码数值;显示所述验证码数值及数值选择界面;接收用户在数值选择界面上的输入并将其转化为输入数值;将输入数值转发服务器;接收来自服务器的验证结果。
根据本申请另一个方面,提供一种验证码交互方法,应用于服务器,包括:向客户端发送验证码数值;接收来自客户端的输入数值,该输入数值来自于客户端接收的用户在数值选择界面上的输入;根据预设的误差范围判断所述输入数值是否等于所述验证码数值,并将判断结果发送给客户端。
根据本申请另一个方面,提供一种验证码交互客户端,包括:客户端传输模块,用于接收来自服务器的验证码数值和判断结果;和客户端GUI模块,用于显示所述验证码数值及数值选择界面,接收用户在数值选择界面上的输入并将其转化为输入数值;其中,所述客户端传输模块还用于将输入数值发送给服务器。
根据本申请另一个方面,提供一种验证码交互服务器,包括:验证码生成模块,用于获取验证码;服务器传输模块,用于向客户端发送验证码以及判断结果,并且接收来自客户端的输入数值;和判断模块,用于根据预设的误差范围判断输入数值是否等于验证码数值,得到判断结果。
根据本申请另一个方面,提供一种验证码交互装置,包括:GUI模块,用于显示验证码及数值选择界面,并且接收用户在所述数值选择界面上的输入并将其转化为输入数值;和判断模块,用于根据预设的误差范围判断所述输入数值是否等于所述验证码数值。
根据本申请再一个方面,提供一种验证码交互方法,包括:显示验证码及字符选择界面,其中,验证码为字符类型验证码;接收用户在所述字符选择界面上的选择,得到选择字符;和判断所述选择字符是否等于所述验证码。
可选的,所述字符选择界面包含所述验证码,但其中的字符数量等于或多于验证码中的字符数量。
根据本申请再一个方面,提供一种验证码交互方法,包括:显示验证码及图像选择界面,其中,验证码为图像验证码,图像选择界面为包含验证码的分解图像的用户可交互区域;接收拼图图像,其中,拼图图像为用户在所述图像选择界面上的操作结果;和根据预设的误差范围,判断所述拼图图像与所述验证码是否相同。
可选的,判断所述拼图图像与所述验证码是否相同包括:根据图像匹配算法,判断所述拼图图像与所述验证码是否相同。
可选的,设置所述验证码的分解图像具有自动吸附属性,当一个分解图像和另一个分解图像之间的距离小于等于预设距离时,自动完成该两个分解图像的图像拼接。
根据本申请再一个方面,提供一种验证码交互方法,包括:显示步骤:显示验证码及图像选择界面,其中,验证码是图像验证码,图像选择界面为包含验证码的分解图像的用户可交互区域,图像选择界面上包括验证码的分解图像;验证步骤:当检测到用户手指或手写笔触摸到一个分解图像时,会在所述图像选择界面显示所述验证码的分解图像的切割虚线框,当检测到用户拖拽触摸的分解图像进入其相应的位置时,确定该分解图像成功移入;和重复所述验证步骤,直到所有的分解图像都移入到对应的位置,即完成验证。
可选的,所述验证码的分解图像的生成过程包括:通过横竖线对图像验证码进行切分,得到验证码的分解图像。
可选的,图像选择界面上的验证码分解图像为不规则排列显示。
可选的,所述成功移入的分解图像消失。
根据本申请再一个方面,提供一种验证码交互方法,包括:第一显示步骤:显示验证码及图像选择界面,其中,验证码是图像验证码,图像选择界面为包含验证码的分解图像的用户可交互区域,图像选择界面上包括验证码的分解图像;第二显示步骤:随机高亮显示未验证的第一分解图像在验证码中对应的区域;验证步骤:当检测到用户手指或手写笔触摸到第二分解图像时,判断第二分解图像是否为第一分解图像,如果正确,第一分解图像验证完成;和重复所述验证步骤,直到所有的分解图像验证完成。
根据本申请再一个方面,提供一种验证码交互方法,用于客户端,包括:接收来自服务器的验证码;根据所述验证码的类型,显示验证码交互界面;接收用户的交互输入并转发服务器;和接收来自服务器的验证结果。
可选的,所述验证码的类型为数字类型验证码,显示验证码交互界面包括:显示验证码及数值选择界面,其中,数值选择界面包含验证码数值。
可选的,所述验证码的类型为字符类型验证码,显示验证码交互界面包括:显示验证码及字符选择界面,其中,字符选择界面包含验证码。
可选的,所述验证码的类型为图像类型验证码,显示验证码交互界面包括:显示验证码及图像选择界面,其中,验证码为一幅图像,图像选择界面是一个包含验证码分解图像的用户可交互区域。
可选的,接收用户的交互输入包括:接收用户在数值选择界面上的输入并将其转化为输入数值,所述交互输入即输入数值。
可选的,接收用户的交互输入包括:接收用户在字符选择界面上的选择,得到选择字符,所述交互输入即选择字符。
可选的,接收用户的交互输入包括:接收用户在图像选择界面上的操作结果即拼图图像,所述交互输入即拼图图像。
根据本申请另一个方面,提供一种验证码交互方法,用于服务器,包括:
根据预设的规则或者随机选择验证码类型,其中,验证码类型包括数字、字符和图像类型;
根据所述验证码类型获取验证码并发送给客户端;
接收来自客户端的交互输入;和
根据预设的误差范围判断所述交互输入与所述验证码是否相同,并将判断结果发送给客户端。
可选的,根据验证码类型获取验证码包括:根据所选择的验证码类型,基于相应的验证码生成规则生成随机的验证码。
可选的,根据验证码类型获取验证码包括:根据所选择的验证码类型,从相应的验证码数据库中随机选择验证码。
可选的,所述预设的误差范围的生成方法包括:根据用户年龄段设置不同的误差范围。
可选的,所述预设的误差范围的生成方法包括:对用户的输入误差进行学习,根据学习的结果,对不同的用户生成不同的误差范围。
根据本申请另一个方面,提供一种验证码交互客户端,包括:客户端传输模块,用于接收来自服务器的验证码和判断结果;和客户端GUI模块,用于根据所述验证码的类型显示验证码交互界面并接收用户的交互输入,还用于显示所述判断结果;其中,所述客户端传输模块还用于将所述交互输入发送给服务器。
可选的,验证码的类型为数字类型验证码,显示验证码交互界面包括:显示验证码及数值选择界面,其中,数值选择界面包含验证码数值。
可选的,验证码的类型为数字类型验证码,显示验证码交互界面包括:显示验证码及字符选择界面,其中,字符选择界面包含验证码。
可选的,验证码的类型为数字类型验证码,显示验证码交互界面包括:显示验证码及图像选择界面,其中,验证码为一幅图像,图像选择界面是一个包含验证码分解图像的用户可交互区域。
根据本申请另一个方面,提供一种验证码交互服务器,包括:验证码类型选择及生成模块,用于随机选择验证码类型,并根据验证码类型获取验证码;服务器传输模块,用于向客户端发送验证码,并接收来自客户端的交互输入;和判断模块,用于根据预设的误差范围判断所述交互输入与所述验证码是否相同,得到判断结果;其中,所述服务器传输模块还用于向客户端发送所述判断结果。
根据本申请另一个方面,提供一种验证码交互方法,包括:选择步骤:随机选择验证码类型;显示步骤:根据所述验证码类型,显示验证码交互界面;交互步骤:接收用户的交互输入;和判断步骤:根据预设的误差范围,判断所述交互输入与所述验证码是否相同。
可选的,所述验证码类型包括数字类型验证码、字符类型验证码和图像类型验证码。
可选的,对于所述数字类型验证码,显示步骤包括:显示验证码及数值选择界面,其中,数值选择界面包含验证码数值。
可选的,对于所述字符类型验证码,显示步骤包括:显示验证码及字符选择界面,其中,字符选择界面包含验证码。
可选的,对于所述图像类型验证码,显示步骤包括:显示验证码及图像选择界面,其中,验证码为一幅图像,图像选择界面是一个包含验证码分解图像的用户可交互区域。
可选的,交互步骤包括:接收用户在数值选择界面上的输入并将其转化为输入数值,所述交互输入即输入数值。
可选的,交互步骤包括:接收用户在字符选择界面上的选择,得到选择字符,所述交互输入即选择字符。
可选的,交互步骤包括:接收用户在图像选择界面上的操作结果即拼图图像,所述交互输入即拼图图像。
根据本申请再一个方面,提供一种验证码交互装置,包括:验证码类型选择模块,用于随机选择验证码类型;GUI模块,与所述验证码类型选择模块连接,用于根据所述验证码类型,显示验证码交互界面,并且接收用户的交互输入;和判断模块,分别与所述验证码类型选择模块和GUI模块连接,用于根据预设的误差范围,判断所述交互输入与所述验证码是否相同。
可选的,所述验证码类型包括数字类型验证码、字符类型验证码和图像类型验证码。
可选的,对于所述数字类型验证码,所述GUI模块用于显示验证码数值及数值选择界面,接收用户在数值选择界面上的输入并将其转化为输入数值,所述交互输入即输入数值。
可选的,对于所述字符类型验证码,所述GUI模块用于显示验证码及字符选择界面,接收用户在字符选择界面上的选择,得到选择字符,所述交互输入即选择字符,其中,字符选择界面包含验证码。
可选的,对于所述图像类型验证码,所述GUI模块用于显示验证码及图像选择界面,接收用户在图像选择界面上的操作结果即拼图图像,所述交互输入即拼图图像,其中,验证码为一幅图像,图像选择界面是一个包含验证码分解图像的用户可交互区域。
与现有技术相比,本申请提供的实施例,通过选择模式而不是扭曲模式来保证防破解性,并通过提供拾取操作而不是键盘操作来完成输入,这不但大幅度降低用户误操作的发生,而且提高了计算设备交互效率和用户体验,尤其有利于移动智能设备的用户。
需要说明的是,上述优点不需要在一个实施例中全部实施或体现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请一个实施例提供的验证码交互方法的流程图;
图2是图1所示验证码交互方法的一个使用示意图;
图3是图1所示验证码交互方法的另一个使用示意图;
图4是根据本申请另一个实施例提供的验证码交互方法的流程图;
图5是图4所示验证码交互方法的一个使用示意图;
图6是根据本申请另一个实施例提供的验证码交互方法的流程图;
图7是图6所示验证码交互方法的一个使用示意图;
图8是根据本申请另一个实施例提供的验证码交互方法的使用示意图;
图9是根据本申请另一个实施例提供的验证码交互方法的使用示意图;
图10是根据本申请另一个实施例提供的验证码交互方法的流程图;
图11是根据本申请一个实施例提供的验证码交互装置的结构示意图;
图12是根据本申请另一个实施例提供的用于客户端的验证码交互方法流程图;
图13是根据本申请另一个实施例提供的用于服务器的验证码交互方法流程图;
图14是根据本申请另一个实施例提供的验证码交互客户端的结构示意图;和
图15是根据本申请另一个实施例提供的验证码交互服务器的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图,对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
定义
计算设备(Computing device):具有处理器和存储器的、能够执行计算机程序的电子设备,包括但不限于:计算机(PC)、笔记本电脑、平板电脑、智能手机、车载智能终端、智能通讯设备、服务器等。
目前针对数字和文字验证码的扭曲和防破解的处理,使得验证码越来越不易识别,智能计算设备便携式的设计,虽然越来越小巧,但也使得验证码的输入也越来越不易完成,甚至人来识别也要失败多次才能完成验证码交互操作。
本申请的发明人经研究发现,通过选择模式的交互操作,能够大幅度降低用户误操作的发生,并提高计算设备交互效率和用户体验,尤其有利于移动智能设备的用户。
验证码交互方法实施方式一
基于上述发现,根据本申请一个实施例,提供一种验证码交互方法,针对数字类型验证码,如图1所示,该方法包括:
S11、显示验证码及数值选择界面;
其中,验证码可以为数字类型验证码,其数值为随机生成的验证码数值,例如,在数值范围[10,99]或者[1.0,9.9]之间随机生成的数值。如图2所示,该验证码数值在区域14显示,例如,图2中为3.5。
数值选择界面可以采用标尺等,其中的数值范围根据验证码数值来设定,例如,以验证码数值的三倍和三分之一或者以验证码数值的二倍和二分之一作为数值选择界面数值范围的上下限。如图2所示,标尺数值上限11、下限12分别为[2,6]。
为了取得更好的用户体验,根据本申请又一个实施例,数值选择界面数值范围可以随着手机屏幕大小自适应调节。
例如,假设图2中所使用的数值范围[2,6]对于大多数5寸左右屏幕比较合适,如果显示屏幕为7寸屏幕,则数值范围4需要再扩大40%才合适。增加40%的计算方式为:(7-5)/5,即在上下限各增加0.8个单位长度,成为新数值范围[1.2,6.8]。
为了帮助用户判断当前值以及交互,根据本申请另一个实施例,数值选择界面上可以显示一个游标用于帮助输入,如图2中的游标13,当用户移动游标时,游标上会显示目前的指示数值。
S12、接收用户在数值选择界面上的输入并将其转化为输入数值;
其中,用户在数值选择界面上的输入可以是一次性的定位输入,即点击输入。
其中,用户在数值选择界面上的输入也可以是手指或手写笔滑动之后的离开位置的定位输入。
S13、根据预设的误差范围判断输入数值是否等于验证码数值。
其中,如果用户输入的数字在“验证码数值”内,则表示验证通过,否则验证失败。如果验证失败,可以继续循环步骤S11-S13。
如图3所示,上述S11-S13的步骤在一个具体实例中的完整描述如下:
首先,随机化一个数值A=3.5,同时随机生成一个最大值B=A+2.5,最小值C=A-1.5,最大值B和最小值C作为标尺数值范围。(上述内容在图3中显示为初始化)
然后,在标尺上的随机位置显示游标,等待用户输入,输入方式可以是用户通过触摸的方式滚动游标进行数值的选择,用户根据目标值上下滚动游标,以匹配目标值。(上述内容在图3中显示为滚动标尺)
最后,当用户抬起手指后,结束取值,即抬手后确定结果数值,并将其与目标值A进行比较,如果两者一致,则验证成功,如果不一致,则验证失败。本申请实施例中,所述验证码可以有一个或多个。验证码的数量具体可根据需要选择,图3中提供四个验证码。
对于只有单个验证码的情形,则只需要比较两者是否一致,如果一致验证成功,如果不一致,则验证失败。
对于有多个验证码的情形,则比较所有验证码,如果全部一致,则验证成功,如果存在不一致,则验证失败。例如,图2、图3对应的实施例中共显示有四个验证码,图3的第三个图表明,四个验证码中的第一个验证码(3.5)验证成功。
验证码交互方法实施方式二
基于上述发现,根据本申请一个实施例,提供一种验证码交互方法,针对字符类型验证码,如图4所示,该方法包括:
S21、显示验证码及字符选择界面;
其中,验证码为字符类型验证码,可以包括字母、数字、汉字等形式。字符选择界面可以是一个二维字符矩阵,字符选择界面的字符数量等于或多于验证码的字符数量。一般来说,字符选择界面中的字符数量远多于验证码字符的数量,字符选择界面中既包括验证码字符,又包括随机从字符库中选择的其他字符。
例如,如图5所示,字符选择界面21为一个包括16个字符的二维字符矩阵。验证码22包含4个字符“a,c,e,9”。
S22、接收用户在字符选择界面上的选择,得到选择字符;
其中,用户在字符选择界面上的选择可以是点击输入。
另外,如图5所示,用户在字符选择界面上的选择也可以是以手势滑动或手写笔滑动的形式来进行输入,检测到的滑动过程中所经过的起点、转折点、终点字符都是用户的选择字符。
根据本申请另一个实施例,用户在字符选择界面上的选择也可以是以手势滑动或手写笔滑动的形式来进行输入,检测到的滑动过程中在其上停留时间超过预设的阈值时间的字符为用户的选择字符。
S23、判断选择字符是否等于验证码。
如图5所示,当手指抬离屏幕后,即进行验证码的判断,判断正确验证成功,判断失败重新开始验证。
为了提高交互效率,根据本申请另一个实施例,用户在字符选择界面上的选择也可以是以手势滑动或手写笔滑动的形式来进行输入,只要检测到手指或手写笔滑动经过验证码字符则通过验证,如果有多个验证码,自动进入下一个验证码的判断。
上述步骤S21-23的具体实例体现如下:首先,建立一个字符库,字符可以包括字母,数字,汉字等形式;
验证时,在一个弹出界面中随机化显示目标验证字符(4个),字母从字符库中抽取,各个字母可以不重复也可以有重复,同时产生用于输入的字符面板(即字符选择界面),字符包含4个目标字符,且随机从字库中选取其他的字符;
所有的字符进行随机化排序;
用户在输入区域中,按照目标字符的顺序,用手指触摸的方式,依次连续滑动输入4个字符,检测到的滑动过程中所经过的起点、转折点、终点字符都是用户的选择字符(a,c,e,9);
抬起手指后即结束输入,进行验证字符串的判断,如果输入正确,则完成输入;如果输入失败,则重启验证流程,刷新界面,重新随机化字符。
验证码交互方法实施方式三
基于上述发现,根据本申请一个实施例,提供一种验证码交互方法,针对图像验证码,如图6所示,该方法包括:
S31、显示验证码及图像选择界面;
其中,验证码为图像验证码/图像类型验证码,图像选择界面是一个包含验证码分解图像的用户可交互区域。根据屏幕的大小及横竖屏的情况,可以选取屏幕左侧或者上部分1/3像素区域为图像验证码显示区,而右边的2/3像素区域为图像拼接操作区域。
如图7所示,验证码31为华容道图像,为了便于说明,图中采用文字标记的形式,实际情况可以为真实的人物图像。图像选择界面32中散列着验证码31的分解图像,等待用户根据验证码进行重新排布。
S32、接收拼图图像,其中,拼图图像为用户在图像选择界面上的操作结果;
如图7所示,当用户把各个分解的图像重新拼接完成之后,点击确认,此时图像选择界面上的图像即拼图图像33。
S33、根据预设的误差范围,判断拼图图像与验证码是否相同。
其中,图像匹配算法例如为基于灰度相关的图像匹配算法或sift算法。
为了方便用户操作,根据本申请另一个实施例,设置分解图像具有自动吸附属性,在用户操作过程中,每个分解图像在与其相邻的分解图像距离靠近到预设阈值距离内,自动完成该两个分解图像的图像拼接。
为了进一步提高图像拼接过程的效率和用户操作体验,可以在用户操作图像拼接的过程中,自动完成拼图图像和验证码之间的校验。
根据本申请另一个实施例,提供一种验证码交互方法,包括:
S41、显示验证码及图像选择界面,其中,验证码是图像验证码,图像选择界面为包含验证码的分解图像的用户可交互区域,图像选择界面上包括验证码的分解图像;
其中,验证码的分解图像的生成过程可以包括:通过横竖线对图像验证码进行切分(例如等比切分)。切分的区域多少,即横竖线的多少,根据验证的难易度可自行调节。
图像选择界面上的验证码分解图像可以是不规则排列显示的,以提高反破解性。
S42、当检测到用户手指或手写笔触摸到一个分解图像时,会在操作区域显示整个验证码分解图像的切割虚线框,当检测到用户拖拽触摸的分解图像进入其相应的位置,则表示该分解图像成功移入。
成功移入后,该分解图像消失,没有移入到给定的误差范围内,则移入失败,需要重新移入。
如图8所示,用户选择了“关羽”分解图像之后,图像选择界面上显示出验证码分解图像的切割虚线框,并且高亮了“关羽”分解图像对应的区块,如果用户移动“关羽”到高亮区块后(在误差范围内即可),则成功移入。
S43、重复S42操作,直到所有的分解图像都移入到对应的位置,即完成验证。
对于自动完成拼图图像和验证码之间的校验的方式,根据本申请又一个实施例,提供一种验证码交互方法,包括:
S51、显示验证码及图像选择界面,其中,验证码是图像验证码,图像选择界面为包含验证码的分解图像的用户可交互区域,图像选择界面上包括验证码的分解图像;
S52、随机高亮显示未验证的第一分解图像在验证码中对应的区域;
如图9所示,当前高亮的验证码区域为“关羽”区域,期待用户在图像选择界面上能够选择“关羽”来完成验证码交互。
S53、当检测到用户手指或手写笔触摸到第二分解图像时,判断第二分解图像是否为第一分解图像,如果正确,第一分解图像验证完成,如果不正确,回到S52重新开始;
如图9所示,当前用户触摸到图像选择界面上混乱分布的分解图像“关羽”,与S52中高亮显示的区域相同,所以正确。
S54,重复S53,直到所有的分解图像验证完成。
根据本申请另一个实施例,为了提高用户交互效率,在图像选择界面上成功拾取的分解图像都消失,以减少干扰。
本领域技术人员可以理解,综合上述各个实施方式,多种类型验证码可以相互配合来完成验证码的生成和交互,根据本申请一个实施例,可以将字符类型验证码和图像类型验证码结合起来,例如,图像本身为空白,随机选择字符验证码放置到分解图像上,这种做法,相当于将字符作为图像内容。
验证码交互方法实施方式四
上述方法分别从不同类型的验证码(包括数字类验证码、字符类验证码和图像类验证码)的角度,或者不同类型验证码相互配合的角度,给出了基于用户拾取方式来进行验证码输入的交互技术方案。
综合上述各个实施方式,根据本申请一个实施例,提供一种验证码交互方法;如图10所示,该方法包括:
S61、随机选择验证码类型;
其中,验证码类型包括数字类型验证码、字符类型验证码以及图像验证码。随机选择验证码类型,能够提高验证码交互方法的防破解性。
S62、根据验证码类型,显示验证码交互界面;
对于不同的验证码类型,提供不同的验证码交互界面:
(1)对于数字类型验证码,显示验证码数值及数值选择界面,其中,验证码数值可以为随机生成的数字。数值选择界面(例如,标尺等)的数值范围可以是验证码数值的几倍到几分之一,为了提高移动计算设备(例如手机)的用户体验,数值选择界面的数值范围根据计算设备的屏幕尺寸进行适当调整。
(2)对于字符类型验证码,显示验证码及字符选择界面,其中,验证码可以从字母、数字、汉字组成的字符库中随机选择。字符选择界面是一个二维字符矩阵,其包含验证码,但其字符数量等于或多于验证码的字符数量。
(3)对于图像验证码,显示验证码及图像选择界面。其中,验证码为一幅图像,图像选择界面是一个包含验证码的分解图像的用户可交互区域(即图像的拼接操作区域)。
S63、接收用户的交互输入;
(1)对于数字类型验证码,接收用户在数值选择界面上的定位输入并将其转化为输入数值;
(2)对于字符类型验证码,接收用户在字符选择界面上的选择,得到选择字符;
(3)对于图像验证码,接收用户在图像选择界面上的操作结果,即拼图图像;
S64、根据预设的误差范围,判断交互输入与验证码是否相同。
根据本申请另一个实施例,为了提高用户体验,针对不同年龄的用户,设置不同误差范围。例如,将年龄段在10岁以下或50岁以上的年龄段的用户的误差范围设置为大于年龄段在10岁-50岁的用户。
根据本申请又一个实施例,为了提高用户体验,对用户的输入误差进行学习,根据学习的结果,对不同的用户设置不同的比较误差。
本申请上述实施例通过用户能更简单操作的手势输入来达成验证的完成,在用户体验上,比现有的文字验证要简单很多。同时,使用一些随机化的方法,使来保证验证码的不可破解性。
验证码交互装置
本领域技术人员便能够根据说明书,采用DSP/FPGA/ASIC等常规手段,实现上述方法对应的产品权利要求的功能模块。
与上述验证码交互方法的第一种实施方式相对应,根据本申请一个实施例,提供一种验证码交互装置。如图11所示,验证码交互装置包括:
GUI模块41,用于显示验证码及数值选择界面,并且接收用户的交互输入;交互过程已经在上述第一种实施方式的实施例中详细描述,这里不再赘述;
判断模块42,与GUI模块41连接,用于根据预设的误差范围,判断交互输入与验证码是否相同。
验证码交互的客户端方法
上述验证码交互方法也可以以C-S或B-S结构来实现,从而增加验证码的破解难度。这种实施方式下,服务器负责验证码的生成和验证,客户端负责与用户的交互。
与上述验证码交互方法的第一种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于客户端,如图12所示,包括:
步骤1、接收来自服务器的验证码数值;
步骤2、显示验证码数值及数值选择界面,例如,标尺;
步骤3、接收用户在数值选择界面上的输入并将其转化为输入数值;
步骤4、将输入数值转发服务器;
步骤5、接收来自服务器的验证结果。
与上述验证码交互方法的第二种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于客户端,包括:
步骤1、接收来自服务器的验证码数值;
步骤2、显示验证码及字符选择界面;
步骤3、接收用户在字符选择界面上的选择,得到选择字符;
步骤4、将选择字符转发服务器;
步骤5、接收来自服务器的验证结果并显示。
与上述验证码交互方法的第三种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于客户端,包括:
步骤1、接收来自服务器的验证码数值;
步骤2、显示验证码及图像选择界面,其中,图像选择界面是一个包含验证码分解图像的用户可交互区域;
步骤3、接收拼图图像,其中,拼图图像为用户在图像选择界面上的操作结果;
步骤4、将拼图图像转发服务器;
步骤5、接收来自服务器的验证结果并显示。
与上述验证码交互方法的第四种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于客户端,该方法包括:
S71、接收来自服务器的验证码;
客户端从服务器接收验证码数据,验证码可以是数字类型验证码、字符类型验证码或图像验证码。
S72、根据验证码类型,显示验证码交互界面;
如第四种实施方式描述的显示内容,对于不同的验证码类型,提供不同的验证码交互界面。
S73、接收用户的交互输入并转发服务器;
如第四种实施方式描述的显示内容,对于不同的验证码类型,接收用户的交互输入,并将其转发给服务器。
S74、接收来自服务器的验证结果并显示。
服务器接收到用户的交互输入之后,根据预设的误差范围,判断交互输入与验证码是否相同,并将判断结果发送给客户端。
客户端接收到来自服务器的验证结果后显示给用户。
验证码交互的服务器方法
上述验证码交互方法也可以以C-S或B-S结构来实现,从而增加验证码的破解难度。这种实施方式下,服务器负责验证码的生成和验证,客户端负责与用户的交互。
与上述验证码交互方法的第一种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于服务器,如图13所示,包括:
步骤1、向客户端发送验证码数值;
步骤2、接收来自客户端的输入数值,该输入数值来自于客户端接收的用户在数值选择界面上的输入;
步骤3、根据预设的误差范围判断输入数值是否等于验证码数值,并将判断结果发送给客户端。
其中,验证码数值的生成方法为基于预设的验证码生成规则生成随机的验证码,或者,从验证码数据库中随机选择验证码。
与上述验证码交互方法的第二种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于服务器,包括:
步骤1、向客户端发送验证码字符;
步骤2、接收来自客户端的选择字符;
步骤3、判断选择字符是否等于验证码,并将判断结果发送给客户端。
与上述验证码交互方法的第三种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于服务器,包括:
步骤1、向客户端发送验证码图像;
步骤2、接收来自客户端的拼图图像;
步骤3、根据预设的误差范围判断拼图图像与验证码是否相同,并将判断结果发送给客户端。
与上述验证码交互方法的第四种实施方式相对应,根据本申请一个实施例,提供一种验证码交互方法,应用于服务器,包括:
S81、随机选择验证码类型,包括数字类型验证码、字符类型验证码或图像验证码;
S82、根据验证码类型获取验证码并发送给客户端;
其中,获取验证码步骤包括:服务器根据所选择的验证码类型,根据各类型验证码的生成规则,生成随机的验证码。
例如,对于数字类型验证码,生成规则包括:利用计算机程序生成伪随机数(pseudo-random integral number)。
例如,对于字符类型验证码,生成规则包括:利用计算机程序生成伪随机数(pseudo-random integral number),然后向字符的ASCII码上映射,得到随机字符。
例如,对于图像类型验证码,生成规则包括:基于基本图元进行随机拼接操作,得到随机图像。
根据本申请另一个实施例,获取验证码步骤包括:服务器根据所选择的验证码类型,从相应的验证码数据库中随机选择验证码。验证码数据库中保存大量的各个类型的验证码数据。
S83、接收来自客户端的交互输入;
S84、根据预设的误差范围判断交互输入与验证码是否相同,并将判断结果发送给客户端。
例如,对于数字类型验证码,如果交互输入的数字在“验证码数值”内,则表示验证通过,否则验证失败。
例如,对于字符类型验证码,如果交互输入的字符在验证码字符及其相似字符范围内,则表示验证通过,否则验证失败。
例如,对于图像类型验证码,通过图像匹配算法,判断交互输入的图像与验证码图像是否在预设的误差范围内。
验证码交互客户端
与上述图12对应的客户端的验证码交互方法相对应,根据本申请一个实施例,提供一种验证码交互客户端。如图14所示,该验证码交互客户端包括:
客户端传输模块51,与服务器连接,用于接收来自服务器的验证码、判断结果,并将用户的交互输入发送给服务器;
客户端GUI模块52,与客户端传输模块51连接,用于显示验证码数值及数值选择界面,并接收用户在数值选择界面上的输入并将其转化为输入数值。
另外,客户端GUI模块52还用于显示来自服务器的判断结果。
验证码交互服务器
与上述图13对应的服务器的验证码交互方法相对应,根据本申请一个实施例,提供一种验证码交互服务器。如图15所示,该验证码交互服务器包括:
服务器传输模块61,与客户端连接,用于向客户端发送验证码以及判断结果,并且接收来自客户端的输入数值;
验证码生成模块62,与服务器传输模块61连接,用于获取验证码;
判断模块63,分别与服务器传输模块61和验证码生成模块62连接,用于根据预设的误差范围判断输入数值是否等于验证码数值,得到判断结果。
其中,验证码数值的生成方法为基于预设的验证码生成规则生成随机的验证码,或者,从验证码数据库中随机选择验证码。
与现有技术相比,本申请提供的实施例能够降低用户误操作的发生、提高计算设备交互效率和用户体验,尤其有利于移动智能设备的用户。需要说明的是,上述优点不需要在一个实施例中全部实施或体现。
应该注意到并理解,在不脱离后附的权利要求所要求的本申请的精神和范围的情况下,能够对上述详细描述的本申请做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。