基于redis的数字验证码的获取系统技术方案

技术编号:16531606 阅读:32 留言:0更新日期:2017-11-10 00:20
本发明专利技术公开了一种基于redis的数字验证码的获取系统,包括:服务器、第一终端和第二终端;服务器包含获取模块、生成模块、排序模块、存储模块、接收模块和调用模块;获取模块用于获取预设时间内的用户数量;生成模块用于生成包含第一数量个数字验证码的第一数组;排序模块用于按照预设方式改变第一数量个数字验证码在第一数组中的排列顺序,生成第二数组;存储模块用于将第二数组存储在redis链表中;接收模块用于接收第一终端发送的验证码获取请求,验证码获取请求中包含第二终端ID;调用模块用于从redis链表中调用第二数组中的第一数字验证码发送给第二终端;第一终端用于向服务器发送验证码获取请求;第二终端用于将第一数字验证码发送给第一终端。

Acquisition system of digital verification code based on redis

The invention discloses a system for redis digital verification code which is based on a server, a first terminal and a second terminal; the server includes acquisition module, module, scheduling module, storage module, a receiving module and a call module; acquisition module is used for obtaining the number of preset time of the user; generating module for generating comprises a first the number of digital verification code first array; sorting module is used to change the way according to the preset number of the first digital verification code in the first array in order to generate second array; storage module for second array is stored in the redis list; receiving module for receiving a first terminal to send verification code acquisition request, verification code acquisition request contains second terminal ID; call for module from the redis list to call the second array of the first digital verification code. The second terminal is used to send the authentication code to the server to obtain the request; and the second terminal is used to send the first digit authentication code to the first terminal.

【技术实现步骤摘要】
基于redis的数字验证码的获取系统
本专利技术涉及数据处理
,尤其涉及一种基于redis的数字验证码的获取系统。
技术介绍
随着互联网技术的蓬勃发展,用户越来越普遍地通过终端设备接入互联网获取各种资讯信息,办理各种业务等。为了保证信息的安全性,经常需要通过验证码的方式对操作进行验证。现有技术中,用户通过移动终端获取数字验证码,具体操作步骤如下:1、用户填写手机号码之后,点击获取验证码,服务器生成一个随机的数字序列作为数字验证码,并临时记录下来,同时将短信内容和用户的手机号码通过验证码短信接口提交到服务商。2、服务商将短信即时发送到用户的手机,用户收到短信后,填写数字验证码,并发送到服务器,服务器将用户填写的数字验证码和服务器生成的数字序列进行比对,如果一致,则验证成功。现有技术中的数字验证码的获取方法存在以下问题:1、服务器在每次接收到用户获取数字验证码的请求时,都需要重新随机生成固定位数的数字验证码,增加了工作量。2、不支持用户在规定时间内多次获取验证码,如果验证码误删除,则需要等待时间过期才能重新获取验证码,比较浪费时间。3、由于验证码是随机生成的,因此不能保证用户获取的验证码在规定时间内的唯一性,从而影响安全性。
技术实现思路
本专利技术提供了一种基于redis的数字验证码的获取系统,以解决现有技术中存在的问题。本专利技术实施例提供了一种基于redis的数字验证码的获取系统,包括:服务器、第一终端和第二终端;所述服务器包含获取模块、生成模块、排序模块、存储模块、接收模块和调用模块;所述获取模块用于,获取预设时间内的用户数量;所述生成模块用于,根据所述用户数量利用随机函数生成包含第一数量个数字验证码的第一数组,所述第一数量个数字验证码按照第一顺序在所述第一数组中进行排列;所述排序模块用于,按照预设方式改变所述第一数量个数字验证码在所述第一数组中的排列顺序,生成第二数组,所述第一数量个数字验证码按照第二顺序在所述第二数组中进行排列;所述存储模块用于,将所述第二数组存储在redis链表中;所述接收模块用于,接收第一终端发送的验证码获取请求,所述验证码获取请求中包含第二终端ID;所述调用模块用于,从所述redis链表中调用所述第二数组中的第一数字验证码发送给所述第二终端,所述第一数字验证码在所述redis链表中顺序排在最后位置;所述第一终端用于,向所述服务器发送验证码获取请求;所述第二终端用于,将所述第一数字验证码发送给所述第一终端。进一步的,所述服务器还包括添加模块;所述添加模块用于,将所述第一数字验证码添加在所述redis链表中的第一位置。进一步的,所述添加模块具体用于:利用rpoplpush函数将第一数字验证码添加在所述redis链表中的第一位置。进一步的,所述第一顺序具体包括:按照所述数字验证码的数值由小到大的顺序。进一步的,所述排序模块具体用于:利用shuffle函数将按照第一顺序排列的数字验证码处理成按照第二顺序排列的数字验证码。进一步的,所述调用模块具体用于:利用rpop函数从所述第二数组中调用第一数字验证码,并生成发送信息发送给所述第二终端。进一步的,所述第一终端还用于:向所述服务器发送登录信息,以使所述服务器对所述登录信息进行验证。本专利技术实施例提供的基于redis的数字验证码的获取系统,服务器预先生成数字验证码,且数字码长久有效;用户可以获取多个数字验证码,避免因数字码丢失,再次获取的时间等待;数字验证码根据预设时间内的用户数量生成,数量足够多,保证了在规定时间内不同用户获取数字码的唯一性。附图说明图1为本专利技术实施例提供的基于redis的数字验证码的获取系统的示意图。图2为本专利技术提供的基于redis的数字验证码的获取系统的具体工作过程流程图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部份实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。本专利技术技术方案中的第一终端包括具有处理和显示能力的终端设备,例如,智能电视等;第二终端包括具有处理和显示能力的移动终端设备,例如,智能手机等。下面结合图1所示的基于redis的数字验证码的获取系统示意图,对本专利技术实施例提供的基于redis的数字验证码的获取系统进行详细说明。如图1所示,本专利技术提供的基于redis的数字验证码的获取系统主要包括:服务器1、第一终端2和第二终端3;服务器1包含获取模块11、生成模块12、排序模块13、存储模块14、接收模块15和调用模块16;获取模块11用于,获取预设时间内的用户数量;生成模块12用于,根据用户数量利用随机函数生成包含第一数量个数字验证码的第一数组,第一数量个数字验证码按照第一顺序在第一数组中进行排列;排序模块13用于,按照预设方式改变第一数量个数字验证码在第一数组中的排列顺序,生成第二数组,第一数量个数字验证码按照第二顺序在第二数组中进行排列。其中,第一顺序具体包括:按照数字验证码的数值由小到大的顺序。具体的,排序模块13利用shuffle函数将按照第一顺序排列的数字验证码处理成按照第二顺序排列的数字验证码。存储模块14用于,将第二数组存储在redis链表中;接收模块15用于,接收第一终端发送的验证码获取请求,验证码获取请求中包含第二终端ID;调用模块16用于,从redis链表中调用第二数组中的第一数字验证码发送给第二终端,第一数字验证码在redis链表中顺序排在最后位置;具体的,利用rpop函数从第二数组中调用第一数字验证码,并生成发送信息发送给第二终端。第一终端2用于,向服务器发送验证码获取请求。另外,第一终端2还用于:向服务器1发送登录信息,以使服务器1对登录信息进行验证。第二终端3用于,将第一数字验证码发送给第一终端。另外,服务器1还包括添加模块17;添加模块17用于,将第一数字验证码添加在redis链表中的第一位置。具体的,利用rpoplpush函数将第一数字验证码添加在redis链表中的第一位置。图2为本专利技术提供的基于redis的数字验证码的获取系统的具体工作过程流程图。如图2所示,包括如下步骤:步骤201,服务器获取预设时间内的用户数量。可以在服务器内根据业务量预先设置一定时间内的有获取验证码需求的用户终端的数量。例如,可以预设在5分钟内用户终端的数量为70000。步骤202,根据用户数量利用随机函数生成包含第一数量个数字验证码的第一数组。其中,第一数量个数字验证码按照第一顺序在第一数组中进行排列。第一顺序具体包括按照数字验证码的数值由小到大的顺序。第一数量为服务器生成的数字验证码的数量,该数量与预设的一定时间内的用户数量相关。在一个具体的实施例中,根据预设的一定时间内的用户数量,利用超级文本预处理语言(HypertextPreprocessor,PHP)的rang函数生成100000-999999之间的包含89999条数字验证码的数组,89999条数字验证码在数组中按照由小到大的顺序进行排列。步骤203,按照预设方式改变第一数量个数字验证码在第一数组中的排列顺序,生成第二数组。其中,第一数量个数字验证码按照第本文档来自技高网...
基于redis的数字验证码的获取系统

【技术保护点】
一种基于redis的数字验证码的获取系统,其特征在于,所述系统包括:服务器、第一终端和第二终端;所述服务器包含获取模块、生成模块、排序模块、存储模块、接收模块和调用模块;所述获取模块用于,获取预设时间内的用户数量;所述生成模块用于,根据所述用户数量利用随机函数生成包含第一数量个数字验证码的第一数组,所述第一数量个数字验证码按照第一顺序在所述第一数组中进行排列;所述排序模块用于,按照预设方式改变所述第一数量个数字验证码在所述第一数组中的排列顺序,生成第二数组,所述第一数量个数字验证码按照第二顺序在所述第二数组中进行排列;所述存储模块用于,将所述第二数组存储在redis链表中;所述接收模块用于,接收第一终端发送的验证码获取请求,所述验证码获取请求中包含第二终端ID;所述调用模块用于,从所述redis链表中调用所述第二数组中的第一数字验证码发送给所述第二终端,所述第一数字验证码在所述redis链表中顺序排在最后位置;所述第一终端用于,向所述服务器发送验证码获取请求;所述第二终端用于,将所述第一数字验证码发送给所述第一终端。

【技术特征摘要】
1.一种基于redis的数字验证码的获取系统,其特征在于,所述系统包括:服务器、第一终端和第二终端;所述服务器包含获取模块、生成模块、排序模块、存储模块、接收模块和调用模块;所述获取模块用于,获取预设时间内的用户数量;所述生成模块用于,根据所述用户数量利用随机函数生成包含第一数量个数字验证码的第一数组,所述第一数量个数字验证码按照第一顺序在所述第一数组中进行排列;所述排序模块用于,按照预设方式改变所述第一数量个数字验证码在所述第一数组中的排列顺序,生成第二数组,所述第一数量个数字验证码按照第二顺序在所述第二数组中进行排列;所述存储模块用于,将所述第二数组存储在redis链表中;所述接收模块用于,接收第一终端发送的验证码获取请求,所述验证码获取请求中包含第二终端ID;所述调用模块用于,从所述redis链表中调用所述第二数组中的第一数字验证码发送给所述第二终端,所述第一数字验证码在所述redis链表中顺序排在最后位置;所述第一终端用于,向所述服务器发送验证码获取请求;所述第二终端用于,将所述第一数字验证码发送给所述第一终端。2.根据权利要求1所述的基于redis...

【专利技术属性】
技术研发人员:曹义焦胜彪冯方方孙健刘斌付强
申请(专利权)人:环球智达科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1