基于redis的数字验证码的获取方法技术

技术编号:16367223 阅读:32 留言:0更新日期:2017-10-10 23:42
本发明专利技术公开了一种基于redis的数字验证码的获取方法,包括:服务器获取预设时间内的用户数量;根据用户数量利用随机函数生成包含第一数量个数字验证码的第一数组,第一数量个数字验证码按照第一顺序在第一数组中进行排列;按照预设方式改变第一数量个数字验证码在第一数组中的排列顺序,生成第二数组,第一数量个数字验证码按照第二顺序在第二数组中进行排列;将第二数组存储在redis链表中;接收第一终端发送的验证码获取请求,验证码获取请求中包含第二终端ID;从redis链表中调用第二数组中的第一数字验证码发送给第二终端,第一数字验证码在redis链表中顺序排在最后位置;第二终端将第一数字验证码发送给第一终端。

Acquisition method of digital verification code based on redis

The invention discloses a method to obtain the redis digital verification code which is based on a server to get the number of users within a preset time; according to the number of users using the random function to generate a digital verification code containing the first number of the first array, the first number of digital verification code in the first order in the first array are arranged according to a preset mode; change the first number of digital verification code in the first array in order to generate second array, first number of digital verification code in accordance with the second order in the second array are arranged; the second group is stored in the redis list; receiving a first terminal to send verification code acquisition request, verification code acquisition request contains second terminal ID from the first digital array; call second redis list in the verification code sent to the second terminal, the first digital verification code in red The is list is arranged in the last position in sequence, and the second terminal transmits the first digital verification code to the first terminal.

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

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

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

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

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

1