一种验证码数据处理方法及装置与流程

文档序号:19400041发布日期:2019-12-13 19:06阅读:134来源:国知局
一种验证码数据处理方法及装置与流程

本申请涉及信息技术(it)领域,尤其涉及一种验证码数据处理方法及装置。



背景技术:

随着互联网技术的发展,验证码在现代网络中的使用越来越广泛,是网站服务提供方用来防范网络攻击,保证用户权益的有效手段。现有的验证码主要有几下几种:图片验证码、语音验证码、智力测验验证码。

但是,对于图片验证码和语音验证码来说,使用ocr技术(光学字符识别技术)和语音识别技术可以很容易破解。智力测验验证码相对来说比较难攻击,但是很多网站提供的验证码有的用户很难分辨清楚,有的描述太过模糊,用户难以理解,大大降低了用户的体验,影响了效率。



技术实现要素:

本申请提出了一种验证码数据处理方法,向服务器发出针对一用户的验证码请求;接收所述服务器响应于所述验证码请求而生成的第一验证码数据;根据所述第一验证码数据,在页面上绘制表盘并展示验证提示;其中,所述表盘指示了第一参数,所述验证提示对应第二参数,所述第一参数和所述第二参数中的至少一种根据所述第一验证码数据而确定;所述第二参数包括所述第一参数的期望值,或者所述第一参数包括所述第二参数的期望值;响应于所述用户的输入验证码操作,确定当前的所述第一参数或者所述第二参数;其中,所述验证提示指示第二参数或者从对于所述验证提示的所述输入验证码操作中获得第二参数;响应于所述用户的提交验证码操作,根据所确定的所述第一参数或者所述第二参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果;及从所述服务器接收并展示所述验证结果。

本申请还提出了一种验证码数据处理装置,请求模块,用于向服务器发出针对一用户的验证码请求;接收模块,用于接收所述服务器响应于所述验证码请求而生成的第一验证码数据;绘制模块,用于根据所述第一验证码数据,在页面上绘制表盘并展示验证提示;其中,所述表盘指示了第一参数,所述验证提示对应第二参数,所述第一参数和所述第二参数中的至少一种根据所述第一验证码数据而确定;所述第二参数包括所述第一参数的期望值,或者所述第一参数包括所述第二参数的期望值;响应模块,用于响应于所述用户的输入验证码操作,确定当前的所述第一参数或者所述第二参数;其中,所述验证提示指示第二参数或者从对于所述验证提示的所述输入验证码操作中获得第二参数;提交模块,用于响应于所述用户的提交验证码操作,根据所确定的所述第一参数或者所述第二参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果;及展示模块,用于从所述服务器接收并展示所述验证结果。

上述本申请提供的方法和装置,提供了基于表盘的验证方式,有效的防止验证码数据被破解;同时以表盘来展示验证码数据,能提高用户体验,减少用户误操作,节约网络以及硬件资源,提高了效率。

附图说明

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

图1a为本申请一实例的系统结构图;

图1b为本申请一实例的验证码数据处理方法的流程图;

图2为本申请实例一的验证码数据处理方法的流程图;

图3为本申请实例一拖动指针到指定数值中以时钟表盘举例的示例;

图3a为本申请实例一的绘制表盘的方法流程图;

图4为本申请实例二的验证码数据处理方法的流程图;

图5为本申请实例二选择显示数值在某段数值范围的表盘中以时钟表盘举例的示例;

图6为本申请实例三的验证码数据处理方法的流程图;

图7为本申请实例三输入表盘显示数值中以时钟表盘举例的示例;

图8为本申请实例四的验证码数据处理方法的流程图;

图9为本申请实例三表盘排序中以时钟表盘举例的示例;

图10为本申请一实例的验证码数据处理装置结构图;

图11为本申请一实例的验证码数据处理设备硬件结构图。

图12为本申请一实例的验证码数据处理服务器结构图;及

图13为本申请一实例的验证码数据处理服务器硬件结构图。

具体实施方式

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

为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本发明的方案进行阐述。实施例中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。

在实现本发明的过程中,发明人现有的验证码设计方案存在容易破解以、描述太过模糊、大大降低用户体验,影响用户效率的问题。有鉴于此,本申请提出了一种验证码数据处理方法,该方法可应用于客户端设备中。这种验证码数据处理方法采用表盘形式来展示验证码数据,可以提供多种识别方式,有效防止验证码被破解,同时,比较贴近日常生活,大幅度提高了用户体验。

图1a示出了本申请的验证码数据处理方法所适用的系统结构示意图。如图1所示,本申请的系统至少包括:客户端101、网络102以及服务器103。

在本申请中,上述客户端101可以运行在手机、ipad、平板电脑、膝上型便携计算机和台式计算机等终端设备中的应用(app)或者浏览器等。

上述网络102可以是有线网络,也可以是无线网络。例如,如图1所示,客户端101可以通过有线也可以通过无线的方式接入网络,而核心网一侧,服务器103以有线的方式接入网络。

上述服务器103可以是客户端101登录的网站或者应用程序的服务器,可以和客户端101一起为用户提供应用服务。

基于上述系统结构,本申请提出了一种验证码数据处理方法,该方法采用表盘来展示验证码数据。如图1b所示,该方法包括了以下步骤:

步骤101b:向服务器发出针对一用户的验证码请求。

步骤102b:接收所述服务器响应于所述验证码请求而生成的第一验证码数据。

步骤103b:根据所述第一验证码数据,在页面上绘制表盘并展示验证提示;其中,所述表盘指示了第一参数,所述验证提示对应第二参数,所述第一参数和所述第二参数中的至少一种根据所述第一验证码数据而确定;所述第二参数包括所述第一参数的期望值,或者所述第一参数包括所述第二参数的期望值。

步骤104b:响应于所述用户的输入验证码操作,确定当前的所述第一参数或者所述第二参数;其中,所述验证提示指示第二参数或者从对于所述验证提示的所述输入验证码操作中获得第二参数。

步骤105b:响应于所述用户的提交验证码操作,根据所确定的所述第一参数或者所述第二参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果。

步骤106b:从所述服务器接收并展示所述验证结果。

具体的,上述验证码数据处理方法,可以包括四种验证方式,比如调整表盘的第一参数到指定数值、选择第一参数在某段数值范围的表盘、在验证提示的指定区域输入第二参数以及根据第一参数进行表盘排序等。需要注意的是,本申请包括但不限于这四种不同验证形式,下述的四种不同验证形式的实例,不用于限制本申请。下面结合具体四种不同的验证形式,进一步描述本申请的验证码数据处理方法。

方式一:调整表盘的第一参数到指定数值

在一些实例中,在页面上绘制表盘并展示验证提示,包括:确定待绘制的可编辑的表盘对应的所述第一参数的初始值;根据所述第一验证码数据确定所述验证提示对应的所述第二参数;根据所述第一参数的初始值在所述页面上绘制所述可编辑的表盘,并根据所述第二参数在所述页面上展示所述验证提示;其中,所述表盘指示了所述第一参数,所述验证提示提示了所述第二参数,所述第二参数指示了所述第一参数的期望值。所述输入验证码操作为对于所述表盘的编辑操作,所述确定当前的所述第一参数或者所述第二参数包括:响应于所述用户对于所述表盘的编辑操作,在所述页面上更新所述表盘以调整所述第一参数。其中,根据所述表盘当前指示的所述第一参数生成第二验证码数据。

在一些实例中,所述表盘包括至少一个指针和刻度盘,所述第一参数和所述第二参数代表所述指针所指的刻度值。其中,根据所述第一参数的初始值绘制的所述可编辑的表盘中,指针所指向的刻度值为所述第一参数的初始值,并且所述指针为可移动的。其中,对于所述表盘的编辑操作为对于所述指针的移动操作,所述更新所述表盘包括:响应于所述用户对于所述指针的移动操作,更新所述指针的指向位置以调整所述指针所指的刻度值。其中,根据所述指针当前指向的刻度值生成所述第二验证码数据。

一个具体的实现流程如图2所示,该方法包括如下步骤:

步骤201:客户端101向服务器103发出验证码请求。

通常情况下,当客户端101用户在相关页面执行登录、付款、注册和发表观点等提交请求操作时,上述相关页面需要用户输入验证码,此时,客户端101会向服务器103发出验证码请求。这里,上述相关页面可以是登录网站页面、付款页面等提交请求页面。

步骤202:服务器103响应于客户端101的验证码请求生成第一验证码数据。

在一些实例中,服务器103可通过随机算法生成第一验证码数据,并将其保存在与客户端101对应的会话(session)中。一般情况下,用户使用客户端101访问服务器103提供的页面时,服务器103会为该用户建立一个session,来维护该用户(也称为客户端用户)在本次访问过程中产生的各种数据。当客户端101请求一应用程序的页面(也称网页)时,如果服务器103还没有为当前客户端用户建立session,则服务器103将自动创建一个session对象,该session对象针对当前客户端用户具有唯一性,拥有一个唯一的sessionid号。该session对象存储当前客户端用户会话所需的属性及配置信息。这样,当上述客户端用户在上述应用程序的不同页面之间跳转时,存储在该session对象中的变量将不会丢失,而是在整个会话中一直存在下去,进而可以通过此session对象来保存验证码数据。

本步骤中,根据验证码数据的形式不同,服务器103生成验证码数据的随机算法也可不同。例如,生成指示时间参数的验证码数据时,服务器103会将一天24小时换算为1440分钟,然后从0-1440数值范围中随机选取一个或多个数值作为第一验证码数据,所选取的一个数值可以用来表征一天中的某一个时刻。此第一验证码数据可以保存在服务器103中与客户端101的当前用户对应的session中,并可以与该session的sessionid对应保存。

步骤203:客户端101接收服务器103响应于所述验证码请求而生成的第一验证码数据。

在一些实例中,服务器103以ajax(asynchronousjavascriptandxml)请求的形式将第一验证码数据发送给客户端101。这样,客户端101在接收到上述第一验证码数据后不需要重新加载整个网页页面来展示验证码数据,而只需要更新验证码显示区域即可。

其中,ajax技术是一种创建交互式网页应用的网页开发技术,可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

步骤204:客户端101确定待绘制的可编辑的表盘对应的第一参数的初始值,根据上述第一验证码数据生成验证提示对应的第二参数。

在一些实例中,客户端101可以将上述待绘制的可编辑表盘对应的第一参数的初始值设为任意值,比如可以设置第一参数的初始值为0,此第一参数的初始值可以为一个默认数值,此默认数值可以携带在第一验证码数据中,也可以携带在服务器103提供给客户端101的网页数据中。在接收到上述第一验证码数据后,客户端101可将上述第一验证码数据转化为验证提示对应的第二参数。其中第二参数用来指示用户将上述可编辑表盘指针拖动到的数值。例如,当上述待绘制的表盘为时钟,即第一验证码数据包含代表时间的验证码(简称时间验证码)时,客户端101根据第一验证码数据生成格式为小时数和分钟数的第二参数,即假设当客户端101接收到包含时间验证码的第一验证码数据为数值“1360”时,客户端101将数值“1360”换算为时间参数“22小时40分钟”并将其作为第二参数。

步骤205:客户端101根据所述第一参数在页面上绘制所述可编辑的表盘,并根据所述第二参数在所述页面上展示所述验证提示;其中,所述表盘指示了所述第一参数,所述验证提示提示了所述第二参数,所述第二参数提示了所述第一参数的期望值。

在一些实例中,客户端101根据所述第一参数的初始值在页面上绘制可编辑的表盘,上述可编辑表盘除了表盘背景外,还包括刻度和指针,绘制的可编辑的表盘个数由接收到的上述第一验证码数据决定,即,上述第一验证码数据生成几个对应于第二参数的数值,就绘制几个可编辑表盘;同时在上述页面上显示上述验证提示,该验证提示包括代表上述第一参数期望值的第二参数。

图3以时钟为例,给出了一个可编辑表盘以及转动指针到指定时间的验证提示的实例。客户端101接收到第一验证码数据后,根据所设的第一参数的初始值,绘制时钟302和时钟303,并分别将指针指向相应第一参数初始值,其中,时钟302的第一参数初始值换算为时间格式后为00:01,时钟303的第一参数初始值换算为时间格式后为01:40;同时,客户端101根据接收到的第一验证码数据,生成第二参数a“10:25”和第二参数b“4:18”,并在时钟302和时钟303的上方显示出验证提示301“请转动分针,将时钟时间调整到下方指定时间点”,在时钟302下方显示验证提示304的第二参数a“10:25”,在时钟303的下方显示验证提示305的第二参数b“4:18”。

更进一步的,上述表盘的背景、颜色和表盘形状等样式,客户端101可以由访问的页面提前设定,也可从上述页面的表盘元素库中随机选择,来完成表盘绘制。绘制表盘的可以采用h5语言设计,也可由其他语言完成。

关于绘制表盘的方法,图3a以通过javascript语言绘制canvas画布来实现绘制时钟表盘为例,示出了绘制表盘的具体方法,该方法中canvas画布主要通过调用相关函数来实现绘制时钟表盘,具体包括以下步骤:

步骤301a:调用clearrect()函数清除画布内容。

步骤302a:使用arc()函数绘制表盘。

步骤303a:使用lineto()函数绘制小时刻度和分钟刻度。

步骤304a:绘制时针、分针和秒针,使用rotate()设置时针、分针和秒针的位置。

步骤305a:调用setinterval()函数,每秒刷新画布内容。

步骤206:客户端101响应于用户对于所述表盘的编辑操作,在所述页面上更新所述表盘以调整所述第一参数。

在一些实例中,客户端101接收用户通过鼠标或触摸屏等输入设备按照上述验证提示,对上述可编辑表盘进行的编辑操作,上述编辑操作可以包括用鼠标或者手指在触摸屏上的点击/拖动表盘的指针等等,响应于用户的上述编辑操作,客户端101可以调整表盘的指针参数并实时更新表盘的显示,进而能将表盘所指示的第一参数调整到用户编辑后的数值。比如:用户可以拖动图3所示时钟302和303的时针、分针、秒针等,进而调整时钟302和303指示的时间。

步骤207:客户端101响应于所述用户的提交操作,根据所述表盘当前指示的所述第一参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果。

在一些实例中,客户端101接收用户提交的按照验证提示指示的第二参数在表盘上拖动指针的编辑操作,并将当前的第一参数转换为第二验证码数据,并提交服务器103。时钟表盘举例,客户端101接收用户按照验证提示指示的第二参数“10:25”,拖动时钟指针以改变时钟指针指向的时间的操作,比如上述拖动操作使指针指向10:23,并将时钟当前指示的第一参数10:23换算生成第二验证码数据623,发送给服务器103进行校验处理。

步骤208:服务器103根据上述第一验证码数据和上述第二验证码数据进行验证处理并将验证结果发送给客户端101。

在一些实例中,服务器103从与客户端101对应的session中提取出步骤202保存的上述第一验证码数据,将其和从客户端101发送的上述第二验证码数据进行对比,如果一致,则认为验证成功,如果不一致,则认为验证失败,并把验证结果发送给客户端101。

以时钟表盘为例,在步骤207中,如果用户按照验证提示指示的第二参数“10:25”,拖动指针使其指向10点25分(转化为第二验证码数据为“625”),则服务器103接收到的第二验证码数据625和上述session中保存的第一验证码数据625一致,则认为验证成功;如果用户没有遵循验证提示指示的第二参数“10:25”,拖动指针没有使其指向10点25分,比如指向10点23分(转化为第二验证码数据为“623”),则服务器103接收到的第二验证码数据623与上述session中保存的第一验证码数据625不一致,则认为验证失败。步骤209:客户端101从服务器103接收并展示所述验证结果。

在一些实例中,如果客户端101接受的验证结果为成功时,则在上述页面上显示验证成功,以允许用户进行下步操作;如果客户端101接受的验证结果为失败时,则在上述页面上发出警告,显示验证失败,并在页面上提示用户再次验证。

方式二:选择第一参数在某段数值范围的表盘

在一些实例中,在页面上绘制表盘并展示验证提示,包括:根据所述第一验证码数据确定n个待绘制的表盘分别对应的n个第一参数以及验证提示对应的第二参数,其中,n为大于1的整数;在所述页面上绘制n个所述表盘并展示所述验证提示;其中,所述n个表盘分别指示所述n个第一参数,所述验证提示指示了所述第二参数,所述第二参数指示了所述第一参数的期望取值范围。其中,所述输入验证码操作为对于n个所述表盘的选择操作,所述确定当前的所述第一参数或者所述第二参数包括:响应于所述用户的所述选择操作,确定所述用户从n个所述表盘中选择的表盘,并确定所选择的所述表盘对应的所述第一参数。其中,根据所确定的所选择的表盘对应的所述第一参数生成所述第二验证码数据。

在一些实例中,每一表盘包括至少一个指针和刻度盘,每一表盘指示的所述第一参数代表该表盘中所述指针所指的刻度值。其中,绘制每一所述表盘时,该表盘的所述指针所指向的刻度值为该表盘对应的所述第一参数。其中,根据所选择的所述表盘对应的所述第一参数生成所述第二验证码数据。

一个具体的实现流程如图4所示,该方法包括如下步骤:

步骤401:客户端101向服务器103发出验证码请求。

步骤402:服务器103响应于客户端101的验证码请求生成第一验证码数据。

步骤403:客户端101接收所述服务器响应于所述验证码请求而生成的第一验证码数据。

步骤401-步骤403和图2所示的步骤201-步骤203相同,在此不再具体说明。

步骤404:客户端101根据所述第一验证码数据生成n个与待绘制的表盘分别对应的n个第一参数以及验证提示对应的第二参数,其中,n为大于1的整数。

在一些实例中,客户端101在接收到上述第一验证码数据后,按照预设约定,将上述第一验证码数据中的前n个数值转化为n个第一参数,将上述第一验证码数据中的第n+1和第n+2个数值转化为与上述验证提示对应的2个第二参数。例如,当上述待绘制的表盘为时钟,即第一验证码数据代表时间时,客户端101将第一验证码数据中的前n个数值分别转化为n个格式为小时数和分钟数的第一参数并将上述第一验证码数据中的第n+1和第n+2个数值转化为格式为小时数和分钟数的第二参数,即假设当客户端101接收到代表时间的第一验证码数据为“130”、“300”、“150”、“600”、“120”、“180”时,客户端101将上述第一验证码数据中的前4个“130”、“300”、“150”和“600”分别转化为“2:10”、“5:00”、“2:30”和“10:00”4个格式为时间的第一参数,并将上述第一验证码数据中的最后2个“120”和“180”转化为“2:00”和“3:00”2个时间格式的第二参数。

其中,上述预设约定为编程人员在设计应用程序页面阶段确定。

步骤405:客户端101在页面上绘制n个所述表盘并展示所述验证提示;其中,所述n个表盘分别指示所述n个第一参数,所述验证提示指示了所述第二参数,所述第二参数指示了所述第一参数的期望取值范围.

在一些实例中,客户端101根据步骤404中生成的上述n个第一参数,在页面上分别绘制n个表盘,并使上述n个表盘分别指示上述n个第一参数。同时在上述页面上显示上述验证提示,该验证提示中包含了代表上述第一参数期望值范围的第二参数。

图5以时钟为例,给出了一个选择显示数值在某段数值范围的表盘的实例。客户端101根据上述第一验证码数据,生成四个第一参数分别为00:01、02:48、05:47、01:40以及两个第二参数02:00和03:00,根据上述四个第一参数在页面上绘制了4个时钟表盘501a、501b、501c、501d,并使上述四个时钟表盘分别指向上述4个第一参数。同时,将上述验证提示指示503a第二参数a“02:00”和503b第二参数b“03:00”,在页面上展示上述验证提示502“选出所有时间在2点到3点之间的时钟”,其中上述两个第二参数“02:00”和“03:00”指示了上述四个第一参数的期望取值范围。

步骤406:客户端101响应于用户的选择操作,确定所述用户从n个所述表盘中选择的表盘。

在一些实例中,客户端101接收用户通过鼠标或触摸屏等输入设备根据上述验证提示,对上述表盘进行的选择操作,上述编辑操作可以包括用鼠标或者触摸屏点击表盘以选择该表盘等等,响应于用户的上述选择操作,客户端101在上述页面上对上述表盘更新,将用户从上述n个表盘中选择的表盘,背景显示为阴影。

以图5为例,客户端101响应于用户的选择操作,将图5中的4个表盘中的表盘501b和表盘501c背景显示为阴影(504),即背景为阴影的表盘表盘501b和表盘501c表示被选中。

步骤407:客户端101响应于所述用户的提交操作,根据所确定的表盘指示的所述第一参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果。

在一些实例中,客户端101接收到用户的提交操作后,将上述被用户选择的表盘当前指示的第一参数值转换为第二验证码数据,并提交上述第二验证码数据到服务器103进行校验处理。以时钟表盘为例,客户端101接收用户按照验证提示指示的第二参数,在表盘上点击的选择操作,并将当前用户选择的表盘指示的第一参数转换为第二验证码数据,并提交服务器103。

以图5为例,客户端101接收用户按照验证提示指示的第二参数2:00和3:00,点击表盘501b和表盘501c的选择操作,然后将表盘501b当前指示的第一参数02:48和表盘501c当前指示的第一参数05:47转化为第二验证码数据“168”和“347”,并发送给服务器103进行校验处理。

步骤408:服务器103根据上述第一验证码数据和上述第二验证码数据进行验证处理并将验证结果发送给客户端101。

在一些实例中,服务器103根据步骤402中保存在与客户端101对应的session中的第一验证码数据和验证提示,生成预期验证码数据,并将上述预期验证码数据保存到上述session中。当服务器103接收到客户端101提交的第二验证码数据时,从上述session中提取上述预期验证码数据,并将其与客户端101提交的第二验证码数据进行比对,如果一致,则认为校验成功,如果不一致,则认为校验失败,最后将校验结果发送给客户端101。

以图5所示的时钟表盘为例,如果用户没有遵循验证提示“选出所有时间在2点到3点之间的时钟”,选择了指向第一参数为02:48的表盘501b和指向第一参数为05:47的表盘501c,由于表盘501c指向的第一参数05:47不在第二参数2点到3点的之间,所以验证失败。

步骤409:客户端101从服务器103接收并展示所述验证结果。

步骤409与图2中示出的步骤209相同,在此不再详细说明。

方式三:在验证提示的指定区域输入表盘的第一参数

在一些实例中,在页面上绘制表盘并展示验证提示,包括:根据所述第一验证码数据生成待绘制的表盘对应的第一参数;在所述页面上绘制所述表盘并展示验证提示;其中,所述表盘指示了所述第一参数。其中,所述输入验证码操作为对于所述验证提示的输入操作,所述确定当前的所述第一参数或者所述第二参数包括:接收所述用户在所述验证提示的预设区域输入的参数,将所输入的参数作为所述第二参数并展示;其中,所述第一参数指示了所述第二参数的期望取值。其中,根据所述第二参数生成第二验证码数据。

在一些实例中,所述表盘包括至少一个指针和刻度盘,所述表盘指示的所述第一参数代表该表盘中所述指针所指的刻度值。其中,绘制所述表盘时,该表盘的所述指针所指向的刻度值为该表盘对应的所述第一参数。

一个具体的实现流程如图6所示,该方法包括如下步骤:

步骤601:客户端101向服务器103发出验证码请求。

步骤602:服务器103响应于客户端101的验证码请求生成第一验证码数据。

步骤603:客户端101接收所述服务器响应于所述验证码请求而生成的第一验证码数据。

步骤601-步骤603和图2所示的步骤201-步骤203相同,在此不再具体说明。

步骤604:客户端101根据所述第一验证码数据生成待绘制的表盘对应的第一参数。

在一些实例中,客户端101在接收到上述第一验证码数据后,将上述第一验证码数据转化为与待绘制表盘对应的第一参数。例如,当上述待绘制的表盘为时钟,即第一验证码数据代表时间时,客户端101根据第一验证码数据生成格式为小时数和分钟数的第一参数,即假设当客户端101接收到代表时间的第一验证码数据为“1360”时,客户端101将1360换算为22小时40分钟的第一参数。

步骤605:客户端101在页面上绘制所述表盘并展示验证提示;其中,所述表盘指示了所述第一参数。

在一些实例中,客户端101根据上述第一参数在页面上绘制表盘,上述表盘除了表盘背景外,还包括刻度和指针,绘制的表盘个数由接收到的上述第一验证码数据决定,即,上述第一验证码数据中包含几个指向第一参数的数值,就绘制几个表盘;同时在上述页面上展示上述验证提示,该验证提示包括预设区域共用户输入表盘数值。

图7以时钟为例,给出了一个输入表盘显示数值的实例。客户端101根据上述第一参数09:01在页面上绘制了表盘701,并使上述表盘701指示上述第一参数09:01;同时,在上述页面展示验证提示702,其中上述验证提示702包括预设区域703供用户输入表盘数值。

步骤606:客户端101响应于用户对于所述验证提示的输入操作,在所述验证提示的预设区域展示所述用户输入的第二参数;其中,所述第一参数指示了所述第二参数的期望取值。

在一些实例中,客户端101接收用户通过键盘、鼠标以及触摸屏等输入设备根据上述验证提示,对上述验证提示的预设区域进行的输入操作,响应于用户的上述输入操作,客户端101在上述页面上验证提示的预设区域展示用户输入的第二参数,其中,上述表盘指示的第一参数为在上述验证提示的预设区域待输入的第二参数的期望输入值。

步骤607:客户端101响应于所述用户的提交操作,根据所述第二参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果。在一些实例中,客户端101接收到用户的提交操作后,将用户在上述验证提示指定区域输入的第二参数转换为第二验证码数据,并提交上述第二验证码数据到服务器103进行校验处理。

以图7示出的时钟表盘为例,假设客户端101接收用户在上述验证提示预设区域703输入的第二参数为09点01分,将上述第二参数“09:01”转化为第二验证码数据“541”发送给服务器103进行校验处理。

步骤608:服务器103根据上述第一验证码数据和上述第二验证码数据进行验证处理并将验证结果发送给客户端101。

步骤609:客户端101从服务器103接收并展示所述验证结果。

步骤608-步骤609与图2中示出的步骤208-步骤209相同,在此不再详细说明。

方式四:根据第一参数进行表盘排序

在一些实例中,在页面上绘制表盘并展示验证提示,包括:根据所述第一验证码数据生成n个待绘制的可移动表盘分别对应的n个第一参数以及验证提示对应的第二参数,其中,n为大于1的整数;在所述页面上按初始的排列方式依次绘制n个可移动的所述表盘并展示所述验证提示;其中,所述n个表盘分别指示所述n个第一参数,所述验证提示指示了所述第二参数,所述第二参数指示了所述n个第一参数的期望排列方式。其中,所述输入验证码操作为对于所述表盘的移动操作,所述确定当前的所述第一参数或者所述第二参数包括:响应于所述用户对于n个所述表盘中任一者或任几者的移动操作,更新n个所述表盘的排列方式。其中,根据n个所述表盘当前的排列方式及其各自指示的所述第一参数,生成第二验证码数据。

在一些实例中,每一表盘包括至少一个指针和刻度盘,每一表盘指示的所述第一参数代表该表盘中所述指针所指的刻度值。其中,绘制每一所述表盘时,该表盘的所述指针所指向的刻度值为该表盘对应的所述第一参数。其中,根据所选择的所述表盘对应的所述第一参数生成所述第二验证码数据。

一个具体的实现流程如图8所示,该方法包括如下步骤:

步骤801:客户端101向服务器103发出验证码请求。

步骤802:服务器103响应于客户端101的验证码请求生成第一验证码数据。

步骤803:客户端101接收所述服务器响应于所述验证码请求而生成的第一验证码数据。

步骤804:上述客户端根据所述第一验证码数据生成n个与待绘制的表盘分别对应的n个第一参数以及验证提示对应的第二参数,其中,n为大于1的整数。

步骤801-步骤804和图4所示的步骤401-步骤404相同,在此不再具体说明。

步骤805:客户端101在页面上按初始的排列顺序依次绘制n个可移动的所述表盘并展示所述验证提示;其中,所述n个可移动表盘分别指示所述n个第一参数,所述验证提示指示了所述第二参数,所述第二参数指示了所述n个第一参数的期望排列方式。

在一些实例中,客户端101根据步骤804中生成的n个与第一参数,在页面上按照初始的排列顺序依次绘制n个表盘,并使上述n个可移动表盘分别指示上述n个第一参数。同时在上述页面上展示上述验证提示,该验证提示中指示了代表上述n个第一参数期望排列方式的第二参数,比如升序或降序。

其中,上述排列方式可以由访问的页面提前约定,也可由上述第一验证码数据生成,比如,0代表降序,1代表升序。

图9以时钟为例,给出了一个表盘排序的实例。客户端101根据上述第一验证码数据,生成四个第一参数分别为01:40、02:03、09:24、01:46以及一个第二参数1(假设按照约定代表升序),根据上述四个第一参数在页面上绘制了4个时钟表盘901a、901b、901c、901d,并使上述四个时钟表盘分别指向上述4个第一参数。同时,将上述验证提示指示903第二参数(升序),并在页面上展示上述验证提示902“请拖动时钟,使时间从左至右呈升序排列”,其中上述第二参数1(升序)指示了上述四个第一参数的期望排序方式。

步骤806:客户端101响应于用户对于n个所述表盘中任一者或任几者的移动操作,更新n个所述表盘的排列顺序。

在一些实例中,客户端101接收用户通过鼠标或触摸屏等输入设备根据上述验证提示,对上述可移动表盘进行的移动操作,响应于用户的上述移动操作,客户端101在上述页面上更新上述n个表盘的排列顺序。

步骤807:客户端101响应于所述用户的提交操作,根据n个所述表盘当前的排列顺序及其各自指示的所述第一参数,生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果。

在一些实例中,客户端101接收到用户的提交操作后,将上述n个表盘指示的第一参数按照当前排列顺序,依次生成第二验证码数据,并提交上述第二验证码数据到服务器103进行校验处理。

步骤808:服务器103根据上述第一验证码数据和上述第二验证码数据进行验证处理并将验证结果发送给客户端101。

在一些实例中,服务器103根据步骤802中保存在与客户端101对应的session中的第一验证码数据和验证提示,生成预期验证码数据,并将上述预期验证码数据保存到上述session中。以图9中示出的时钟表盘为例,客户端101接收用户按照验证提示指示的升序,应将上述四个表盘901a、901b、901c、901d,按照其指示的第一参数和验证提示指示的升序排列方式,服务器103生成预期验证码数据时,应首先将上述四个表盘分别指示的第一参数排序为01:40、01:46、02:03、09:24,并将其转化为预期验证码数据100、106、123、564。

当服务器103接收到客户端101提交的第二验证码数据时,从上述session中提取上述预期验证码数据,并将其与客户端101提交的第二验证码数据进行比对,如果一致,则认为校验成功,如果不一致,则认为校验失败,最后将校验结果发送给客户端101。

步骤809:客户端101从服务器103接收并展示所述验证结果。

步骤809与图4中示出的步骤409相同,在此不再详细说明。

以上技术方案采用了以表盘来展示验证码数据,并且提供了多种验证方式,有效的防止验证码数据被破解;同时以表盘来展示验证码数据一方面更加贴近用户日常生活,提高用户体验,另一方面还可以大大减少用户因难分辨或难理解验证码二带来的盲目请求服务器生成新的验证码数据换而产生的信令交互,节约网络以及硬件资源,提高了效率。

基于以上各实例,本申请还提供了一种验证码数据处理装置和服务器,其中上述验证码数据处理装置可以安装在客户端101上。

在本申请的一些实例中,上述验证码数据处理装置可由图10所示的结构图实现,包括:请求模块1001、接收模块1002、绘制模块1003、响应模块1004、提交模块1005和展示模块1006。

在一些实例中,各模块功能如下:

请求模块1001用于向服务器发出验证码请求。

接收模块1002用于接收服务器响应与上述验证码请求而生成的第一验证码数据。

绘制模块1003用于根据所述第一验证码数据,在页面上绘制表盘并展示验证提示;其中,所述表盘指示了第一参数,所述验证提示对应第二参数,所述第一参数和所述第二参数中的至少一种根据所述第一验证码数据而确定;所述第二参数包括所述第一参数的期望值,或者所述第一参数包括所述第二参数的期望值;

响应模块1004用于响应于所述用户的输入验证码操作,确定当前的所述第一参数或者所述第二参数;其中,所述验证提示指示第二参数或者从对于所述验证提示的所述输入验证码操作中获得第二参数;

提交模块1005用于响应于所述用户的提交验证码操作,根据所确定的所述第一参数或者所述第二参数生成第二验证码数据,并提交所述第二验证码数据给所述服务器,以使所述服务器根据所述第一验证码数据和所述第二验证码数据进行验证处理并得到验证结果。

展示模块1006用于从所述服务器接收并展示所述验证结果。

在一些实例中,上述绘制模块1003可以确定待绘制的可编辑的表盘对应的所述第一参数的初始值;根据所述第一验证码数据确定所述验证提示对应的所述第二参数;根据所述第一参数的初始值在所述页面上绘制所述可编辑的表盘,并根据所述第二参数在所述页面上展示所述验证提示;其中,所述表盘指示了所述第一参数,所述验证提示提示了所述第二参数,所述第二参数指示了所述第一参数的期望值。其中,所述输入验证码操作为对于所述表盘的编辑操作,所述响应模块1004,响应于所述用户对于所述表盘的编辑操作,在所述页面上更新所述表盘以调整所述第一参数。其中,所述提交模块1005,根据所述表盘当前指示的所述第一参数生成第二验证码数据。

在一些实例中,上述绘制模块1003可以根据所述第一验证码数据确定n个待绘制的表盘分别对应的n个第一参数以及验证提示对应的第二参数,其中,n为大于1的整数;在所述页面上绘制n个所述表盘并展示所述验证提示;其中,所述n个表盘分别指示所述n个第一参数,所述验证提示指示了所述第二参数,所述第二参数指示了所述第一参数的期望取值范围。其中,所述输入验证码操作为对于n个所述表盘的选择操作,所述响应模块1004,响应于所述用户的所述选择操作,确定所述用户从n个所述表盘中选择的表盘,并确定所选择的所述表盘对应的所述第一参数。其中,所述提交模块1005,根据所确定的所选择的表盘对应的所述第一参数生成所述第二验证码数据。

在一些实例中,上述绘制模块1003可以根据所述第一验证码数据生成待绘制的表盘对应的第一参数;在所述页面上绘制所述表盘并展示验证提示;其中,所述表盘指示了所述第一参数。其中,所述输入验证码操作为对于所述验证提示的输入操作,所述响应模块1004,接收所述用户在所述验证提示的预设区域输入的参数,将所输入的参数作为所述第二参数并展示;其中,所述第一参数指示了所述第二参数的期望取值。其中,所述提交模块1005,根据所述第二参数生成第二验证码数据。

在一些实例中,上述绘制模块1003可以根据所述第一验证码数据生成n个待绘制的可移动表盘分别对应的n个第一参数以及验证提示对应的第二参数,其中,n为大于1的整数;在所述页面上按初始的排列方式依次绘制n个可移动的所述表盘并展示所述验证提示;其中,所述n个表盘分别指示所述n个第一参数,所述验证提示指示了所述第二参数,所述第二参数指示了所述n个第一参数的期望排列方式。其中,所述输入验证码操作为对于所述表盘的移动操作,所述响应模块1004,响应于所述用户对于n个所述表盘中任一者或任几者的移动操作,更新n个所述表盘的排列方式。其中,所述提交模块1005,根据n个所述表盘当前的排列方式及其各自指示的所述第一参数,生成第二验证码数据。

在一实施例中,上述的验证码数据处理装置可运行在任一用于验证码数据处理的计算设备中,并加载在该计算设备的存储器中。如图11所示,该计算设备除了包括上述控制装置中的各个模块,还可包括:存储器1101、处理器1103、总线1102、端口1104。处理器1103和存储器1101通过总线1102互联。处理器1103可通过端口1104接收和发送数据以实现网络通信和/或本地通信。上述各模块1001~1006可以是存储器1101中存储的机器可执行指令模块。处理器1103通过执行存储器1101中各模块1001~1006中包含的机器可执行指令,进而能够实现上述各模块1001~1006的功能。

在本申请的一些实例中,上述验证码数据处理服务器可由图12所示的结构图实现,包括:验证码生成模块1201、验证码发送模块1202、验证码处理模块1203。

在一些实例中,各模块功能如下:

验证码生成模块1201用于响应于来自客户端的针对一用户的验证码请求,生成所述用户的第一验证码数据并保存。

验证码发送模块1202用于发送所述第一验证码数据至所述客户端,以使所述客户端根据所述第一验证码数据在页面上绘制表盘并展示验证提示;其中,所述表盘指示了第一参数,所述验证提示对应第二参数,所述第二参数包括所述第一参数的期望值,或者所述第一参数包括所述第二参数的期望值;还可以用于发送验证结果至所述客户端。

验证码处理模块1203用于接收来自所述客户端的针对所述用户的第二验证码数据;其中,所述第二验证码数据由所述客户端根据当前确定的所述第一参数或者所述第二参数而生成;查询得到所述用户的所述第一验证码数据;通过比对所述第一验证码数据和所述第二验证码数据来完成验证处理,并得到验证结果。

上述各个模块实现各种功能的具体方法及原理在前文均有描述,这里不再赘述。

另外,在本申请各个实例中的装置及各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

图13显示了本发明的实例所述的验证码数据处理服务器的硬件结构示意图。上述服务器可包括:存储器1301、处理器1303、总线1302、端口1304。处理器1303和存储器1301通过总线1302互联。处理器1303可通过端口1304接收和发送数据以实现网络通信和/或本地通信。上述各模块1201~1203可以是存储器1301中存储的机器可执行指令模块。处理器1303通过执行存储器1301中各模块1201~1203中包含的机器可执行指令,进而能够实现上述各模块1201~1203的功能。

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

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