验证码的验证方法、装置及系统与流程

文档序号:11279262阅读:272来源:国知局
验证码的验证方法、装置及系统与流程

本申请涉及互联网领域,具体而言,涉及一种验证码的验证方法、装置及系统。



背景技术:

现有技术中,在大型网站中,可能在多个位置布置验证码服务器,如在北京、上海、杭州、广州等地部署多个验证码服务器。在用户终端向这些服务器上请求验证码并验证时,可能存在的一种情况是:用户从部署在上海的服务器上取了验证码图片,但是用户在输入验证码之后,对验证码进行验证时,被分配到部署在北京的服务器进行验证。由于传统方法把验让码存放在kv服务器(键值存储服务器)中,在验证验证码时,可以通过对比kv服务器中的值判断验证码是否正确,而kv服务器在跨地域的不同服务器上,进行验证码信息的同步是有时延的,如果同步时延超出验证码的有效期,可能导致用户验证失败,体验差。

如图1所示,现有技术中,用户向服务器请求验证码可以通过如下步骤实现:

步骤s101:用户向应用程序请求页面。

步骤s102:应用程序向用户返回验证页面,其中,该验证页面中可以请求用于输入用户名和密码,并且该验证页面中携带有指向验证资源的验证码服务器的url地址(即取码服务器)。

步骤s103:用户使用该url地址访问取码服务器。

步骤s104:取码服务器从kv存储中请求验证码图片和图片结果。该图片结果即为验证码图片中携带的图片结果。

步骤s105:取码服务器将验证码图片发给用户。

步骤s106:取码服务器将图片结果和会话信息写入kv存储。

其中,该会话信息携带在用户使用该url地址访问取码服务器的访问请求中。

如图2所示,现有技术中,用户向服务器发送验证码请求验证时,可以通过如下步骤实现:

步骤s201:用户提交验证码请求至应用程序。

步骤s202:应用程序将验证码请求发至对应的验证服务器。

步骤s203:验证服务器获取图片结果,并进行验证。

可选地,验证服务器从kv存储中获取会话信息对应的图片结果,但是,若该验证服务器与图1中的取码服务器不是同一个服务器,该验证服务器还需向取码服务器获取图片结果,然后基于该图片结果进行验证,如上述所述的,若两个服务器部署在不同区域,则存在时延,会导致用户验证失败。

步骤s204:验证服务器删除kv存储中存储的会话信息和图片结果。

步骤s205:验证服务器返回验证结果。

针对上述跨区域验证时存在验证时延的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种验证码的验证方法、装置及系统,以至少解决跨区域验证时存在验证时延的技术问题。

根据本申请实施例的一个方面,提供了一种验证码的验证方法,该方法包括:第一服务器接收终端发送的第一请求,其中,第一请求用于请求获取验证码;第一服务器响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;第一服务器至少将验证码载体和加密的第一验证码信息返回至终端,其中,验证码载体用于指示终端输入第二验证码信息,加密的第一验证码信息用于第二服务器对终端发送的第二请求中的第二验证信息进行验证。

根据本申请实施例的一个方面,提供了一种验证码的验证方法,该方法包括:第二服务器接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,加密的第一验证码信息为第一服务器发送给终端的,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息,验证码载体与第一验证码信息相对应;第二服务器响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

根据本申请实施例的一个方面,提供了一种验证码的验证方法,该方法包括:终端向第一服务器发送第一请求,其中,第一请求用于请求获取验证码;终端接收第一服务器响应于第一请求返回的响应信息,其中,响应信息中至少包括验证码载体和加密的第一验证码信息;终端基于验证码载体获取第二验证码信息;终端生成第二请求,第二请求中至少包括第二验证码信息和加密的第一验证码信息;终端将第二请求发送 至第二服务器,其中,第二请求用于利用加密的第一验证码信息对第二验证码信息进行验证。

根据本申请实施例的一个方面,提供了一种验证码的验证系统,该系统包括:第一服务器,用于接收终端发送的第一请求,其中,第一请求用于请求获取验证码,并响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;第一服务器还用于至少将验证码载体和加密的第一验证码信息返回至终端;第二服务器,用于接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息;第二服务器还用于响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

根据本申请实施例的另一方面,还提供了一种验证码的验证装置,该验证码的验证装置设置在第一服务器上,包括:第一接收单元,用于接收终端发送的第一请求,其中,第一请求用于请求获取验证码;第一响应单元,用于响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;第一返回单元,用于第一服务器至少将验证码载体和加密的第一验证码信息返回至终端,其中,验证码载体用于指示终端输入第二验证码信息,加密的第一验证码信息用于第二服务器对终端发送的第二请求中的第二验证信息进行验证。

根据本申请实施例的另一方面,还提供了一种验证码的验证装置,设置在第二服务器上,该验证码的验证装置包括:第二接收单元,用于接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,加密的第一验证码信息为第一服务器发送给终端的,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息,验证码载体与第一验证码信息相对应;第二响应单元,用于第二服务器响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

根据本申请实施例的另一方面,还提供了一种验证码的验证装置,设置在终端上,包括:第一发送单元,用于向第一服务器发送第一请求,其中,第一请求用于请求获取验证码;第三接收单元,用于接收第一服务器响应于第一请求返回的响应信息,其中,响应信息中至少包括验证码载体和加密的第一验证码信息;获取单元,用于基于验证码载体获取第二验证码信息;生成单元,用于生成第二请求,第二请求中至少包括第二验证码信息和加密的第一验证码信息;第二发送单元,用于将第二请求发送至 第二服务器,其中,第二请求用于利用加密的第一验证码信息对第二验证码信息进行验证。

在本申请实施例中,采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据现有技术的一种获取验证码的交互流程图;

图2是根据现有技术的一种对验证码进行验证的交互流程图;

图3是本申请实施例的一种验证码的验证方法的计算机终端的硬件结构框图

图4是根据本申请实施例的验证码的验证方法的流程图一;

图5是根据本申请实施例的验证码的验证方法的交互图一;

图6是根据本申请实施例的验证码的验证方法的流程图二;

图7是根据本申请实施例的验证码的验证方法的交互图二;

图8是根据本申请实施例的验证码的验证方法的流程图三;

图9是根据本申请实施例的验证码的验证系统的示意图;

图10是根据本申请实施例的验证码的验证装置的示意图一;

图11是根据本申请实施例的验证码的验证装置的示意图二;

图12是根据本申请实施例的验证码的验证装置的示意图三;以及

图13是根据本申请实施例的验证码的验证方法的流程图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,对本申请涉及的术语解释如下:

数据加密:通过密钥对数据进行变化处理,第三方无法得到原始信息,且无法伪造、篡改该信息,只有拥有密钥方才能对数据进行解密得到原始信息。

重放:攻击者发送一个目的主机已经接收过的包,特别是在认证(如本申请的验证码验证)的过程中,用于认证用户身份所接收的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的安全性。

防重放:通过kv存储记录请求是否被处理过,如果处理过则拒绝处理。

实施例1

根据本申请实施例,还提供了一种验证码的验证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图3是本申请实施例的一种验证码的验证方法的计算机终端的硬件结构框图。如图3所示,计算机终端10可以包括一个或多 个(图中仅示出一个)处理器302(处理器302可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器304、以及用于通信功能的传输装置306。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。

存储器304可用于存储应用软件的软件程序以及模块,如本申请实施例中的验证码的验证方法对应的程序指令/模块,处理器302通过运行存储在存储器304内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的验证码的验证方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置306包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置306可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图4所示的验证码的验证方法。图4是根据本申请实施例的验证码的验证方法的流程图一。如图4所示,该方案可以通过如下步骤实现:

步骤s402:第一服务器接收终端发送的第一请求,其中,第一请求用于请求获取验证码;

步骤s404:第一服务器响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;

步骤s406:第一服务器至少将验证码载体和加密的第一验证码信息返回至终端,其中,验证码载体用于指示终端输入第二验证码信息,加密的第一验证码信息用于第二服务器对终端发送的第二请求中的第二验证信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一 并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片,也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

在本申请的上述实施例中,第一服务器生成响应信息可以包括:第一服务器从对 应的键值存储数据库中读取验证码载体和第一验证码信息;对第一请求中携带的会话信息和第一验证码信息进行加密,得到加密的会话信息和加密的第一验证码信息;基于加密的会话信息、加密的第一验证码信息和验证码载体,生成响应信息。

在上述实施例中,第一服务器可以从kv存储数据库(即键值存储数据库)中读取验证码载体和第一验证码信息,然后对终端发送的第一请求中的会话信息和取到的第一验证码信息进行加密,得到加密的会话信息和加密的第一验证码信息,基于该加密的会话信息、加密的第一验证码信息以及验证码载体生成响应信息。

具体地,在第一服务器至少将验证码载体和加密的第一验证码信息返回至终端的同时,第一服务器将加密的会话信息发送至终端,其中,加密的会话信息和加密的第一验证码信息用于第二服务器判断第二请求是否为重放请求。

通过上述实施例,在响应信息中携带加密的会话信息(如会话编号或会话id),在保证会话信息和第一验证码信息安全的情况下,还可以保证对验证码进行验证的服务器可以判断该终端是否发起了重放攻击,进一步保证了验证码的验证系统的安全。

根据上述实施例,可以将请求获取的加密的第一验证码信息保存在cookie中。但是由于一个域名下的多个页面共用一个cookie,若用户在终端上同时在多个页面请求验证码,cookie中只能写入最后获取的加密的第一验证码信息,为了保证多个页面都可以获取到加密的第一验证码信息,终端在接收到加密的第一验证码信息之后,可以将其保存在hidden域(即页面的隐藏域)中。

另外,cookie的大小有限制,若一个域名下的cookie过多,可能导致cookie的丢失,在终端获取到加密的第一验证码信息之后,将加密的第一验证码信息保存在隐藏域中也可以避免信息丢失的问题。

如图5所示,以验证码载体为验证码图片为例,详述本申请上述实施例:

步骤s501:终端向目标应用服务器发起访问请求。

可选地,该访问请求可以为需进行身份认证的请求,如登录请求、下单请求(如该目标应用服务器为资源转移站点的服务器,则该请求可以为资源转移请求)、以及注册请求等。

步骤s502:目标应用服务器返回请求响应信息。

该请求响应信息用于指示终端输入应用账号和密码,并输入验证码。

进一步地,该请求响应信息中携带有验证资源地址,该验证资源地址指向第一服 务器。

步骤s503:终端向该验证资源地址指向的第一服务器发送第一请求,该请求用于请求获取验证码。

步骤s504:第一服务器响应该第一请求从kv存储数据库中获取验证码图片和图片结果,其中,该图片结果即为上述的第一验证码信息。

步骤s505:第一服务器将该第一请求中的会话信息和获取到的第一验证码信息写加密,得到加密的第一验证码信息和加密的会话信息。

步骤s506:第一服务器生成响应信息。

该步骤与上述实施例中的实现方式一致,在此不再赘述。

步骤s507:第一服务器将响应信息返回至终端。

在终端获取该响应信息之后,可以按照上述实施例中的处理方式,获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

通过上述实施例,可以实现验证服务器的跨区域部署,并且用户在验证时,准确、安全没有时延,且可以保证验证请求无法被回放。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

实施例2

根据本申请实施例,还提供了一种验证码的验证方法,该方法应用在第二服务器上,如图6所示,该方法可以包括:

步骤s601:第二服务器接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,加密的第一验证码信息为第一服务器发送给终端的,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息,验证码载体与第一验证码信息相对应;

步骤s603:第二服务器响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片,也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器 的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

具体地,利用加密的第一验证码信息对第二验证码信息进行验证可以包括:第二服务器对加密的第一验证码信息进行解密,得到第一验证码信息;若第一验证码信息与第二验证码信息一致,则第二服务器验证出第二验证码信息正确;若第一验证码信息与第二验证码信息不一致,则第二服务器验证出第二验证码信息不正确。

第二服务器在利用加密的第一验证码信息对第二验证码信息进行验证时,第二服务器先对加密的第一验证码信息进行解密,得到第一验证码信息;比对解密得到的第一验证码信息和第二验证码信息是否一致,若第一验证码信息和第二验证码信息一致,则第二服务器验证出第二验证码信息正确;若第一验证码信息与第二验证码信息不一致,则第二服务器验证出第二验证码信息不正确。

其中,第一验证码信息和第二验证码信息一致,是指验证码信息中的字符一致,字符大小写不同也属于一致的范畴,如,第一验证码信息为“abcd”,第二验证码信息为“abcd”,也判断第一验证码信息和第二验证码信息一致。

根据本申请的上述实施例,第二请求中还携带有第一服务器发送给终端的加密的会话信息,其中,在利用加密的第一验证码信息对第二验证码信息进行验证之后,第二服务器将会话信息和第一验证码信息保存入对应的键值存储数据库。

在该实施例中,在每次验证完成终端的第二验证码信息之后,将该终端的第二请求中携带的加密的第一验证码信息和加密的会话信息作为键值对,存储如第二服务器对应的kv存储数据库,在下次接收到第二请求(如验证请求时),使用第二请求中的 会话信息查找该第二请求是否为回放请求(即重放请求),如果是,则第二服务器不响应该第二请求,如果不是,则第二服务器响应该请求。

具体地,在利用加密的第一验证码信息对第二验证码信息进行验证之前,第二服务器在对应的键值存储数据库中,查找是否记录有与会话信息对应的已存验证码信息;在查找到与会话信息对应的已存验证码信息的情况下,第二服务器确定第二请求为重放请求;在未查找到与会话信息对应的已存验证码信息的情况下,第二服务器确定第二请求不为重放请求。

具体地,利用加密的第一验证码信息对第二验证码信息进行验证包括:在第二请求不为重放请求的情况下,利用加密的第一验证码信息对第二验证码信息进行验证;

在第二请求为重放请求的情况下,则第二服务器不响应该第二请求,也即不利用加密的第一验证码信息对第二验证码信息进行验证。

在上述实施例中,每次接收到第二请求的时候,均对其进行重放攻击的检测,保证了整个验证码的验证系统的安全。

根据上述实施例,可以将请求获取的加密的第一验证码信息保存在cookie中。但是由于一个域名下的多个页面共用一个cookie,若用户在终端上同时在多个页面请求验证码,cookie中只能写入最后获取的加密的第一验证码信息,为了保证多个页面都可以获取到加密的第一验证码信息,终端在接收到加密的第一验证码信息之后,可以将其保存在hidden域(即页面的隐藏域)中。

另外,cookie的大小有限制,若一个域名下的cookie过多,可能导致cookie的丢失,在终端获取到加密的第一验证码信息之后,将加密的第一验证码信息保存在隐藏域中也可以避免信息丢失的问题。

下面结合图7对本申请的上述实施例进行详细描述,如图7所示,上述实施例可以包括如下步骤:

步骤s701:终端发送第二请求至目标应用服务器。

该第二请求即为验证请求,该验证请求中可以携带应用账号、密码、加密的会话信息、加密的第一验证码信息和终端接收到的第二验证码信息。

步骤s702:目标应用服务器将加密的会话信息、加密的第一验证码信息和终端接收到的第二验证码信息发送至第二服务器。

目标应用服务器使用应用账号和密码对用户进行身份认证,同时将该加密的会话 信息、加密的第一验证码信息和终端接收到的第二验证码信息发送至第二服务器。

可以预先设置应用账户与区域的对应表,确定该应用账户对应的区域,如确定的区域为京津唐地区,则将该加密的会话信息、加密的第一验证码信息和终端接收到的第二验证码信息发送至该京津唐地区内部署的服务器(即第二服务器)。

步骤s703:第二服务器接收到第二请求之后,解密加密的会话信息和加密的第一验证码信息,得到会话信息和第一验证码信息。

第一服务器和第二服务器可以预先约定加密和解密的密钥。

步骤s704:第二服务器利用该会话信息和第一验证码信息验证第二请求是否为重放请求。

该步骤的实现方式与上述实施例中对应步骤的实现方式一致,在此不再赘述。

步骤s705:在第二请求不为重放请求的情况下,第二服务器验证第一验证码信息和第二验证码信息的一致性,得到验证结果。

该步骤的实现方式与上述实施例中对应方案的实现方式一致,在此不再赘述。

步骤s706:第二服务器将验证结果返回至终端。

该验证结果可以为验证通过的结果,也可以为验证不通过的结果。

步骤s707:第二服务器的将会话信息和第一验证码信息作为键值对存入对应的kv存储数据库。

该存入kv存储数据库的会话信息和第一验证码信息用于验证接收到的验证请求是否为重放请求。

本申请对执行上述步骤s706和步骤s707的先后顺序不做限定。

通过上述实施例,可以实现验证服务器的跨区域部署,并且用户在验证时,准确、安全没有时延,且可以保证验证请求无法被回放。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施 例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

实施例3

根据本申请实施例,还提供了一种验证码的验证方法,该方法应用在第二服务器上,如图8所示,该方法可以包括如下步骤:

步骤s801:终端向第一服务器发送第一请求,其中,第一请求用于请求获取验证码;

步骤s802:终端接收第一服务器响应于第一请求返回的响应信息,其中,响应信息中至少包括验证码载体和加密的第一验证码信息;

步骤s803:终端基于验证码载体获取第二验证码信息;

步骤s804:终端生成第二请求,第二请求中至少包括第二验证码信息和加密的第一验证码信息;

步骤s805:终端将第二请求发送至第二服务器,其中,第二请求用于利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片, 也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

具体地,在终端向第一服务器发送第一请求之前,方法还包括:终端向目标应用服务器发送访问请求;终端接收目标应用服务器返回的验证资源地址,其中,验证资源地址指向第一服务器。

可选地,终端生成第二请求包括:终端基于通过终端输入的第二验证码信息、加密的第一验证码信息、用于访问目标应用服务器的应用账户和密码生成第二请求。

根据本申请的上述实施例,终端将第二请求发送至第二服务器包括:终端将第二请求发送至目标应用服务器,其中,第二请求中的应用账户和密码用于校验终端的合法性,第二请求中的第一验证码信息和第二验证码信息用于被目标应用服务器发送至第二服务器。

通过上述实施例,可以实现验证服务器的跨区域部署,并且用户在验证时,准确、 安全没有时延,且可以保证验证请求无法被回放。

根据上述实施例,可以将请求获取的加密的第一验证码信息保存在cookie中。但是由于一个域名下的多个页面共用一个cookie,若用户在终端上同时在多个页面请求验证码,cookie中只能写入最后获取的加密的第一验证码信息,为了保证多个页面都可以获取到加密的第一验证码信息,终端在接收到加密的第一验证码信息之后,可以将其保存在hidden域(即页面的隐藏域)中。

另外,cookie的大小有限制,若一个域名下的cookie过多,可能导致cookie的丢失,在终端获取到加密的第一验证码信息之后,将加密的第一验证码信息保存在隐藏域中也可以避免信息丢失的问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

实施例4

根据本申请实施例,还提供了一种用于实施上述验证码的验证方法的验证码的验证系统,如图9所示,该验证码的验证系统包括:

第一服务器91,用于接收终端发送的第一请求,其中,第一请求用于请求获取验证码,并响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;第一服务器还用于至少将验证码载体和加密的第一验证码信息返回至终端;

第二服务器93,用于接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息;第二服务器还用于响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器 不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片,也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

具体地,该方案中的第一服务器,还用于在第一服务器至少将验证码载体和加密的第一验证码信息返回至终端的同时,将加密的会话信息发送至终端;第二服务器,还用于在接收到终端的第二请求之后,利用第二请求中的加密的会话信息和加密的第 一验证码信息判断第二请求是否为重放请求。

实施例5

根据本申请实施例,还提供了一种用于实施上述验证码的验证方法的验证码的验证装置,如图10所示,设置在第一服务器上,该装置包括:

第一接收单元101,用于接收终端发送的第一请求,其中,第一请求用于请求获取验证码;

第一响应单元103,用于响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;

第一返回单元105,用于第一服务器至少将验证码载体和加密的第一验证码信息返回至终端,其中,验证码载体用于指示终端输入第二验证码信息,加密的第一验证码信息用于第二服务器对终端发送的第二请求中的第二验证信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

本申请还提供了一种验证码的验证装置,设置在第二服务器上,该装置可以包括如图11所示的:第二接收单元111,用于接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,加密的第一验证码信息为第一服务器发送给终端的,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息,验证码载体与第一验证码信息相对应;第二响应单元113,用于第二服务器响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码 信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

本申请还提供了一种设置在终端上的验证码的验证装置,该装置包括如图12所示的:第一发送单元121,用于向第一服务器发送第一请求,其中,第一请求用于请求获取验证码;第三接收单元123,用于接收第一服务器响应于第一请求,返回的响应信息,其中,响应信息中至少包括验证码载体和验证码载体携带的第一验证码信息;获取单元125,用于基于验证码载体获取第二验证码信息;生成单元127,用于生成第二请求,第二请求中至少包括第二验证码信息和加密的第一验证码信息;第二发送单元129,用于将第二请求发送至第二服务器,其中,第二请求用于利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片,也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基 于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

需要说明的是,上述单元或模块与对应的实施例中的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例提供的计算机终端中,可以通过软件实现,也可以通过硬件实现。

实施例6

本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备(如上述的终端、第一服务器或第二服务器)。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,图13是根据本申请实施例的一种计算机终端的结构框图。如图13所示,该计算机终端a可以包括:一个或多个(图中仅示出一个)处理器1301、存储器1303、以及传输装置1305。

其中,存储器1303可用于存储软件程序以及模块,如本申请实施例中的验证码的验证方法和装置对应的程序指令/模块,处理器1301通过运行存储在存储器1303内的 软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的验证码的验证方法。存储器1303可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1303可进一步包括相对于处理器1301远程设置的存储器,这些远程存储器可以通过网络连接至终端a。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1305用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1305包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1305为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1303用于存储预设动作条件和预设权限用户的信息、以及应用程序。

在本实施例中,上述计算机终端可以执行验证码的验证方法中以下步骤:

步骤s1:第一服务器接收终端发送的第一请求,其中,第一请求用于请求获取验证码;

步骤s2:第一服务器响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;

步骤s3:第一服务器至少将验证码载体和加密的第一验证码信息返回至终端,其中,验证码载体用于指示终端输入第二验证码信息,加密的第一验证码信息用于第二服务器对终端发送的第二请求中的第二验证信息进行验证。

上述计算机终端还可以执行验证码的验证方法中以下步骤:

步骤s4:第二服务器接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,加密的第一验证码信息为第一服务器发送给终端的,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息,验证码载体与第一验证码信息相对应;

步骤s5:第二服务器响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

上述处理器还可以执行验证码的验证方法中以下步骤:

步骤s6:终端向第一服务器发送第一请求,其中,第一请求用于请求获取验证码;

步骤s7:终端接收第一服务器响应于第一请求返回的响应信息,其中,响应信息中至少包括验证码载体和加密的第一验证码信息,该第一验证码信息为验证码载体中携带的信息;

步骤s8:终端基于验证码载体获取第二验证码信息;

步骤s9:终端生成第二请求,第二请求中至少包括第二验证码信息和加密的第一验证码信息;

步骤s10:终端将第二请求发送至第二服务器,其中,第二请求用于利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片,也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器 的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

本领域普通技术人员可以理解,图13所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图13其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例7

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的验证码的验证方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

步骤s1:第一服务器接收终端发送的第一请求,其中,第一请求用于请求获取验证码;

步骤s2:第一服务器响应于第一请求,生成响应信息,其中,响应信息中至少包括验证码载体和验证码载体对应的第一验证码信息;

步骤s3:第一服务器至少将验证码载体和加密的第一验证码信息返回至终端,其中,验证码载体用于指示终端输入第二验证码信息,加密的第一验证码信息用于第二服务器对终端发送的第二请求中的第二验证信息进行验证。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

步骤s4:第二服务器接收终端发送的第二请求,其中,第二请求中携带有加密的第一验证码信息和第二验证码信息,第二请求用于请求利用加密的第一验证码信息对第二验证码信息进行验证,加密的第一验证码信息为第一服务器发送给终端的,第二验证码信息为终端基于第一服务器发送的验证码载体而输入的信息,验证码载体与第一验证码信息相对应;

步骤s5:第二服务器响应于第二请求,利用加密的第一验证码信息对第二验证码信息进行验证。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

步骤s6:终端向第一服务器发送第一请求,其中,第一请求用于请求获取验证码;

步骤s7:终端接收第一服务器响应于第一请求返回的响应信息,其中,响应信息中至少包括验证码载体和加密的第一验证码信息;

步骤s8:终端基于验证码载体获取第二验证码信息;

步骤s9:终端生成第二请求,第二请求中至少包括第二验证码信息和加密的第一验证码信息;

步骤s10:终端将第二请求发送至第二服务器,其中,第二请求用于利用加密的第一验证码信息对第二验证码信息进行验证。

采用本申请实施例,第一服务器在将验证码载体发送至终端的时候,同时将加密的第一验证码信息发送至终端,终端在请求对输入的第二验证码信息进行验证时,一并将加密的第一验证码信息发送至第二服务器,服务器可以基于该加密的第一验证码信息对第二验证码信息进行验证。在上述实施例中,即便是第一服务器和第二服务器不是同一服务器的情况下,第二服务器无需从第一服务器获取第一验证码信息,第二服务器可以直接使用终端发送的第一验证码信息对第二验证码信息进行验证,没有两个服务器之间的信息交互,从而在第一服务器和第二服务器跨区域验证时,也不存在 时延,可以快速实现对验证码的验证,解决了现有技术中跨区域验证时存在验证时延的问题。

上述实施例中的验证码载体可以为验证码图片,即携带有验证码信息的图片,如,第一服务器可以先生成第一验证码信息的字符,并对该第一验证码信息的字符随机扭转,将扭转后的字符写在画布上,生成图片,该图片即为上述的携带有验证码的图片,也即为验证码载体。

上述实施例中的第一验证码信息可以为该验证码载体上携带的字符信息,如一个验证码图片上携带的信息为“1234”,则该第一验证码信息为“1234”。

具体地,在上述实施例中,终端在请求访问目标应用服务器(如登录请求、下单请求或者注册请求)之后,接收到访问第一服务器的url地址(即验证资源地址),基于该url生成第一请求,第一服务器接收到终端发送的第一请求之后,第一服务器响应于第一请求,生成至少包括验证码载体和验证码载体对应的第一验证码信息的响应信息,在生成该响应信息之后,将该响应信息发送至终端,该终端接收到第一服务器的响应信息之后,将该响应信息中的验证码载体显示在终端的屏幕上,用户可以通过操作终端屏幕上的输入框输入第二验证码信息。终端获取该第二验证码信息之后,将加密的第一验证码信息和输入的第二验证码信息,以及应用账户和密码一并发送至应用程序,该应用程序使用应用账户和密码对终端进行身份验证,该应用程序还将第二验证码信息和加密的第一验证码信息发送至第二服务器,第二服务器使用该第一验证码信息对第二验证码信息进行验证。

其中,该第二服务器基于应用账户确定,如目标应用服务器判断出该应用账户属于上海的账户,则将该验证请求(即第二请求)发送至部署在上海的第二服务器。

上述实施例中,要求的第一验证码信息以加密方式存放在用户端(即上述实施例中的终端),并在终端请求验证时,同时将加密的第一验证码信息和输入的第二验证码信息一并提交到服务器端,既达到了数据保密效果,又解决了跨地域kv服务器数据同步时延带来的风险,实现跨地域部署的验证码系统。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分, 仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

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

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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