验证码的校验方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种验证码的校验方法及装置。
背景技术
随着互联网技术的迅猛发展,网络信息安全问题日益严峻,用户用于网上支付、交易等活动的用户账号容易被网上黑客、木马、病毒等恶意程序窃取,恶意程序严重威胁用户上网的安全。
目前在用户进行交易或者登录账号的过程中,服务器会在用户登录或者交易的过程中,为用户提供一个具有时间有效性的验证码,用户需要在有效时间内向服务器发送对应的验证码,以使服务器对对应的验证码进行校验,进而可验证使用者的合法性。
然而,现有的验证码校验方式存在的问题是,若用户在验证码即将过期时发送对应的验证码,例如,验证码的有效时间为10秒,用户在有效时间段的第9秒发送验证码,由于网络传输存在一定的时间延迟,服务器未在验证码的有效时间内接收到客户端发送的验证码,服务器中保存的验证码被删除,待服务器接收到客户端发送的正确的验证码时,无法完成对当前校验码的校验,当前校验码校验不通过,需要重新校验,对应的服务器需要重新产生并发送验证码,重新校验造成网络流量和资源的浪费,也影响用户的验证体验。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种验证码的校验方法,该方法避免了用户在客户端的有效时间内输入验证码而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
本申请的第二个目的在于提出一种验证码的校验装置。
为达上述目的,本申请第一方面实施例提出了一种信息的校验方法,包括:接收客户端发送的第一验证码;根据预先保存的至少两条第二验证码对所述第一验证码进行校验;以及判断所述第一验证码与所述至少两条第二验证码中的至少一条是否一致,若一致,则通过校验。
本申请实施例的信息的校验方法,接收客户端发送的第一验证码,并根据预先保存的至少两条第二验证码对第一验证码进行校验;以及判断第一验证码与至少两条第二验证码中的至少一条是否一致,若一致,则通过校验,由此可见,该实施例通过预先保存的至少两条验证码对接收到的验证码进行校验,避免了用户在客户端的有效时间内输入验证码而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
为达上述目的,本申请第二方面实施例提出了一种信息的校验装置,包括:接收模块,用于接收客户端发送的第一验证码;校验模块,用于根据预先保存的至少两条第二验证码对所述第一验证码进行校验;以及处理模块,用于判断所述第一验证码与所述至少两条第二验证码中的至少一条是否一致,若一致,则通过校验。
本申请实施例的信息的校验装置,通过接收模块接收客户端发送的第一验证码,然后校验模块根据预先保存的至少两条第二验证码对第一验证码进行校验,以及处理模块判断第一验证码与至少两条第二验证码中的至少一条是否一致,若一致,则通过校验,由此可见,该实施例通过预先保存的至少两条验证码对接收到的验证码进行校验,避免了用户在客户端的有效时间内输入验证码而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
附图说明
图1a是本申请一个实施例的验证码的校验方法的流程图。
图1b是本申请一个实施例的验证码的校验方法的流程图。
图2是本申请另一个实施例的验证码的校验方法的流程图。
图3是本申请一个实施例的验证码的校验装置的结构示意图。
图4是本申请另一个实施例的验证码的校验装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的验证码的校验方法及装置。
图1a是本申请一个实施例的验证码的校验方法的流程图。
如图1a所示,该验证码的校验方法包括:
S101a,接收客户端发送的第一验证码。
在该实施例中,在执行步骤S101a之前,还可以向客户端发送至少两条第二验证码。
其中,上述第一验证码至少部分根据第二验证码中的一条生成。上述客户端位于终端中,上述终端可以为智能手机、平板电脑、个人计算机(PC)等具有各种操作系统的硬件设备。
S102a,根据预先保存的至少两条第二验证码对第一验证码进行校验。
具体地,在接收到客户端发送的第一验证码后,服务端可通过预先建立的至少两条通道对第一验证码进行校验。
其中,预先建立的通道中对应保存预先生成的第二验证码,且预先建立的通道的数量等于预先生成的第二验证码的数量。
S103a,判断第一验证码与至少两条第二验证码中的至少一条是否一致,若一致,则通过校验。
在该实施例中,可判断第一验证码是否通过任意一条通道的校验,若通过任意一个通道的验证,则确认校验通过。
具体地,针对每个通道,可将当前通道中保存的验证码与接收的第一验证码进行比对,若二者的内容和时效均一致,则确认第一验证码通过当前通道的校验,若二者的内容或时效不一致,则确认第一验证码未通过当前通道的校验。
在该实施例中,当通道中保存的第二验证码过期时,可将已过期的第二验证码缓存至容器中,由于容器的容量有限,即容器仅能保存预定数量的验证码,故在保存过期的第二验证码的过程中,可先判断容器中的验证码个数是否达到预设阈值,若达到,则删除容器中的至少一个验证码。
例如,预设阈值为3个,在向容器中保存已过期的验证码d时,可先判断容器中已保存的验证码个数,假定容器中已保存了3个验证码,按照保存在容器中的时间先后顺序三个验证码分别为a、b、c,在保存过期的验证码d时,由于容器中的验证码个数已经达到预设阈值,此时,可将最先保存在容器中的验证码a删除,由此,可减少长期保存过期的验证码对服务器内存的占用,减少资源消耗。
另外,若接收到的第一验证码未通过所有通道的校验,即接收到的验证码与所用通道的验证码都不相同,则可查询包含预定数量的验证码的容器中是否存在接收到的第一验证码,并根据查询结果确认校验是否通过。
具体地,若容器中存在接收到的第一验证码,则根据第一验证码中携带的时间信息确定客户端从接收到发送验证码的时间差是否在对应验证码的时效内,若在,则确认校验通过,若不在,则确认校验失败。
例如,假定服务器预先建立的当前通道数为2个,服务器接收到客户端发送的具有时效性的验证码后,可与这2个通道中的验证码进行比较,若接收到的验证码与这两个通道中的任意一个的内容和时效均相同,则确认验证通过,若接收的验证码未通过所有通道的校验,则查询用于缓存通道中过期验证码的容器中是否保存对应的验证码,若包含对应的验证码,则根据验证码中携带的时间信息确定客户端从接收到发送验证码的时间差是否在对应验证码的时效内,即判断用户是否在客户端的有效时间内输入验证码,若确定用户在验证码的有效时间内输入验证码,则确定校验通过,若用户未在验证码的有效时间内输入验证码,则确定校验失败。
由此可见,该实施例在接收到客户端发送的验证码后,可通过并行的方式对接收到的验证码与预先建立的至少两条通道中的验证码进行比较,当接收到的验证码未通过所有通道的校验后,可查询包含预定数量验证码的容器中是否包含接收到的验证码,若包含,则确认校验通过,若不包含,则确认校验失败。由此,提供了一种验证码的校验方式,避免了用户在客户端的有效时间内输入验证码而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
本申请实施例的验证码的校验方法,接收客户端发送的第一验证码,并根据预先保存的至少两条第二验证码对第一验证码进行校验;以及判断第一验证码与至少两条第二验证码中的至少一条是否一致,若一致,则通过校验,由此可见,该实施例通过预先保存的至少两条验证码对接收到的验证码进行校验,避免了用户在客户端的有效时间内输入验证码而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
图1b是本申请另一个实施例的验证码的校验方法的流程图。
如图1b所示,该验证码的校验方法包括:
S101b,接收客户端发送的具有时效性的信息,并通过预先建立的至少一条通道对信息进行校验,其中,预先建立的通道中对应保存预先生成的信息,当通道中保存的信息过期时,将已过期的信息缓存至容器中。
在该实施例中,如图2所示,在步骤S101b之前,还可以包括S100b。
S100b,接收客户端发送的信息获取请求,根据信息获取请求从预先生成的至少一个信息中选择一个信息,并向客户端发送选择的信息。
例如,服务器中预先生成了2个验证码,在接收到客户端发送的信息获取请求后,可从保存预先生成的验证码的通道中任取一个验证码发送给客户端,并为通道的信息设置了一个与客户端相同的有效时间。
在该实施例中,服务端在接收客户端发送的具有时效性的信息后,针对每个通道,可将当前通道中保存的信息与接收的信息进行比对,若二者的内容和时效均一致,则确认信息通过当前通道的校验,若二者的内容或时效不一致,则确认信息未通过当前通道的校验。
其中,上述信息可以为包括验证码、密码和校验手势中的一种或几种。预先建立的通道的条数等于预先生成的信息的个数。上述客户端位于终端中,上述终端可以为智能手机、平板电脑、个人计算机(PC)等具有操作系统的硬件设备。
在本实施例中,当通道中保存的信息过期时,可将已过期的信息缓存至容器中,由于容器的容量有限,即容器仅能保存预定数量的信息,故在保存过期信息的过程中,可先判断容器中的信息个数是否达到预设阈值,若达到,则删除容器中的至少一个信息。
例如,预设阈值为3个,在向容器中保存已过期的信息d时,可先判断容器中已保存的信息个数,假定容器中已保存了3个信息,按照保存在容器中的时间先后顺序三个信息分别为a、b、c,在保存过期的信息d时,由于容器中的信息个数已经达到预设阈值,此时,可将最先保存在容器中的信息a删除,由此,可减少长期保存过期的信息对服务器内存的占用,减少资源消耗。
S102b,若信息通过任意一条通道的校验,则确认校验成功,若未通过所有通道的校验,则查询容器中是否存在接收到的信息,并根据查询结果确认校验是否成功。
具体地,在接到收到客户端的信息后,若接收到的信息未通过所有通道的校验,即接收到的信息与所用通道的信息都不相同,则可查询包含预定数量的信息的容器中是否存在接收到的信息,若容器中存在接收到的信息,则根据信息中携带的时间信息确定客户端从接收到发送信息的时间差是否在对应信息的时效内,若在,则确认校验成功,若不在,则确认校验失败。
例如,假定服务器预先建立的当前通道数为2个,服务器接收到客户端发送的具有时效性的验证码后,可与这2个通道中的验证码进行比较,若接收到的验证码与这两个通道中的任意一个的内容和时效均相同,则确认验证成功,若接收的信息未通过所有通道的校验,则查询用于缓存通道中过期信息的容器中是否保存对应的信息,若包含对应的信息,则根据信息中携带的时间信息确定客户端从接收到发送信息的时间差是否在对应信息的时效内,即判断用户是否在客户端的有效时间内输入验证码,若确定用户在验证码的有效时间内输入验证码,则确定校验通过,若用户未在验证码的有效时间内输入验证码,则确定校验失败。
由此可见,该实施例在接收到客户端发送的信息后,可通过并行的方式对接收到的信息与预先建立的至少一个通道中的内容和时效进行比较,当接收到的信息未通过所有通道的校验后,可查询包含预定数量信息的容器中是否包含接收到的信息,若包含,则确认校验成功,若不包含,则确认校验失败。由此,提供了一种信息的校验方式,避免了用户在客户端的有效时间内输入信息而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
本申请实施例的信息的校验方法,接收客户端发送的具有时效性的信息,并通过预先建立的至少一条通道对信息进行校验,其中,预先建立的通道中对应保存预先生成的信息,当通道中保存的信息过期时,将已过期的信息缓存至容器中;以及若信息通过任意一条通道的校验,则确认校验成功,若未通过所有通道的校验,则查询容器中是否存在接收到的信息,并根据查询结果确认校验是否成功,由此可见,该实施例通过预先建立的至少一条通道对信息进行校验,并在未通过所有通道校验的情况下,查询容器中是否存在接收到的信息以进一步完成校验,避免了用户在客户端的有效时间内输入信息而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
为了实现上述实施例,本申请还提出一种验证码的校验装置。
图3是本申请一个实施例的验证码的校验装置的结构示意图。
如图3所示,该验证码的校验装置包括接收模块31、校验模块32和处理模块33,其中:
接收模块31用于接收客户端发送的第一验证码;校验模块32用于根据预先保存的至少两条第二验证码对第一验证码进行校验;以及处理模块33用于判断第一验证码与至少两条第二验证码中的至少一条是否一致,若一致,则通过校验。
如图4,上述装置还可以包括发送模块30,该发送模块30用于在接收模块31接收客户端发送的第一验证码之前,向客户端发送至少两条第二验证码。
其中,上述第一验证码至少根据第二验证码中的一条生成。
上述校验模块32具体用于:通过预先建立的至少两条通道对第一验证码进行校验。
其中,预先建立的通道中对应保存预先生成的第二验证码,且预先建立的通道的数量等于预先生成的第二验证码的数量。
在该实施例中,上述处理模块33具体用于:判断第一验证码是否通过任意一条通道的校验。
具体地,针对每个通道,处理模块33可将当前通道中保存的验证码与接收的验证码进行比对,若二者的内容和时效均一致,则确认验证码通过当前通道的校验,若二者的内容或时效不一致,则确认验证码未通过当前通道的校验。
上述装置还可以包括缓存模块34,该缓存模块34用于当通道中保存的第二验证码过期时,将已过期的第二验证码缓存至容器中。
为了减少长期保存过期的验证码对服务器内存的占用,上述装置还可以包括删除模块35,该删除模块35用于判断容器中的验证码个数是否达到预设阈值,若达到,则删除容器中的至少一个验证码。
其中,上述预设阈值是系统中预先设置的。例如,预设阈值为4个。
例如,预设阈值为3个,在向容器中保存已过期的验证码d时,可先判断容器中已保存的验证码个数,假定容器中已保存了3个验证码,按照保存在容器中的时间先后顺序三个验证码分别为a、b、c,在保存过期的验证码d时,由于容器中的验证码个数已经达到预设阈值,此时,删除模块35可将最先保存在容器中的验证码a删除,然后缓存模块34保存已经过期的验证码d。由此,可减少长期保存过期的验证码对服务器内存的占用,减少资源消耗。
另外,在该实施例中,若第一验证码未通过所有通道的校验,则处理模块33还可以查询容器中是否存在接收到的第一验证码,并根据查询结果确认校验是否通过。
具体地,若容器中存在接收到的第一验证码,则处理模块33可根据第一验证码中携带的时间信息确定客户端从接收到发送第一验证码的时间差是否在第一验证码的时效内,若在,则确认校验通过,若不在,则确认校验失败。
需要说明的是,上述验证码的校验装置校验验证码的过程可参见图1或者图2以及对应的文字描述,此处不赘述。
本申请实施例的验证码的校验装置,通过接收模块接收客户端发送的第一验证码,然后校验模块根据预先保存的至少两条第二验证码对第一验证码进行校验,以及处理模块判断第一验证码与至少两条第二验证码中的至少一条是否一致,若一致,则通过校验,由此可见,该实施例通过预先保存的至少两条验证码对接收到的验证码进行校验,避免了用户在客户端的有效时间内输入验证码而不能通过校验,需要重新校验的情况发生,减少了网络流量和资源消耗,提高了用户的校验体验。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。