CN116841755B - 验证码信息处理方法、装置、电子设备及存储介质 - Google Patents
验证码信息处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116841755B CN116841755B CN202311122274.3A CN202311122274A CN116841755B CN 116841755 B CN116841755 B CN 116841755B CN 202311122274 A CN202311122274 A CN 202311122274A CN 116841755 B CN116841755 B CN 116841755B
- Authority
- CN
- China
- Prior art keywords
- verification code
- code information
- thread
- ith
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 382
- 230000010365 information processing Effects 0.000 title claims abstract description 35
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000004622 sleep time Effects 0.000 claims description 76
- 238000012545 processing Methods 0.000 claims description 47
- 230000005059 dormancy Effects 0.000 claims description 33
- 238000005259 measurement Methods 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004617 sleep duration Effects 0.000 claims description 13
- 239000012634 fragment Substances 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000005303 weighing Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种验证码信息处理方法、装置、电子设备及存储介质。该方法包括:在当前时间片,通过第i个生成线程生成第一验证码信息,并写入第一内存池;若在当前时间片中从终端设备接收到验证码服务,响应验证码服务,通过第i个服务线程,从第二内存池中读取第二验证码信息,将第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息;从终端设备接收输入的针对第二验证码信息的待验证信息;对待验证信息进行时间有效性验证;若通过时间有效性验证,则基于待验证信息,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除;基于第二验证码信息,对第一待验证信息进行验证,并向终端设备发送验证结果。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种验证码信息处理方法、装置、电子设备及存储介质。
背景技术
目前,针对验证码信息处理,特别是当生成的验证码信息涉及背景图像时,复杂的图像处理步骤会造成中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)资源消耗,导致单个机器上的每秒验证码信息处理量为有限值,因此,在应对大量访问验证码的场景时,这种验证码信息处理方式会导致在验证码信息处理高峰期时的CPU和GPU负载过高,降低服务器处理验证码信息的性能。
发明内容
本申请实施例提供了一种验证码信息处理方法、装置、电子设备及存储介质,通过划分线程并提前生成验证码信息,使得在验证码信息处理高峰期的CPU和GPU负载均衡,提高服务器处理验证码信息的性能。
第一方面,本申请实施例提供一种验证码信息处理方法,该方法包括:
在当前时间片,通过第i个生成线程生成第一验证码信息;
将所述第一验证码信息写入与所述第i个生成线程对应的第一内存池;
若在所述当前时间片中从终端设备接收到第一验证码服务,响应所述第一验证码服务,通过与所述第i个生成线程对应的第i个服务线程,从与所述第i个服务线程对应的第二内存池中读取第二验证码信息,将所述第二内存池的所述第二验证码信息缓存到数据库,并向所述终端设备发送所述第二验证码信息;
从所述终端设备接收用户输入的针对所述第二验证码信息的第一待验证信息;
对所述第一待验证信息进行时间有效性验证;
若通过时间有效性验证,则基于所述第一待验证信息,从所述数据库中读取所述第二验证码信息,并将所述第二验证码信息从所述数据库中删除;
基于所述第二验证码信息,对所述第一待验证信息进行验证,并向所述终端设备发送验证结果。
第二方面,本申请实施例提供一种验证码信息处理装置,该装置包括:收发单元和处理单元;
所述处理单元,用于在当前时间片,通过第i个生成线程生成第一验证码信息;
所述处理单元,用于将所述第一验证码信息写入与所述第i个生成线程对应的第一内存池;
所述处理单元,用于若在所述当前时间片中从终端设备接收到第一验证码服务,响应所述第一验证码服务,通过与所述第i个生成线程对应的第i个服务线程,从与所述第i个服务线程对应的第二内存池中读取第二验证码信息,将所述第二内存池的所述第二验证码信息缓存到数据库,并向所述终端设备发送所述第二验证码信息;
所述收发单元,用于从所述终端设备接收用户输入的针对所述第二验证码信息的第一待验证信息;
所述处理单元,用于对所述第一待验证信息进行时间有效性验证;
所述处理单元,用于若通过时间有效性验证,则基于所述第一待验证信息,从所述数据库中读取所述第二验证码信息,并将所述第二验证码信息从所述数据库中删除;
所述处理单元,用于基于所述第二验证码信息,对所述第一待验证信息进行验证,并向所述终端设备发送验证结果。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。
实施本申请实施例,具有如下有益效果:
可以看出,在本申请实施例中,将服务器划分为多个生成线程和多个服务线程,并且生成线程和服务线程一一对应。在当前时间片,通过第i个生成线程生成第一验证码信息;通过划分线程并提前生成验证码信息,使得在验证码信息处理高峰期的CPU和GPU负载均衡,提高服务器处理验证码信息的性能。
示例性的,将第一验证码信息写入与第i个生成线程对应的第一内存池;若在当前时间片中从终端设备接收到第一验证码服务,响应第一验证码服务,通过与第i个生成线程对应的第i个服务线程,从与第i个服务线程对应的第二内存池中读取第二验证码信息,将第二内存池的第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息,其中,第二验证码信息为历史生成的验证码信息;可以看出,在同一时间片内,验证码信息的写入和读取是针对不同的内存池的,内存池的资源锁是没有读写竞争锁的访问,这种验证码信息的读写方式可以提高验证码信息处理效率。
进一步的,终端设备接收用户输入的针对第二验证码信息的第一待验证信息;对第一待验证信息进行时间有效性验证;若通过时间有效性验证,则基于第一待验证信息,从数据库读取第二验证码信息,并将第二验证码信息从数据库中删除;基于第二验证码信息,对第一待验证信息进行验证,并向终端设备发送验证结果。可以看出,若没有通过时间有效性验证,则不对第一待验证信息进行验证,可以拦截一部分过期的待验证信息,减少存储层的访问压力。在对第一待验证信息进行验证时,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除后再对第一待验证信息进行验证,这种验证方式可以避免用户对同一个验证码信息重复发起验证,避免验证码系统发生漏洞。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种验证码信息处理系统的示意图;
图2为本申请实施例提供的一种验证码信息处理方法的流程示意图;
图3为本申请实施例提供的一种时间有效性的验证方法流程示意图;
图4为本申请实施例提供的一种对待验证信息进行验证的方法流程示意图;
图5为本申请实施例提供的一种验证码信息处理系统的交互图;
图6为本申请实施例提供的一种验证码信息处理装置的功能单元组成框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了便于理解本申请的技术方案,首先对本申请涉及到的相关技术和定义进行解释和说明。
资源锁:资源锁是一种同步工具,它可以保证在任意时刻,只有一个程序或者线程可以对某个资源进行操作,而其他的程序或者线程必须等待锁被释放后才能继续访问。这样就可以确保数据的完整性和一致性。
内存池:内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是,使得内存分配、使用效率和存储性能得到提升。
线程:操作系统能够进行运算调度的最小单元。它被包含在进程之中,是进程的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。例如,在本申请中,验证码信息处理系统启动后,该验证码信息处理系统就是一个进程,而在验证码信息处理系统中,验证码信息的生成、读取以及验证等操作,就是在不同的线程执行的。
格林威治时间:是指1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
应说明,本申请所适用的验证码服务场景包括但不限于:短信验证码、图像验证码、以及音视频验证码等,本申请对此不做限定。
进一步的,本方案中存在对应关系的生成线程与服务线程对应的内存池可以是一个或多个,为了便于描述,本方案对于技术的说明以存在对应关系的生成线程与服务线程对应的内存池为两个来说明,在存在对应关系的生成线程与服务线程对应的内存池可以是多个的情况下,验证码信息处理的方法与本申请类似,本申请在此不做过多描述。
参阅图1,图1为本申请实施例提供的一种验证码信息处理系统的示意图。验证码信息处理系统包括服务器100,生成线程101,服务线程102,内存池103以及数据库104,其中,生成线程101包括多个生成线程,如图1示出的第1个生成线程,第2个生成线程,……,第i个生成线程,……,第j个生成线程,……,第n个生成线程,服务线程102包括多个服务线程,如图1示出的第1个服务线程,第2个服务线程,……,第i个服务线程,……,第j个服务线程,……,第n个服务线程,且生成线程与服务线程一一对应。如图1示出的,第1个生成线程与第1个服务线程对应,第2个生成线程与第2个服务线程对应,第i个生成线程与第i个服务线程对应,第j个生成线程与第j个服务线程对应,第n个生成线程与第n个服务线程对应。存在对应关系的生成线程与服务线程对应相同的多个内存池,如图1示出的第i个生成线程和第i个服务线程对应第一内存池i0和第二内存池i1。其中,每一对存在对应关系的生成线程与服务线程都对应相同的多个内存池,本申请中主要以第i个生成线程和第i个服务线程对应第一内存池i0和第二内存池i1为例进行说明。
在当前时间片,服务器100通过第i个生成线程生成第一验证码信息,其中,第i个生成线程是当前时间片中,未处于休眠状态的多个生成线程中的任意一个,且在当前时间片内,未处于休眠状态的多个生成线程可以同时生成验证码信息;服务器100将第一验证码信息写入与第i个生成线程对应的第一内存池i0;若服务器100在当前时间片中从终端设备接收到第一验证码服务,响应第一验证码服务,通过与第i个生成线程对应的第i个服务线程,从与第i个服务线程对应的第二内存池i1中读取第二验证码信息,将第二内存池的第二验证码信息缓存到数据库104,并向终端设备发送第二验证码信息,其中,第二验证码信息为历史生成的验证码信息;服务器100通过第j个服务线程从终端设备接收用户输入的针对第二验证码信息的第一待验证信息;服务器100通过第j个服务线程对第一待验证信息进行时间有效性验证;若通过时间有效性验证,则基于第一待验证信息,服务器100通过第j个服务线程从数据库104中读取第二验证码信息,并将第二验证码信息从数据库104中删除;服务器100通过第j个服务线程基于第二验证码信息,对第一待验证信息进行验证,并向终端设备发送验证结果。其中,对待验证码信息的验证由服务线程102中的第j个服务线程进行,其中,第j个服务线程是服务线程102中的任意一个服务线程,数据库104可以是远程字典服务(Remote Dictionary Server,Redis)数据库、结构化查询语言(Structured QueryLanguage,SQL)数据库以及DB2数据库。本申请中主要以数据库为Redis数据库为例进行说明。
可以看出,在本申请实施例中,通过将服务器100划分为多个生成线程和多个服务线程,并且生成线程和服务线程一一对应。在当前时间片,服务器100通过第i个生成线程生成第一验证码信息;通过划分线程并提前生成验证码信息,使得在验证码信息处理高峰期的CPU和GPU负载均衡,提高服务器处理验证码信息的性能。并且,在同一时间片内,验证码信息的写入和读取是针对不同的内存池的,内存池的资源锁是没有读写竞争锁的访问,这种验证码信息的读写方式可以提高验证码信息处理效率。进一步的,在对第一待验证信息进行验证时,从数据库104中读取第二验证码信息,并将第二验证码信息从数据库104中删除后再对第一待验证信息进行验证,这种验证方式可以避免用户对同一个验证码信息重复发起验证,避免验证码系统发生漏洞。
参阅图2,图2为本申请实施例提供的一种验证码信息处理方法的流程示意图,该方法应用于图1示出的服务器100。该方法包括但不限于步骤S201-S207:
S201:在当前时间片,通过第i个生成线程生成第一验证码信息。
需要说明的是,在进行步骤S201之前,需要读取配置文件,并对数据进行初始化,举例说明,基于服务器使用的最大应用内存以及每个验证码信息所占用的内存大小,确定每台服务器可以存储的验证码信息的最大数量。基于验证码信息的有效时长和预设时间片,确定分片数量,对内存池按照分片数量进行划分。基于最大数量、分片数量以及多个生成线程的数量,确定每个内存池存储的验证码信息的数量上限,其中,每个内存池存储的验证码信息的数量上限为第二预设值。
进一步的,在进行步骤S201之前,还需要确定第一内存池中验证码信息的第二数量,若第二数量小于第二预设值,说明此时第一内存池中的验证码信息的数量还没有到达第一内存池的存储上限,仍然够继续写入验证码信息,因此,继续通过第i个生成线程生成第一验证码信息;若第二数量大于或等于第二预设值,说明此时第一内存池中的验证码信息的数量已经到达第一内存池的存储上限,已经无法将验证码信息写入第一内存池中,因此,第i个生成线程停止生成验证码信息。
示例性的,在当前时间片,若第二数量小于第二预设值,则通过第i个生成线程生成第一验证码信息,其中,第i个生成线程是当前时间片中,未处于休眠状态的多个生成线程中的任意一个,且在当前时间片内,未处于休眠状态的多个生成线程可以同时生成验证码信息,验证码信息包括验证码标识。
S202:将第一验证码信息写入与第i个生成线程对应的第一内存池。
应说明,在将第一验证码信息写入与第i个生成线程对应的第一内存池之前,需要确定写入的第一内存池是第i个生成线程对应的多个内存池中的哪一个。其中,本方案以存在对应关系的生成线程和服务线程对应的内存池为两个来说明。具体地,基于当前时间和预设时间片,确定当前时间片,其中,当前时间指第i个生成线程生成第一验证码信息的时间;基于预设时间片和验证码信息的有效时长,确定分片数量;基于当前时间片、分片数量、第一预设值、第i个生成线程以及多个服务线程的总数量,确定第一内存池。
当生成线程为第i个生成线程时,第i个生成线程写入的对应内存池Wi通过以下公式(1)确定:
其中,i为具体的生成线程编号,n为生成线程总数,i的取值范围为[1,n]。
在确定写入的第一内存池之后,将第一验证码信息写入与第i个生成线程对应的第一内存池。
S203:若在当前时间片中从终端设备接收到第一验证码服务,响应第一验证码服务,通过与第i个生成线程对应的第i个服务线程,从与第i个服务线程对应的第二内存池中读取第二验证码信息,将第二内存池的第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息。
示例性的,若在当前时间片中从终端设备接收到第一验证码服务,响应第一验证码服务,通过与第i个生成线程对应的第i个服务线程,从与第i个服务线程对应的第二内存池中读取第二验证码信息,将第二内存池的第二验证码信息缓存到数据库。应说明,第i个服务线程在第二内存池读取第二验证码信息之后,第二内存池中将不存在第二验证码信息。
当服务线程为第i个服务线程时,第i个服务线程读取的对应内存池Ri通过以下公式(2)确定:
其中,i为具体的服务线程编号,n为服务线程总数,i的取值范围为[1,n]。
具体地,在同一时间片,生成线程写入验证码信息的内存池和服务线程读取验证码信息的内存池是不同的内存池。举例说明,当i=1时,由第1个生成线程和其对应的第1个服务线程进行验证码信息的生成和读取,应说明,存在对应关系的第1个生成线程和第1个服务线程对应的内存池为第三内存池10和第四内存池11;举例说明,预设时间片为30秒,验证码信息的有效时长为1分钟,当前时间为2023年06月06日00时00分33秒,将当前时间转换为格林威治时间得到1685980833。基于预设时间片30秒与验证码信息的有效时长1分钟得到分片数量为2;基于当前时间1685980833和时间片30秒,得到当前时间片56199361,其中,当前时间片等于当前时间与时间片之间的比值。基于当前时间、时间片、分片数量、公式(1)以及公式(2),得到第1个生成线程写入的内存池Wi为存在对应关系的第1个生成线程和第1个服务线程对应的第三内存池10,第1个服务线程读取的内存池Ri为存在对应关系的第1个生成线程和第1个服务线程对应的第四内存池11。得到在当前时间片56199361内,第1个生成线程生成的第一验证码信息写入第三内存池10,服务器响应第一验证码服务,通过与第1个生成线程对应的第1个服务线程,从第四内存池11中读取第二验证码信息,将第四内存池11的第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息,其中,第三内存池10和第四内存池11是不同的内存池。
进一步的,若在当前时间片的下一个时间片中从终端设备接收到第二验证码服务,响应第二验证码服务,通过第i个服务线程,从第一内存池中读取第三验证码信息,并向终端设备发送第三验证码信息。其中,第三验证码信息为第一内存池中的第二历史验证码信息。沿用上述步骤S203的示例继续说明,在当前时间片56199361的下一个时间片56199362中,从终端设备接收到第二验证码服务,响应第二验证码服务,若通过第1个服务线程对验证码信息进行读取,则基于下一个时间片56199362,分片数量以及公式(2)得到第1个服务线程读取的内存池Ri为第三内存池10。需要说明的是,在下一个时间片56199362内,基于下一个时间片56199362,分片数量以及公式(1),得到第1个生成线程写入的内存池Wi为第四内存池11,第1个生成线程生成的验证码信息应写入第四内存池11。
可以看出,在下一个时间片内,读取的是对应第一内存池在历史时间片内写入的历史验证码信息,而不是在同一时间片内写入的验证码信息;并且相邻时间片内生成线程写入的内存池是不相同的,例如在当前时间片56199361中,第1个生成线程写入的内存池为第三内存池10,当前时间片56199361的下一个时间片56199362中,第1个生成线程写入的内存池为第四内存池11,在下一个时间片56199362中,第1个服务线程读取的内存池为第三内存池10,因此,可以避免在同一内存池中产生读写竞争。
需要说明的是,若第二内存池中不存在有效的验证码信息,则通过第i个服务线程生成第二验证码信息,将第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息。当第i个服务线程从第二内存池取出第二验证码信息失败时,表示第二内存池为空,已经不存在第一历史验证码信息,因此,此时需要实时生成第二验证码信息。
进一步的,向终端设备发送第二验证码信息,并且基于验证码信息的有效时长确定出第二验证码信息的过期时间,以便于对待验证信息进行时间有效性验证。
可以看出,在本申请实施例中,在同一时间片内,验证码信息的写入和读取是针对不同的内存池的,并且读取的是对应内存池在历史时间片内写入的历史验证码信息,内存池的资源锁是没有读写竞争锁的访问,这种验证码信息的读写方式可以提高验证码信息处理效率。
S204:从终端设备接收用户输入的针对第二验证码信息的第一待验证信息。
示例性的,从终端设备接收用户输入的针对第二验证码信息的第一待验证信息,其中,第一待验证信息包括验证码标识和待验证信息的输入时间,以便于对待验证信息进行时间有效性验证。
S205:对第一待验证信息进行时间有效性验证。
参阅图3,图3为本申请实施例提供的一种时间有效性的验证方法流程示意图。
具体地,基于第二验证码信息的过期时间和第一待验证信息的输入时间对第一待验证信息进行时间有效性验证。
S301:时间有效性验证开始。
S302:基于第二验证码信息的验证码标识读取第二验证码信息的过期时间。
S303:确定是否成功读取过期时间。
S304a:若是,读取第一待验证信息的输入时间。
S304b:若否,未通过时间有效性验证。
S305:确定过期时间是否大于或等于输入时间。
S306a:若是,通过时间有效性验证。
若过期时间大于或等于输入时间,则说明用户是在第二验证码信息的有效时长内输入的第一待验证信息。
S306b:若否,未通过时间有效性验证。
若过期时间小于输入时间,则说明用户未在第二验证码信息的有效时长内输入的第一待验证信息,该第一待验证信息属于超时的待验证信息,服务器不用对超时的待验证信息进行验证。
S307:时间有效性的验证结束。
可以看出,在本申请实施例中,对待验证信息进行验证时,先进行时间有效性验证,超时的待验证信息未通过时间有效性验证,直接向终端设备发送不匹配的验证结果,可以拦截过期的待验证请求,减少存储层的访问压力。
S206:若通过时间有效性验证,则基于第一待验证信息,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除。
具体地,若通过时间有效性验证,则基于第一待验证信息,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除。
可以看出,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除后再对第一待验证信息进行验证,这种验证方式可以避免用户对同一个验证码信息重复发起验证,避免验证码系统发生漏洞。
S207:基于第二验证码信息,对第一待验证信息进行验证,并向终端设备发送验证结果。
参阅图4,图4为本申请实施例提供的一种对待验证信息进行验证的方法流程示意图。
S401:开始对第一待验证信息的验证。
S402:是否成功读取第二验证码信息。
S403a:若是,确定第一待验证信息中的答案与第二验证码信息中的答案是否一致。
S403b:若否,不匹配。
S404a:若是,匹配通过。
应说明,步骤S404a和S404b是步骤S403a的下一步。
S404b:若否,不匹配。
S405:结束对第一待验证信息的验证。
可以看出,在本申请实施例中,通过将服务器划分为多个生成线程和多个服务线程,并且生成线程和服务线程一一对应。在当前时间片,服务器通过第i个生成线程生成第一验证码信息;通过划分线程并提前生成验证码信息,使得在验证码信息处理高峰期的CPU和GPU负载均衡,提高服务器处理验证码信息的性能。并且,在同一时间片内,验证码信息的写入和读取是针对不同的内存池的,内存池的资源锁是没有读写竞争锁的访问,这种验证码信息的读写方式可以提高验证码信息处理效率。进一步的,在对第一待验证信息进行验证时,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除后再对第一待验证信息进行验证,这种验证方式可以避免用户对同一个验证码信息重复发起验证,避免验证码系统发生漏洞。
在本申请的一个实施方式中,在将第一验证码信息写入与第i个生成线程对应的第一内存池之后,服务器还可以基于休眠时长的衡量因素,确定第i个生成线程的休眠时长,衡量因素包括以下至少一种:预设休眠时长、第一内存池中验证码信息的第一数量、服务器的硬件设备的第一利用率以及当前时间,其中,所述硬件设备包括以下至少一项:处理器、显卡、网络、磁盘以及内存。
若衡量因素包括预设休眠时长,基于预设休眠时长确定第一休眠时长,即直接为生成线程预设固定的休眠时长。
若衡量因素包括第一数量,基于验证码信息的数量与休眠时长的映射关系,确定与第一数量相对应的第二休眠时长。基于内存池中验证码信息的数量确定内存池在当前时间片内对应的生成线程的休眠时长,内存池中验证码信息的数量越多,其对应的生成线程的休眠时长就越长。举例说明,基于每个内存池的存储空间、生成线程的数量以及验证码信息的读取频率确定出内存池中验证码信息的数量与内存池对应的生成线程的休眠时长之间的映射关系,基于映射关系,确定与第一数量相对应的第二休眠时长。
若衡量因素包括第一利用率,基于硬件设备的利用率与休眠时长的映射关系,确定与第一利用率相对应的第三休眠时长。基于当前服务器的硬件设备的利用率确定内存池在当前时间片内对应的生成线程的休眠时长,在某一时间片内,硬件设备的利用率越高,生成线程的休眠时长越长。基于历史经验值确定出硬件设备的利用率与休眠时长的映射关系,确定与第一利用率相对应的第三休眠时长。
若衡量因素包括当前时间,基于时间与休眠时长的映射关系,确定与当前时间对应的第四休眠时长。用户对验证码服务的请求在一些具体场景下有明显的业务高峰期,举例说明,对于财经类软件或网站,用户通常会在上午九点半左右频繁登录财经类软件或网站,因为财经类信息的发文时间是上午九点半,因此,对于财经类软件或网站,上午九点半就是一个高峰期。基于验证码信息的不同应用场景,结合用户对验证码服务的请求频率确定出每一具体场景下的业务高峰期、业务高峰期对应的休眠时长以及非业务高峰期对应的休眠时长,若当前时间在业务高峰期内,则对应较长的休眠时长。
基于多个预设权重、第二休眠时长、第三休眠时长以及第四休眠时长确定第五休眠时长。基于上述衡量因素在不同情况下的重要程度,为第二休眠时长、第三休眠时长以及第四休眠时长预设不同的权重,举例说明,当CPU的利用率超过某一固定值时,表示此时的CPU正在超负荷运转,CPU超负荷运转会对整个验证码信息处理装置产生影响,因此,此时的第二休眠时长对应较高的权重。
基于第一休眠时长、第二休眠时长、第三休眠时长、第四休眠时长以及第五休眠时长中的任意一个确定第i个生成线程的休眠时长。应说明,第i个生成线程的休眠时长可以基于以上任意一种方法确定。
基于第i个生成线程的休眠时长,通过第i个生成线程执行休眠。
可以看出,在本申请实施例中,基于不同的衡量因素确定出第i个生成线程的休眠时长,基于提前生成的验证码信息,在验证码信息的数量能够保证正常读取的情况下,让生成线程休眠,可以降低CPU和GPU负荷,减小运行压力,提高验证码信息处理的效率。
参阅图5,图5为本申请实施例提供的一种验证码信息处理系统的交互图。
S501:第i个生成线程读取配置文件,并对数据进行初始化。
S502:第i个生成线程基于当前时间片、分片数量、第一预设值、第i个生成线程以及多个服务线程的总数量,确定第一内存池。
S503:第i个生成线程确定第一内存池中验证码信息的第二数量;若第二数量小于第二预设值,第i个生成线程开始生成验证码信息。
S504:在当前时间片,第i个生成线程生成第一验证码信息。
S505:第i个生成线程将第一验证码信息写入第一内存池。
S506:第i个生成线程基于第i个生成线程的休眠时长执行休眠。
应说明,第i个生成线程按照步骤S501-S506的顺序循环执行。
S507:在当前时间片,终端设备向第i个服务线程发送第一验证码服务。
S508:第i个服务线程从第二内存池中读取第二验证码信息。
应说明,在当前时间片中,第i个服务线程从第二内存池中读取第二验证码信息。
S509:第i个服务线程将第二验证码信息缓存到数据库。
应说明,数据库可以是远程字典服务(Remote Dictionary Server,Redis)数据库、结构化查询语言(Structured Query Language,SQL)数据库以及DB2数据库。本申请中主要以数据库为Redis数据库为例进行说明。
S510:第i个服务线程向终端设备发送第二验证码信息。
S511:第j个服务线程从终端设备接收用户输入地针对第二验证码信息的第一待验证信息。
应说明,第j个服务线程是多个服务线程中的任意一个。
S512:第j个服务线程对第一待验证信息进行时间有效性验证。
S513:若通过时间有效性验证,则第j个服务线程基于第一待验证信息,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除。
S514:第j个服务线程基于第二验证码信息,对第一待验证信息进行验证。
S515:第j个服务线程向终端设备发送验证结果。
应说明,步骤S501-S515的具体实现过程已经由步骤S201-S207具体说明,在此不做赘述。
参阅图6,图6为本申请实施例提供的一种验证码信息处理装置的功能单元组成框图。验证码信息处理装置600包括:收发单元601和处理单元602;
处理单元602,用于在当前时间片,通过第i个生成线程生成第一验证码信息;
处理单元602,用于将第一验证码信息写入与第i个生成线程对应的第一内存池;
处理单元602,用于若在当前时间片中从终端设备接收到第一验证码服务,响应第一验证码服务,通过与第i个生成线程对应的第i个服务线程,从与第i个服务线程对应的第二内存池中读取第二验证码信息,将第二内存池的第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息;
收发单元601,用于从终端设备接收用户输入的针对第二验证码信息的第一待验证信息;
处理单元602,用于对第一待验证信息进行时间有效性验证;
处理单元602,用于若通过时间有效性验证,则基于第一待验证信息,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除;
处理单元602,用于基于第二验证码信息,对第一待验证信息进行验证,并向终端设备发送验证结果。
在本申请的一个实施方式中,在将第一验证码信息写入与第i个生成线程对应的第一内存池之前,处理单元602,具体用于:
基于当前时间和预设时间片,确定当前时间片,其中,当前时间指第i个生成线程生成第一验证码信息的时间;
基于预设时间片和验证码信息的有效时长,确定分片数量;
基于当前时间片、分片数量、第一预设值、第i个生成线程以及多个服务线程的总数量,确定第一内存池。
在本申请的一个实施方式中,处理单元602,具体用于:
若在当前时间片的下一个时间片中从终端设备接收到第二验证码服务,响应第二验证码服务,通过第i个服务线程,从第一内存池中读取第三验证码信息,并向终端设备发送第三验证码信息。
从终端设备接收用户输入的针对第三验证码信息的第二待验证信息。
在本申请的一个实施方式中,处理单元602,具体用于:
若第二内存池中不存在有效的验证码信息,则通过第i个服务线程生成第二验证码信息,将第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息。
在本申请的一个实施方式中,在将第一验证码信息写入与第i个生成线程对应的第一内存池之后,处理单元602,具体用于:
基于休眠时长的衡量因素,确定第i个生成线程的休眠时长,衡量因素包括以下至少一种:预设休眠时长、第一内存池中验证码信息的第一数量、服务器的硬件设备的第一利用率以及当前时间,其中,所述硬件设备包括以下至少一项:处理器、显卡、网络、磁盘以及内存;
基于第i个生成线程的休眠时长,通过第i个生成线程执行休眠。
在本申请的一个实施方式中,在基于休眠时长的衡量因素,确定第i个生成线程的休眠时长方面,处理单元602,具体用于:
若衡量因素包括预设休眠时长,基于预设休眠时长确定第一休眠时长;
若衡量因素包括第一数量,基于验证码信息的数量与休眠时长的映射关系,确定与第一数量相对应的第二休眠时长;
若衡量因素包括第一利用率,基于硬件设备的利用率与休眠时长的映射关系,确定与第一利用率相对应的第三休眠时长;
若衡量因素包括当前时间,基于时间与休眠时长的映射关系,确定与当前时间对应的第四休眠时长;
基于多个预设权重、第二休眠时长、第三休眠时长以及第四休眠时长确定第五休眠时长;
基于第一休眠时长、第二休眠时长、第三休眠时长、第四休眠时长以及第五休眠时长中的任意一个确定第i个生成线程的休眠时长。
在本申请的一个实施方式中,处理单元602,具体用于:
确定第一内存池中验证码信息的第二数量;
若第二数量小于第二预设值,通过第i个生成线程生成第一验证码信息;
若第二数量大于或等于第二预设值,第i个生成线程停止生成验证码信息。
参阅图7,图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,电子设备700包括收发器701、处理器702和存储器703。它们之间通过总线704连接。存储器703用于存储计算机程序和数据,并可以将存储器703存储的数据传输给处理器702。
在当前时间片,通过第i个生成线程生成第一验证码信息;
将第一验证码信息写入与第i个生成线程对应的第一内存池;
若在当前时间片中从终端设备接收到第一验证码服务,响应第一验证码服务,通过与第i个生成线程对应的第i个服务线程,从与第i个服务线程对应的第二内存池中读取第二验证码信息,将第二内存池的第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息;
从终端设备接收用户输入的针对第二验证码信息的第一待验证信息;
对第一待验证信息进行时间有效性验证;
若通过时间有效性验证,则基于第一待验证信息,从数据库中读取第二验证码信息,并将第二验证码信息从数据库中删除;
基于第二验证码信息,对第一待验证信息进行验证,并向终端设备发送验证结果。
在本申请的一个实施方式中,在将第一验证码信息写入与第i个生成线程对应的第一内存池之前,具体用于执行以下步骤:
基于当前时间和预设时间片,确定当前时间片,其中,当前时间指第i个生成线程生成第一验证码信息的时间;
基于预设时间片和验证码信息的有效时长,确定分片数量;
基于当前时间片、分片数量、第一预设值、第i个生成线程以及多个服务线程的总数量,确定第一内存池。
在本申请的一个实施方式中,处理器702,具体用于执行以下步骤:
若在当前时间片的下一个时间片中从终端设备接收到第二验证码服务,响应第二验证码服务,通过第i个服务线程,从第一内存池中读取第三验证码信息,并向终端设备发送第三验证码信息。
从终端设备接收用户输入的针对第三验证码信息的第二待验证信息。
在本申请的一个实施方式中,处理器702,具体用于执行以下步骤:
若第二内存池中不存在有效的验证码信息,则通过第i个服务线程生成第二验证码信息,将第二验证码信息缓存到数据库,并向终端设备发送第二验证码信息。
在本申请的一个实施方式中,在将第一验证码信息写入与第i个生成线程对应的第一内存池之后,处理器702,具体用于执行以下步骤:
基于休眠时长的衡量因素,确定第i个生成线程的休眠时长,衡量因素包括以下至少一种:预设休眠时长、第一内存池中验证码信息的第一数量、服务器的硬件设备的第一利用率以及当前时间,其中,所述硬件设备包括以下至少一项:处理器、显卡、网络、磁盘以及内存;
基于第i个生成线程的休眠时长,通过第i个生成线程执行休眠。
在本申请的一个实施方式中,在基于休眠时长的衡量因素,确定第i个生成线程的休眠时长方面,处理器702,具体用于执行以下步骤:
若衡量因素包括预设休眠时长,基于预设休眠时长确定第一休眠时长;
若衡量因素包括第一数量,基于验证码信息的数量与休眠时长的映射关系,确定与第一数量相对应的第二休眠时长;
若衡量因素包括第一利用率,基于硬件设备的利用率与休眠时长的映射关系,确定与第一利用率相对应的第三休眠时长;
若衡量因素包括当前时间,基于时间与休眠时长的映射关系,确定与当前时间对应的第四休眠时长;
基于多个预设权重、第二休眠时长、第三休眠时长以及第四休眠时长确定第五休眠时长;
基于第一休眠时长、第二休眠时长、第三休眠时长、第四休眠时长以及第五休眠时长中的任意一个确定第i个生成线程的休眠时长。
在本申请的一个实施方式中,处理器702,具体用于执行以下步骤:
确定第一内存池中验证码信息的第二数量;
若第二数量小于第二预设值,通过第i个生成线程生成第一验证码信息;
若第二数量大于或等于第二预设值,第i个生成线程停止生成验证码信息。
具体地,上述收发器701可为图6的实施例的验证码信息处理装置600的收发单元601,上述处理器702可以为图6的实施例的验证码信息处理装置600的处理单元602。
应理解,本申请中的电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(MobileInternet Devices,简称:MID)或穿戴式设备等。上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备。在实际应用中,上述电子设备还可以包括:智能车载终端、计算机设备等等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种验证码信息处理方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种验证码信息处理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory ,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种验证码信息处理方法,其特征在于,所述方法应用于服务器,其中,所述服务器包括多个生成线程、多个内存池以及多个服务线程,生成线程和服务线程一一对应,且存在对应关系的生成线程和服务线程对应相同的多个内存池;所述方法包括:
在当前时间片,通过第i个生成线程生成第一验证码信息;
基于当前时间和预设时间片,确定所述当前时间片,其中,所述当前时间指所述第i个生成线程生成所述第一验证码信息的时间;
基于所述预设时间片和验证码信息的有效时长,确定分片数量;
基于所述当前时间片、所述分片数量、第一预设值、所述第i个生成线程以及所述多个服务线程的总数量,确定第一内存池;
所述第i个生成线程写入的所述第一内存池Wi通过以下公式确定:
其中,i为所述第i个生成线程的编号,n为生成线程总数,所述第一预设值为1,所述i的取值范围为[1,n],时间片为所述预设时间片;
将所述第一验证码信息写入与所述第i个生成线程对应的所述第一内存池;
基于休眠时长的衡量因素,确定所述第i个生成线程的休眠时长,所述衡量因素包括以下至少一种:预设休眠时长、所述第一内存池中验证码信息的第一数量、所述服务器的硬件设备的第一利用率以及所述当前时间,其中,所述硬件设备包括以下至少一项:处理器、显卡、网络、磁盘以及内存;
基于所述第i个生成线程的休眠时长,对所述第i个生成线程执行休眠;
若在所述当前时间片中从终端设备接收到第一验证码服务,响应所述第一验证码服务,通过与所述第i个生成线程对应的第i个服务线程,从与所述第i个服务线程对应的第二内存池中读取第二验证码信息,将所述第二内存池的所述第二验证码信息缓存到数据库,并向所述终端设备发送所述第二验证码信息;
所述第i个服务线程读取的所述第二内存池Ri通过以下公式表示:
其中,所述i为所述第i个服务线程的编号,所述n为服务线程总数,所述i的取值范围为[1,n],当前时间为所述当前时间,时间片为所述预设时间片,分片数量为所述分片数量;
从所述终端设备接收用户输入的针对所述第二验证码信息的第一待验证信息;
对所述第一待验证信息进行时间有效性验证;
若通过时间有效性验证,则基于所述第一待验证信息,从所述数据库中读取所述第二验证码信息,并将所述第二验证码信息从所述数据库中删除;
基于所述第二验证码信息,对所述第一待验证信息进行验证,并向所述终端设备发送验证结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述当前时间片的下一个时间片中从所述终端设备接收到第二验证码服务,响应所述第二验证码服务,通过所述第i个服务线程,从所述第一内存池中读取第三验证码信息,并向所述终端设备发送所述第三验证码信息;
从所述终端设备接收用户输入的针对所述第三验证码信息的第二待验证信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第二内存池中不存在有效的验证码信息,则通过所述第i个服务线程生成所述第二验证码信息,将所述第二验证码信息缓存到所述数据库,并向所述终端设备发送所述第二验证码信息。
4.根据权利要求1所述的方法,其特征在于,所述基于休眠时长的衡量因素,确定所述第i个生成线程的休眠时长,包括:
若所述衡量因素包括所述预设休眠时长,基于所述预设休眠时长确定第一休眠时长;
若所述衡量因素包括所述第一数量,基于验证码信息的数量与休眠时长的映射关系,确定与所述第一数量相对应的第二休眠时长;
若所述衡量因素包括所述第一利用率,基于硬件设备的利用率与休眠时长的映射关系,确定与所述第一利用率相对应的第三休眠时长;
若所述衡量因素包括所述当前时间,基于时间与休眠时长的映射关系,确定与所述当前时间对应的第四休眠时长;
基于多个预设权重、所述第二休眠时长、所述第三休眠时长以及所述第四休眠时长确定第五休眠时长;
基于所述第一休眠时长、所述第二休眠时长、所述第三休眠时长、所述第四休眠时长以及所述第五休眠时长中的任意一个确定所述第i个生成线程的休眠时长。
5.根据权利要求1-4任一项所述的方法,其特征在于,在通过第i个生成线程生成第一验证码信息之前,所述方法还包括:
确定所述第一内存池中验证码信息的第二数量;
若所述第二数量小于第二预设值,通过所述第i个生成线程生成所述第一验证码信息;
若所述第二数量大于或等于所述第二预设值,所述第i个生成线程停止生成验证码信息。
6.一种验证码信息处理装置,其特征在于,包括:收发单元和处理单元;所述装置用于执行权利要求1-5任一项所述的方法;
所述处理单元,用于在当前时间片,通过第i个生成线程生成第一验证码信息;
所述处理单元,用于将所述第一验证码信息写入与所述第i个生成线程对应的第一内存池;
所述处理单元,用于若在所述当前时间片中从终端设备接收到第一验证码服务,响应所述第一验证码服务,通过与所述第i个生成线程对应的第i个服务线程,从与所述第i个服务线程对应的第二内存池中读取第二验证码信息,将所述第二内存池的所述第二验证码信息缓存到数据库,并向所述终端设备发送所述第二验证码信息;
所述收发单元,用于从所述终端设备接收用户输入的针对所述第二验证码信息的第一待验证信息;
所述处理单元,用于对所述第一待验证信息进行时间有效性验证;
所述处理单元,用于若通过时间有效性验证,则基于所述第一待验证信息,从所述数据库中读取所述第二验证码信息,并将所述第二验证码信息从所述数据库中删除;
所述处理单元,用于基于所述第二验证码信息,对所述第一待验证信息进行验证,并向所述终端设备发送验证结果。
7.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311122274.3A CN116841755B (zh) | 2023-09-01 | 2023-09-01 | 验证码信息处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311122274.3A CN116841755B (zh) | 2023-09-01 | 2023-09-01 | 验证码信息处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116841755A CN116841755A (zh) | 2023-10-03 |
CN116841755B true CN116841755B (zh) | 2023-12-26 |
Family
ID=88160294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311122274.3A Active CN116841755B (zh) | 2023-09-01 | 2023-09-01 | 验证码信息处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841755B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104700022A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇艺世纪科技有限公司 | 一种动态验证码生成方法及装置 |
CN113806239A (zh) * | 2020-06-11 | 2021-12-17 | 中兴通讯股份有限公司 | 一种内存操作控制方法、设备及存储介质 |
CN113905014A (zh) * | 2021-08-27 | 2022-01-07 | 拉卡拉支付股份有限公司 | 用于为终端设备分配id号的方法、服务器和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11330345B2 (en) * | 2019-05-09 | 2022-05-10 | Getac Technology Corporation | Verification code generation method, data verification method and electronic device |
-
2023
- 2023-09-01 CN CN202311122274.3A patent/CN116841755B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104700022A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇艺世纪科技有限公司 | 一种动态验证码生成方法及装置 |
CN113806239A (zh) * | 2020-06-11 | 2021-12-17 | 中兴通讯股份有限公司 | 一种内存操作控制方法、设备及存储介质 |
CN113905014A (zh) * | 2021-08-27 | 2022-01-07 | 拉卡拉支付股份有限公司 | 用于为终端设备分配id号的方法、服务器和存储介质 |
Non-Patent Citations (2)
Title |
---|
Android设备获取web服务端验证码技术的研究;王子维;《信息通信》(第2期);第104-106页 * |
曹天杰著.《安全协议 第2版》.北京邮电大学出版社,2020,(第2版),第76-79页. * |
Also Published As
Publication number | Publication date |
---|---|
CN116841755A (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190361888A1 (en) | Read/write split database query routing | |
CN105205014B (zh) | 一种数据存储方法和装置 | |
WO2017185616A1 (zh) | 文件存储方法及电子设备 | |
US10649905B2 (en) | Method and apparatus for storing data | |
CN105373369A (zh) | 一种异步缓存方法、服务器及系统 | |
CN109787882A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN110445615B (zh) | 网络请求安全性验证方法、装置、介质及电子设备 | |
CN110413978B (zh) | 数据分页导出方法、装置、计算机设备和存储介质 | |
CN115455058A (zh) | 缓存数据的处理方法、装置、计算机设备及存储介质 | |
CN114513350A (zh) | 身份校验方法、系统和存储介质 | |
CN116841755B (zh) | 验证码信息处理方法、装置、电子设备及存储介质 | |
CN112363841B (zh) | 应用进程的查杀方法、装置、电子设备及存储介质 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN117094729A (zh) | 请求处理方法、装置、计算机设备及存储介质 | |
CN116561737A (zh) | 基于用户行为基线的密码有效性检测方法及其相关设备 | |
CN114020416A (zh) | 大页内存动态管理方法、装置和计算机设备 | |
CN110543492A (zh) | 一种防止缓存失效的方法及装置 | |
CN111611318A (zh) | 数据访问方法、设备和存储介质 | |
US20150106884A1 (en) | Memcached multi-tenancy offload | |
CN112312165A (zh) | 视频下发方法、装置及计算机可读存储介质 | |
CN107958142B (zh) | 用户帐号生成方法及装置 | |
US20220269747A1 (en) | Qr code access restriction without geolocation knowledge | |
CN114650252B (zh) | 基于企业服务总线的路由方法、装置及计算机设备 | |
CN116132528B (zh) | 一种航班管理消息的推送方法、装置及电子设备 | |
CN112561650B (zh) | 一种订单服务请求的处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |