CN112199658B - 验证码的验证方法、系统、客户端设备及服务端设备 - Google Patents
验证码的验证方法、系统、客户端设备及服务端设备 Download PDFInfo
- Publication number
- CN112199658B CN112199658B CN202011108208.7A CN202011108208A CN112199658B CN 112199658 B CN112199658 B CN 112199658B CN 202011108208 A CN202011108208 A CN 202011108208A CN 112199658 B CN112199658 B CN 112199658B
- Authority
- CN
- China
- Prior art keywords
- verification
- verification code
- target
- information
- block
- 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 803
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000004888 barrier function Effects 0.000 claims abstract description 134
- 230000004044 response Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 6
- 230000001172 regenerating effect Effects 0.000 claims description 6
- 238000005336 cracking Methods 0.000 abstract description 11
- 230000003340 mental effect Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 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
- 238000012545 processing Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000012773 waffles Nutrition 0.000 description 1
Classifications
-
- 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
- G06F21/36—User authentication by graphic or iconic representation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种验证码的验证方法、系统、客户端设备及服务端设备,涉及通信技术领域,以解决现有验证码容易被机器识别,安全性较差问题。该方法包括:接收服务端设备发送的验证码信息;基于验证码信息,生成验证界面,其中,验证界面展示有验证区域、目标位置及位于验证区域内的一个目标滑块、至少两个障碍块和一个滑道,目标滑块位于滑道的起始位置,并可沿滑道滑动且可滑动至目标位置;基于用户在验证界面输入的验证操作,生成码状态数据作为待验证的验证码,并向服务端设备发送验证码。这样,所生成的验证界面具备较为复杂多样的形式,需要用户投入较多的脑力活动才能完成验证,从而增大了破解难度,提高了验证的安全性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种验证码的验证方法、系统、客户端设备及服务端设备。
背景技术
现有技术中,验证码有许多表现形式,如数字与字母的随机组合、图片中含有特定文字或特定元素、随机生成两元的四则运算、滑动(拼图)验证码等。众多验证方案中的验证码元素多为数字和字母,且多数方案中只需要用户操作一次,比如输入数字和字母,或者是滑动一次滑块到特定位置,再或者,从多个图片或文字中选出特定的图片或文字。
可见,目前流行的验证码,需用户操作的次数较少,从而导致机器破解成本较低;另外,即使是那些寻找图片中特定物体或选择包含特定物体的图片之类的验证码,虽然增加了用户操作次数,但由于机器学习的发展,目标检测与识别已经取得了很大进步,这类验证码也很容易被识别。
故现有验证码存在容易被机器识别,进而造成破解成本较低,安全性较差的问题。
发明内容
本发明实施例提供一种验证码的验证方法、系统、客户端设备及服务端设备,以解决现有验证码容易被机器识别,进而造成破解成本较低,安全性较差的问题。
第一方面,本发明实施例提供了一种验证码的验证方法,应用于客户端设备,所述方法包括:
接收服务端设备发送的验证码信息;
基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;
基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。
可选的,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息;
所述基于所述验证码信息,生成验证界面,包括:
基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小;
将所述验证区域映射成二维数组,并基于所述验证码信息中的单元块初始状态信息,确定所述二维数组中各数组元素的值,其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空;
基于所述验证码信息中的滑道位置信息,确定所述滑道在所述验证区域中的位置;
基于所述验证区域的大小、所述二维数组中各数组元素的值和所述目标位置信息,生成验证界面。
可选的,所述基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,包括:
接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
响应于所述旋转操作,旋转所述目标障碍块;
在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
可选的,每个障碍块包括至少两个单元块;
所述响应于所述旋转操作,旋转所述目标障碍块,包括:
基于所述旋转操作的操作位置,确定所述目标障碍块中被选中的单元块;
以所述目标障碍块中被选中的单元块为旋转中心,将所述目标障碍块向第一预设方向旋转预设角度,其中,所述第一预设方向为顺时针方向或逆时针方向。
可选的,所述接收服务端发送的验证码信息之后,所述方法还包括:
存储所述验证码信息,所述验证码信息还包括复位次数上限;
所述基于所述验证码信息,生成验证界面之后,所述方法还包括:
接收用户的复位操作;
响应于所述复位操作,记录当前复位次数,并判断所述复位次数是否超过所述复位次数上限;
在所述复位次数超过所述复位次数上限的情况下,向所述服务端设备获取新的验证码信息;
在所述复位次数未超过所述复位次数上限的情况下,基于所存储的验证码信息,重新生成验证界面。
第二方面,本发明实施例还提供另一种验证码的验证方法,应用于服务端设备,所述方法包括:
生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;
向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;
接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。
可选的,所述生成验证码信息,包括:
设置验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置;
生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块均不位于所述滑道上;
分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向包括上下左右四个方向中的一个或多个,生成的每个障碍块均不位于所述滑道上;
对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上;
将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息,封装成验证码信息。
可选的,所述生成验证码信息,包括:
在接收到所述客户端设备发送的验证码获取请求的情况下,生成验证码信息;
其中,所述生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,包括:
基于所述验证码获取请求的接收时间,获取时间戳;
基于所述时间戳,获得至少两个随机值;
基于所述至少两个随机值,生成至少两个初始单元块,并将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,其中,所述至少两个初始单元块的数量与所述至少两个随机值的数量一致。
可选的,所述分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,包括:
基于所述时间戳,获得至少两个随机方向值,其中,所述至少两个随机方向值的数量与所述至少两个初始单元的数量一致;
基于所述随机方向值,确定每个初始单元块对应的延展方向;
分别对每个初始单元块向对应的延展方向延展,得到对应的包括至少两个单元块的障碍块。
可选的,所述基于所述时间戳,获得至少两个随机值,包括:
获取所述客户端设备的用户ID;
将所述时间戳与所述用户ID进行随机移位加法,得到种子值;
对所述种子值按预设位数进行拆分,得到至少两个随机值。
可选的,所述验证码中指示有所述目标滑块的位置信息;
所述对所述验证码进行验证,包括:
基于所述验证码,判断所述目标滑块是否位于所述目标位置;
在所述目标滑块位于所述目标位置的情况下,确认验证通过。
第三方面,本发明实施例还提供一种验证码的验证系统,包括客户端设备和服务端设备,其中,所述服务端设备用于生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;向所述客户端设备发送所述验证码信息;
所述客户端设备用于接收所述服务端设备发送的验证码信息;基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码;
所述服务端设备还用于接收所述客户端设备发送的验证码,并对所述验证码进行验证。
第四方面,本发明实施例还提供一种客户端设备,包括:收发机、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述任一项所述的方法中的步骤。
第五方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如前述第一方面中任一项所述的方法中的步骤;或者所述计算机程序被处理器执行时实现如前述第二方面中任一项所述的方法中的步骤。
在本发明实施例中,接收服务端设备发送的验证码信息;基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。这样,所生成的验证界面具备较为复杂多样的形式,需要用户投入较多的脑力活动才能完成验证,从而增大了破解难度,提高了验证的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的验证码的验证方法的流程图之一;
图2是本发明实施例提供的验证界面示意图;
图3是本发明实施例提供的完成验证的操作流程示意图;
图4是本发明实施例提供的以不同旋转轴旋转障碍块的示意图;
图5是本发明实施例提供的验证码的验证方法的流程图之二;
图6是本发明实施例提供的客户端设备的结构图之一;
图7是本发明实施例提供的服务端设备的结构图之一;
图8是本发明实施例提供的客户端设备的结构图之二;
图9是本发明实施例提供的服务端设备的结构图之二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的验证码的验证方法的流程图,应用于客户端设备,如图1所示,包括以下步骤:
步骤101、接收服务端设备发送的验证码信息。
上述接收服务端设备发送的验证码信息,可以是在客户端设备访问某些界面时需要对用户身份进行验证,从而接收服务端设备发送的验证码信息,所述客户端设备则可以基于接收的验证码信息生成相应的验证界面,用于用户进行身份验证,只有在验证通过的情况下,才能进行正常访问。
具体地,可以是客户端设备在接收到用户的触发获取验证码的指令的情况下,向服务端设备发送验证码获取请求,进而服务端设备基于该请求向所述客户端设备返回验证码信息。
上述验证码信息可以用于指示客户端设备生成的验证码样式,即生成什么样式的验证码,其可以包括具体的验证码元素信息,例如,验证界面大小、验证界面中包括的元素、各元素在验证界面中的位置等信息。
步骤102、基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上。
在接收到所述验证码信息后,便可以对所述验证码信息进行解析,并根据解析结果生成相应的验证界面,也就是进行验证界面绘制。
本发明实施例中,所述验证界面可以是华容道样式的验证界面,即所述验证界面中可以包括多个不同形状的障碍块、目标滑块、滑道和目标位置,所述多个障碍块可以分别分布于验证界面中的不同区域,并可不同程度地对目标滑块滑动至目标位置所需经过的滑动通道造成一定阻碍,即多个障碍块中的一个或多个将占用滑道空间,验证通过的条件即为需清除滑道上的障碍块,使得目标滑块能够顺利沿滑道滑动至目标位置。也就是说,所述验证界面可以是在验证区域内被形状大小不同的多个障碍块所随机分割,其中,目标滑块、滑道和目标位置在验证区域中的位置固定,目标滑块位于滑道的起始位置,目标位置位于滑道的终点位置,所述多个障碍块在验证区域中的位置可以是随机变动的,具体可根据服务端设备发送的验证码信息确定。
例如,如图2所示,验证界面20的验证区域为一矩形区域,滑道21位于矩形区域的中部,目标滑块a位于滑道21的起始位置,目标位置A位于滑道21的终点位置,目标滑块a存在隐含的期望属性,即滑动至目标位置A,且目标滑块a的活动区域仅限于滑道21,即目标滑块a仅支持在滑道21内移动;障碍块N1、N2、N3和N4可具备不同形状,分别处于验证区域中的不同位置,且障碍块N1、N2和N3均存在部分位于滑道21上,障碍块N1、N2、N3和N4均支持移动或旋转,即用户可通过移动或旋转障碍块,来清除滑道21上的障碍块,使得目标滑块a可沿滑道21滑动至目标位置A,完成验证。
可选的,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息;
所述步骤102包括:
基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小;
将所述验证区域映射成二维数组,并基于所述验证码信息中的单元块初始状态信息,确定所述二维数组中各数组元素的值,其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空或为0;
基于所述验证码信息中的滑道位置信息,确定所述滑道在所述验证区域中的位置;
基于所述验证区域的大小、所述二维数组中各数组元素的值和所述目标位置信息,生成验证界面。
即所述验证码信息可具体包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,其中,所述验证区域大小信息用于指示验证区域的大小,如为W×H的矩形,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息,如可以指示所述目标滑块和所述至少两个障碍块在所述验证区域中的坐标位置信息,所述滑道位置信息用于指示滑道在所述验证区域中的位置,所述目标位置信息用于指示目标位置在验证界面中的具体位置。
例如,所述验证码信息包含字典对:{list-table:[a:[(1,7)],N1:[(5,3),(5,5),(5,7)],N2:[(7,8),(7,10),(9,10)],...]},list-table是字典的键,其值为一个列表;这个列表存储的元素又是一个个字典,字典的键即为图2中的单元块名,如a、N1~N4等,其键对应的值为单元块在验证区域中的坐标位置。具体地,可将验证区域按一定尺寸单位化,并在验证区域中以验证区域的某一顶点(如左上角)为原点建立坐标系,然后基于各单元块在验证区域中的位置,确定各单元块的坐标位置,如障碍块N1由三个单元块组成,第一个单元块的坐标为(5,3),第二个单元块的坐标为(5,5),第三个单元块的坐标为(5,7),其中,每个单元块的尺寸为2×2,且基于各障碍块的坐标位置,可确定各障碍块的形状,如N1为由三个单元块组成的长条形,N2为由三个单元块组成的L型。
所述客户端设备在对所述验证码信息进行解析时,可以依据其中的验证区域大小信息,初始化一个二维数组,该二维数组的维度可基于所述验证区域的大小确定,如验证区域大小为W×H,则可初始化一个W×H的二维数组,并可基于所述验证码信息中的单元块初始状态信息,也即各单元块在验证区域中的坐标位置信息,确定所述二维数组中各数组元素的值,具体地,可将各单元块的坐标位置映射成二维数组下标,将各单元块名映射成对应数组元素的值,例如,目标滑块a的坐标位置(1,7)为可映射成数组元素B17=a,障碍块N1的坐标位置(5,3),(5,5),(5,7),可映射成数组元素B53=N1,B55=N1,B57=N1,以此类推;其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空或为0,即空值或0表示对应坐标位置处没有单元块。需说明的是,在解析得到相应的二维数组后,可将该二维数组临时存储,用于用户复位时依据该二维数组还原验证界面,在获取新的验证码信息后再予以删除。
最终所述客户端设备可基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小和目标位置,并在验证界面绘制出相应大小的验证区域,还可基于所述验证码信息中的滑道位置信息和所述目标位置信息,确定所述滑道在所述验证区域中的位置及目标位置,并在验证区域中绘制出滑道和目标位置,如图2中虚线所示的位置为滑道,A所在位置为目标位置;最后还可基于所述二维数组中各数组元素的值,在验证区域中的相应位置绘制出各单元块,其中,值为空或0的数组元素对应的位置表示没有单元块,可使用白色背景填充,对应同一值的数组元素对应的位置可使用相同颜色填充,对应不同值的数组元素对应的位置可使用不同颜色填充,例如,N1的三个单元块都使用红色填充,N2的三个单元块都使用绿色填充,等等,从而可生成如图2所示的完整验证界面。
这样,通过对所述验证码信息中的验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息进行一一解析,可快速确定验证界面中包括的具体元素和各元素的形态、位置,进而绘制生成相应的验证界面。
步骤103、基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。
在生成验证界面后,用户可以在所述验证界面输入验证操作,即可以对所述验证界面中的障碍块进行位置变更,以清除位于所述滑道上的障碍块,并将所述目标滑块拖动至所述目标位置。在用户每进行一次验证操作时,可记录被用户移动的障碍块位置,以及目标滑块的位置,进而将记录的位置信息生成验证码状态数据作为待验证的验证码,在用户提交验证时,将所生成的验证码发送给所述服务端设备。
例如,如图2所示,为了完成验证,用户可以分别将障碍块N1、N2和N3移动或旋转至其他位置,使得滑道21上没有被任何障碍块阻挡,最后将目标滑块a拖到至目标位置A,其中,移动或旋转障碍块N1、N2和N3的方式可以有多种,用户可根据自身脑力活动制定相应策略来选择移动或旋转障碍块N1、N2和N3的方式;并且在目标滑块a被拖动至目标位置A后,可以将目标滑块a的位置信息封装在验证码中,并提交至服务端设备进行验证。
所述服务端设备在接收到所述验证码后,可以对所述验证码进行验证,具体可以是验证所述目标滑块是否处于所述目标位置,还或者进一步验证各障碍块的位置信息,确认各障碍块是否均不位于所述滑道上。
在确认所述目标滑块处于所述目标位置的情况下,还或者在进一步确认各障碍块均不位于所述滑道上的情况下,可以确认验证通过,而在确认所述目标滑块不处于所述目标位置的情况下,还或者在确认存在障碍块位于所述滑道上的情况下,可以确认验证失败,并可以生成验证失败的消息,将该验证失败的消息返回至所述客户端设备,以提示所述客户端设备验证未通过,需重新验证。
可选的,所述步骤103包括:
接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
响应于所述旋转操作,旋转所述目标障碍块;
在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
该实施方式中,用户在进行验证的过程中,可通过对所述验证界面中的障碍块进行旋转操作,来改变各障碍块的位置,进而将位于滑道上的障碍块移至其他位置,使得目标滑块能够从滑道上顺畅通过,滑动至目标位置。
当接收到用户对所述至少两个障碍块中的目标障碍块的旋转操作时,可响应于所述旋转操作,旋转所述目标障碍块,其中,所述目标障碍块可以是所述至少两个障碍块中的任一个障碍块,所述旋转操作可以是点击若干次目标障碍块的操作,每点击一次,将所述目标障碍块向预设方向旋转预设角度,如顺时针旋转90度,且旋转轴可以默认为目标障碍块的中心轴,或者可以根据点击位置确定,所述旋转操作也可以是按住所述目标障碍块将所述目标障碍块向某方向旋转的操作,旋转方向和角度均由用户操作控制,如按住障碍块N1的顶端向下旋转至水平后松开。
在用户通过对障碍块的旋转操作将位于滑道上的障碍块清除后,用户可执行将所述目标滑块沿所述滑道拖动至所述目标位置的滑动操作,即在所述滑道上不存在障碍块的情况下,可接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作,并可响应于所述滑动操作,基于当前验证界面上各障碍块和目标滑块的位置,生成验证码状态数据,作为待验证的验证码,所述验证码状态数据至少包括所述目标滑块的位置信息,最后可向所述服务端设备发送所述验证码,以通过所述服务端设备对所述验证码进行验证,而由于所述目标滑块被成功滑动至所述目标位置处,所述服务端设备将确认验证通过。
例如,如图3所示,为完成验证,用户可确定阻挡目标滑块a的移动路径的障碍块有N1、N2和N3,从而可分别旋转障碍块N1、N2和N3,直至各障碍块均不遮挡滑块a的滑动轨迹,其中,具体旋转方式可由用户自行定义,最后,可拖动目标滑块a至目标位置A处,完成验证。
需说明的是,在用户每进行一次旋转操作后,可以基于旋转后的障碍块的位置,更新所述二维数组中相应数组元素的值,例如,如图3所示,在将障碍块N1旋转至图示位置后,原数组元素B55和B57的值将由N1变成空值,而数组元素B13和B33的值由空值变成N1,这样,在用户旋转完后提交验证时,可将更新后的二维数组和所述目标滑块的位置信息进行封装加密,传输至所述服务端设备进行验证,所述服务端设备可以依次检查二维数组的值,确定滑道上不存在障碍块,且目标滑块位于目标位置处时,确认验证通过。
这样,用户可在验证界面通过对各障碍块的旋转操作来完成对验证码的验证,且由于该操作方式能够提升用户操作的复杂度,从而可进一步提高机器破解成本,保证验证安全性。
进一步的,每个障碍块包括至少两个单元块;
所述响应于所述旋转操作,旋转所述目标障碍块,包括:
基于所述旋转操作的操作位置,确定所述目标障碍块中被选中的单元块;
以所述目标障碍块中被选中的单元块为旋转中心,将所述目标障碍块向第一预设方向旋转预设角度,其中,所述第一预设方向为顺时针方向或逆时针方向。
该实施方式中,每个障碍块包括至少两个单元块,且每个单元块均可以作为旋转中心,具体可以根据用户针对所述目标障碍块执行旋转操作时的操作位置,确定所述目标障碍块中的哪个单元块为旋转中心,例如,图2中障碍块N1包括三个单元块,即障碍块N1可以有3个旋转中心,若用户点击障碍块N1的最上方的单元块,则以N1的最上方的单元块为旋转中心进行旋转。
且该实施方式中,每针对所述目标障碍块执行一次旋转操作,可将所述目标障碍块向第一预设方向旋转预设角度,所述第一预设方向和所述预设角度均可以预先设定,如所述第一预设方向可以预设为顺时针方向或逆时针方向,所述预设角度可以设定为90度、180度等。
参见图4,下面以障碍块N的不同单元块为旋转中心,每次顺时针旋转90度为例,来示意旋转后的效果,如图4所示,障碍块N是由第三列的第二、三、四行,共计三个单元块组成,这三个单元块各自的坐标可表示为(3,2)、(3,3)、(3,4)。当选择单元块(3,2)为旋转中心,顺时针旋转90度后的结果如图4右上角所示(C点为旋转轴),同理可得,当以单元块(3,3)作为旋转中心时,顺时针旋转90度后的结果如图4左下角所示(C点为旋转轴),以单元块(3,4)作为旋转中心,顺时针旋转90度后的结果如图4右下角所示(C点为旋转轴)。
这样,用户只需通过点击障碍块,便可实现对障碍块的旋转操作,且可根据期望的旋转结果,对障碍块的不同位置进行操作,使得每个障碍块均有多种不同的旋转方式和结果,也使得用户验证操作更为灵活,破解也相对更为复杂。
可选的,所述步骤101之后,所述方法还包括:
存储所述验证码信息,所述验证码信息还包括复位次数上限;
所述基于所述验证码信息,生成验证界面之后,所述方法还包括:
接收用户的复位操作;
响应于所述复位操作,记录当前复位次数,并判断所述复位次数是否超过所述复位次数上限;
在所述复位次数超过所述复位次数上限的情况下,向所述服务端设备获取新的验证码信息;
在所述复位次数未超过所述复位次数上限的情况下,基于所存储的验证码信息,重新生成验证界面。
该实施方式中,所述客户端设备在接收到所述服务端设备发送的验证码信息后,还可以临时存储所述验证码信息,用于复位,即可在用户将验证界面中的障碍块进行旋转操作后通过复位恢复至初始验证界面。具体地,由于可将各单元块的初始状态信息映射在二维数组中,故所述存储所述验证码信息可以是存储所述二维数组。
在接收到用户的复位操作时,可以累加当前复位次数,并判断当前复位次数是否超过了所述验证码信息中规定的复位次数上限,若超过,则存储的验证码信息将失效,需要重新向所述服务端设备获取新的验证码信息,若未超过,则可以基于存储的验证码信息,重新生成验证界面,也即恢复至最初生成的验证界面。
需说明的是,当检测到用户复位次数达到预设次数,如3次,且在验证界面的操作时间大于预设阈值时,如1分钟,可在用户再次执行复位操作时,弹出提示消息如“是否重新获取验证码”,当复位次数超过复位次数上限时,直接重新向所述服务端设备获取新的验证码。而且为保证用户能够完成验证,可以在所述客户端设备重新获取新的验证码信息后,再次复位次数超过所述复位次数上限时,向所述服务端设备传会当前验证码类型,并请求更换验证码样式,便于用户通过别的样式的验证码来完成验证。
这样,该实施方式中,用户在进行验证的过程中,还可以通过复位操作来还原初始验证界面,重新执行验证操作,便于用户在验证过程中,觉得当前清除滑道上的障碍块较为困难时,可通过复位来还原障碍块至初始位置,帮助用户快速完成验证。
本发明实施例的验证码的验证方法,接收服务端设备发送的验证码信息;基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。这样,所生成的验证界面具备较为复杂多样的形式,需要用户投入较多的脑力活动才能完成验证,从而增大了破解难度,提高了验证的安全性。
参见图5,图5是本发明实施例提供的验证码的验证方法的流程图,应用于服务端设备,如图5所示,包括以下步骤:
步骤501、生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息。
步骤502、向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面。
本发明实施例中,上述服务端设备可以随机生成验证码信息,并将生成的验证码信息发送给客户端设备,用于所述客户端设备对用户身份进行验证,具体地,可以在接收到所述客户端设备的验证码获取请求时,开始生成验证码信息。
所生成的验证码信息具体可以包括用于指示验证区域大小的验证区域大小信息、用于指示单元块位置信息(包括目标滑块和至少两个障碍块的位置信息)的单元块初始状态信息、用于指示滑道在所述验证区域中的位置的滑道位置信息和用于指示目标位置在验证界面中的具体位置的目标位置信息。其中,所述验证区域大小信息、所述目标滑块的位置信息、所述滑道位置信息和所述目标位置信息均可以是固定的,即每次生成验证码信息时,验证区域大小、目标滑块的位置、滑道位置和目标位置可以是固定不变的,这些信息可以是预先设置好的固定信息,而所述至少两个障碍块的位置信息则可以是随机生成的,即每次生成的验证码信息中,所述至少两个障碍块在验证区域中的位置可以是随机变化的,且所述至少两个障碍块中的至少一个障碍块需位于所述滑道上,用于用户进行验证操作,即通过改变障碍块的位置来移除位于滑道上的障碍块,进而将目标滑块拖动至目标位置,完成验证。
所述客户端设备则可以接收所述服务端设备发送的验证码信息,并可基于所述验证码信息,生成验证界面,其中具体的实施方式可以参见图1所示的实施例中的相关介绍,在此不作赘述。
步骤503、接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。
所述客户端设备在生成验证界面后,用户可以在验证界面上进行验证操作,并在完成验证时提交验证码,发送至所述服务端设备,所述服务端设备则可以基于接收的验证码,对用户身份进行验证,得到相应的验证结果,在验证通过的情况下,可允许所述客户端设备进行下一步操作,在验证失败的情况下,可以向所述客户端设备发送验证失败的消息,以提示所述客户端设备验证未通过,需重新验证,其中具体的实施方式可以参见图1所示的实施例中的相关介绍,在此不作赘述。
可选的,所述步骤501包括:
设置验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置;
生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块均不位于所述滑道上;
分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向包括上下左右四个方向中的一个或多个,生成的每个障碍块均不位于所述滑道上;
对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上;
将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息,封装成验证码信息。
该实施方式中,在生成验证码信息时,可以分别生成验证区域大小信息、目标位置信息、滑道位置信息、目标滑块位置信息和至少两个障碍块的位置信息,进而得到生成验证界面所需的元素信息。
其中,由于验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置可以是固定不变的,故可以设置好验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置,且这些信息可以是预先定义好的,在每次生成验证码信息时,按预先定义的相关信息进行设定即可。
而对于所述至少两个障碍块的位置信息,需要在每次生成验证码信息时随机生成,故可以先生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块可以为一单位化后的最小单元,即最终生成的障碍块由多个初始单元块拼接而成,且在设定每个初始单元块的位置时,需考虑到每个初始单元块均不可位于所述滑道上,以保证验证有解,即保证用户能够完成验证。另外,所述至少两个初始单元块的数量可以预先设定,如需大于或等于2且小于或等于5。
然后,再分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向可以包括上下左右四个方向中的一个或多个,即可以对每个初始单元块向一个方向延展,也可以依次向多个方向进行延展,还可以向同一方向延展多次,例如,将某个初始单元块向右延展一次,得到一个包括两个单元块的障碍块,且该障碍块呈水平状态,将某个初始单元块向下延展三次,得到一个包括三个单元块的障碍块,且该障碍块呈垂直状态,将某个初始单元块依次向下和向右延展,得到一个包括三个单元块的障碍块,且该障碍块呈L型。其中,每个初始单元块的延展方向可以是随机的,且在延展过程中,需判断延展后得到的障碍块是否位于所述滑道上,若位于,则此次延展无效,可以排除此次延展方向,再随机向其他方向延展,若延展次数达到预设次数,如3次、5次等,则可以停止延展,至此生成完整的障碍块,这样,生成的每个障碍块均不会位于所述滑道上,从而保证验证有解。当然,需说明的是,延展范围不能超出所述验证区域,以保证所生成的障碍块均位于所述验证区域内。
接着,可以再对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上,即可以对所生成的至少两个障碍块中的任一个或多个障碍块进行旋转,旋转方向和次数可以随机,以打乱所述至少两个障碍块在所述验证区域中的位置,并保证至少一个障碍块位于所述滑道上,使得用户需要进行较为复杂的验证操作才能完成验证。当然,需在所述验证区域的范围内对所述至少两个障碍块进行随机旋转。
在旋转完障碍块后,可记录好旋转后的各障碍块的位置信息,且所述位置信息可以使用坐标表示,最后,可将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息进行封装加密,生成验证码信息,返回给所述客户端设备。
这样,通过上述方式,可生成华容道样式的验证码,且该验证码需用户进行较为复杂的验证操作,从而可提高验证的安全性。
可选的,所述步骤501包括:
在接收到所述客户端设备发送的验证码获取请求的情况下,生成验证码信息;
其中,所述生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,包括:
基于所述验证码获取请求的接收时间,获取时间戳;
基于所述时间戳,获得至少两个随机值;
基于所述至少两个随机值,生成至少两个初始单元块,并将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,其中,所述至少两个初始单元块的数量与所述至少两个随机值的数量一致。
该实施方式中,在接收到所述客户端设备发送的验证码获取请求时,可以记录该请求的接收时间,并基于该接收时间,获取相应的时间戳,其中,不同的时间对应不同的时间戳,从而可保证基于所述时间戳能够生成随机值。
然后,可基于所述时间戳,获得至少两个随机值,例如,假设获得的时间戳为1598254883,则通过将所述时间戳按两位数进行划分,可得到15、98、25、48和83五个随机值,当然可以只选取这五个随机值的部分,也可以选取全部,也还可以采用其他方式对所述时间戳进行划分处理,得到其他随机值。
基于所获得的至少两个随机值,可以生成数量与所述至少两个随机值的数量一致的至少两个初始单元块,并可将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,例如,对于随机值15,可以生成坐标位置为(1,5)的单元块,对于随机值48,可以生成坐标位置为(4,8)的单元块,等等。需说明的是,对于生成的每个初始单元块,需基于其坐标位置判断该初始单元块是否位于滑道上,若不位于,则表明该初始单元块符合条件,可以保留,若位于,则可以通过修改该初始单元块的坐标位置(如将纵坐标加2或减2),直至该初始单元块不位于滑道上。
这样,通过基于验证码获取请求的接收时间来获取时间戳,并基于所述时间戳来随机生成相应的初始单元块,可提供一种随机生成初始单元块的方式,且由于每次获取的时间戳不同,可保证每次生成的初始单元块均具备差异,进而可为客户端设备提供随机不同的验证码。
进一步的,所述基于所述时间戳,获得至少两个随机值,包括:
获取所述客户端设备的用户ID;
将所述时间戳与所述用户ID进行随机移位加法,得到种子值;
对所述种子值按预设位数进行拆分,得到至少两个随机值。
即在基于所述时间戳获得随机值时,还可先对所时间戳进行一定处理,具体地,可先获取所述客户端设备的用户ID,其中,所述客户端设备在发送验证码获取请求时,会在该请求中包含用户ID信息,从而可在从接收的验证码获取请求中提取用户ID信息。
接着,可将所述时间戳与所述用户ID进行随机移位加法,得到种子值,其中,随机移位加法是指相加的对应位随机,例如,时间戳为1598254883,用户ID为6位数字123456,下表1列举了三种移位加法的计算方式,由表1可以看出,对应位相加的位置可以存在差异。需注意的是,该移位加法不进行进位运算,相加后的值模10为最终结果。
表1时间戳与用户ID的随机移位加法
1 | 5 | 9 | 8 | 2 | 5 | 4 | 8 | 8 | 3 |
1 | 2 | 3 | 4 | 5 | 6 | ||||
1 | 2 | 3 | 4 | 5 | 6 | ||||
1 | 2 | 3 | 4 | 5 | 6 |
假设以第一种方式相加,得到种子值1611600883,再对所述种子值按预设位数进行拆分,得到至少两个随机值,如按两位数字一组进行拆分,可得到16、11、60、08、83等随机值,或者,得到16、61、11、16、60等随机值。
这样,通过将所获得的时间戳与用户ID进行随机移位加法,来得到种子值,并通过拆分该种子值来得到至少两个随机值,可保证对于同一时间获取验证码的用户,生成的随机值不同,进而下发的验证码不同,确保了验证码的随机。
可选的,所述分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,包括:
基于所述时间戳,获得至少两个随机方向值,其中,所述至少两个随机方向值的数量与所述至少两个初始单元的数量一致;
基于所述随机方向值,确定每个初始单元块对应的延展方向;
分别对每个初始单元块向对应的延展方向延展,得到对应的包括至少两个单元块的障碍块。
该实施方式中,还可基于所述时间戳,获得至少两个随机方向值,例如,假设获得的时间戳为1598254883,则通过将所述时间戳按若干位数进行划分,或从中随机提取,可得到159、825、488、254、83等随机方向值,当然可以根据需要随机获得相应数量的随机方向值,如生成的初始单元块数量为4,则可相应从所述时间戳中获得4个随机方向值即可。
当然,也可采用前述实施方式中获取随机值的方式,先将所述时间戳与用户ID进行随机移位加法,得到种子值后,再基于该种子值来获得随机方向值。
然后,可基于所获得的随机方向值,确定每个初始单元块对应的延展方向,其中,一个随机方向值可对应一个初始单元块的延展方向,具体地,由于所述延展方向可包括上下左右四个方向,故可通过分别对每个随机方向值进行逐位模4运算,来确定对应的延展方向,例如,假设上、下、左、右四个方向分别与数字0、1、2、3一一对应,对于随机方向值825,逐位模4后可得,8%4=0,2%4=2,5%4=1,则可确定该随机方向值对应的延展方向依次为上、左和下,从而可将该随机方向值对应的初始单元块依次向上左下三个方向延展,生成相应的障碍块。
其中,考虑到十进制数直接模4,则得到0和1的概率要更高一些,故可以先对每个随机方向值进行逐位模8后再模4运算,以保证四个方向的概率相等。
在确定每个初始单元块对应的延展方向后,可以分别对每个初始单元块向对应的延展方向延展,便可得到对应的包括至少两个单元块的障碍块,其中,在每次延展中,也可以判断延展后的单元块是否经过滑道位置,若经过,则可以舍弃此次延展,向下一个方向延展,直至延展得到的障碍块符合要求,即都不位于滑道上。
还需说明的是,在生成障碍块后,还可判断当前障碍块的个数,以及所有障碍块的总空间占比,若障碍块的数量在预设范围内,如满足大于或等于2且小于或等于5,且总空间占比达到预设比例,如40%,则表明生成的障碍块符合要求,可以退出障碍块生成流程,否则可以再次进行障碍块生成流程,直至生成的障碍块符合要求为止。
这样,通过基于所述时间戳来获得随机方向值,并基于随机方向值确定每个初始单元块对应的延展方向,可提供一种随机生成障碍块的方式,且可保证向四个方向延展的概率大致相等。
可选的,所述验证码中指示有所述目标滑块的位置信息;
所述对所述验证码进行验证,包括:
基于所述验证码,判断所述目标滑块是否位于所述目标位置;
在所述目标滑块位于所述目标位置的情况下,确认验证通过。
即所述客户端设备提交的验证码中需指示所述目标滑块的位置信息,所述服务端设备则基于所述验证码中的目标滑块的位置信息,判断所述目标滑块是否位于所述目标位置,若位于,则表示通过验证,若不位于,则表示验证失败,故在所述目标滑块位于所述目标位置的情况下,可以确认验证通过,而在所述目标滑块不位于所述目标位置的情况下,可以确认验证失败,并可以向所述客户端设备发送验证失败消息。
这样,通过基于所述目标滑块的位置信息对用户身份进行验证,可以快速准确地判定验证是否通过。
本发明实施例的验证码的验证方法,生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。这样,基于所述验证码信息可生成形式较为复杂多样的验证界面,需要用户投入较多的脑力活动才能完成验证,从而增大了破解难度,提高了验证的安全性。
本发明实施例还提供了一种验证码的验证系统,包括客户端设备和服务端设备,其中,所述服务端设备用于生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;向所述客户端设备发送所述验证码信息;
所述客户端设备用于接收所述服务端设备发送的验证码信息;基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码;
所述服务端设备还用于接收所述客户端设备发送的验证码,并对所述验证码进行验证。
本发明实施例提供的验证码的验证系统,可以执行前述方法实施例,其中客户端设备和服务端设备可分别对应于前述方法实施例中客户端设备侧和服务端设备侧的实施方案,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种客户端设备。参见图6,图6是本发明实施例提供的客户端设备的结构图。由于客户端设备解决问题的原理与本发明实施例中图1所示的验证码的验证方法相似,因此该客户端设备的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,客户端设备600包括:
第一接收模块601,用于接收服务端设备发送的验证码信息;
第一生成模块602,用于基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;
生成与发送模块603,用于基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。
可选的,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息;
第一生成模块602包括:
第一确定单元,用于基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小;
第二确定单元,用于将所述验证区域映射成二维数组,并基于所述验证码信息中的单元块初始状态信息,确定所述二维数组中各数组元素的值,其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空;
第三确定单元,用于基于所述验证码信息中的滑道位置信息,确定所述滑道在所述验证区域中的位置;
生成单元,用于基于所述验证区域的大小、所述二维数组中各数组元素的值和所述目标位置信息,生成验证界面。
可选的,生成与发送模块603包括:
第一接收单元,用于接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
旋转单元,用于响应于所述旋转操作,旋转所述目标障碍块;
第二接收单元,用于在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
生成与发送单元,用于响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
可选的,每个障碍块包括至少两个单元块;
所述旋转单元包括:
确定子单元,用于基于所述旋转操作的操作位置,确定所述目标障碍块中被选中的单元块;
旋转子单元,用于以所述目标障碍块中被选中的单元块为旋转中心,将所述目标障碍块向第一预设方向旋转预设角度,其中,所述第一预设方向为顺时针方向或逆时针方向。
可选的,客户端设备600包括:
存储模块,用于存储所述验证码信息,所述验证码信息还包括复位次数上限;
第二接收模块,用于接收用户的复位操作;
判断模块,用于响应于所述复位操作,记录当前复位次数,并判断所述复位次数是否超过所述复位次数上限;
获取模块,用于在所述复位次数超过所述复位次数上限的情况下,向所述服务端设备获取新的验证码信息;
第二生成模块,用于在所述复位次数未超过所述复位次数上限的情况下,基于所存储的验证码信息,重新生成验证界面。
本发明实施例提供的客户端设备,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例的客户端设备600,接收服务端设备发送的验证码信息;基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;基于用户在所述验证界面输入的验证操作,生成验证验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。这样,所生成的验证界面具备较为复杂多样的形式,需要用户投入较多的脑力活动才能完成验证,从而增大了破解难度,提高了验证的安全性。
本发明实施例还提供了一种服务端设备。参见图7,图7是本发明实施例提供的服务端设备的结构图。由于服务端设备解决问题的原理与本发明实施例中图5所示的验证码的验证方法相似,因此该服务端设备的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,服务端设备700包括:
生成模块701,用于生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;
发送模块702,用于向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;
接收与验证模块703,用于接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。
可选的,生成模块701包括:
设置单元,用于设置验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置;
生成单元,用于生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块均不位于所述滑道上;
延展单元,用于分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向包括上下左右四个方向中的一个或多个,生成的每个障碍块均不位于所述滑道上;
旋转单元,用于对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上;
封装单元,用于将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息,封装成验证码信息。
可选的,生成模块701用于在接收到所述客户端设备发送的验证码获取请求的情况下,生成验证码信息;
所述生成单元包括:
第一获取子单元,用于基于所述验证码获取请求的接收时间,获取时间戳;
第二获取子单元,用于基于所述时间戳,获得至少两个随机值;
生成子单元,用于基于所述至少两个随机值,生成至少两个初始单元块,并将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,其中,所述至少两个初始单元块的数量与所述至少两个随机值的数量一致。
可选的,所述延展单元包括:
第三获取子单元,用于基于所述时间戳,获得至少两个随机方向值,其中,所述至少两个随机方向值的数量与所述至少两个初始单元的数量一致;
确定子单元,用于基于所述随机方向值,确定每个初始单元块对应的延展方向;
延展子单元,用于分别对每个初始单元块向对应的延展方向延展,得到对应的包括至少两个单元块的障碍块。
可选的,所述第二获取子单元用于获取所述客户端设备的用户ID;将所述时间戳与所述用户ID进行随机移位加法,得到种子值;对所述种子值按预设位数进行拆分,得到至少两个随机值。
可选的,所述验证码中指示有所述目标滑块的位置信息;
接收与验证模块703包括:
判断单元,用于基于所述验证码,判断所述目标滑块是否位于所述目标位置;
确认单元,用于在所述目标滑块位于所述目标位置的情况下,确认验证通过。
本发明实施例提供的服务端设备,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例的服务端设备700,生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。这样,基于所述验证码信息可生成形式较为复杂多样的验证界面,需要用户投入较多的脑力活动才能完成验证,从而增大了破解难度,提高了验证的安全性。
本发明实施例还提供了一种客户端设备。由于客户端设备解决问题的原理与本发明实施例中图1所示的验证码的验证的方法相似,因此该客户端设备的实施可以参见方法的实施,重复之处不再赘述。如图8所示,本发明实施例的客户端设备,包括:
处理器800,用于读取存储器820中的程序,执行下列过程:
通过收发机810接收服务端设备发送的验证码信息;
基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;
基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并通过收发机810向所述服务端设备发送所述验证码。
收发机810,用于在处理器800的控制下接收和发送数据。
其中,在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器800代表的一个或多个处理器和存储器820代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机810可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口830还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器800负责管理总线架构和通常的处理,存储器820可以存储处理器800在执行操作时所使用的数据。
处理器800还用于读取存储器820中的程序,执行如下步骤:
所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息;
基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小;
将所述验证区域映射成二维数组,并基于所述验证码信息中的单元块初始状态信息,确定所述二维数组中各数组元素的值,其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空;
基于所述验证码信息中的滑道位置信息,确定所述滑道在所述验证区域中的位置;
基于所述验证区域的大小、所述二维数组中各数组元素的值和所述目标位置信息,生成验证界面。
处理器800还用于读取存储器820中的程序,执行如下步骤:
接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
响应于所述旋转操作,旋转所述目标障碍块;
在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并通过收发机810向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
处理器800还用于读取存储器820中的程序,执行如下步骤:
基于所述旋转操作的操作位置,确定所述目标障碍块中被选中的单元块;每个障碍块包括至少两个单元块;
以所述目标障碍块中被选中的单元块为旋转中心,将所述目标障碍块向第一预设方向旋转预设角度,其中,所述第一预设方向为顺时针方向或逆时针方向。
处理器800还用于读取存储器820中的程序,执行如下步骤:
存储所述验证码信息,所述验证码信息还包括复位次数上限;
接收用户的复位操作;
响应于所述复位操作,记录当前复位次数,并判断所述复位次数是否超过所述复位次数上限;
在所述复位次数超过所述复位次数上限的情况下,通过收发机810向所述服务端设备获取新的验证码信息;
在所述复位次数未超过所述复位次数上限的情况下,基于所存储的验证码信息,重新生成验证界面。
本发明实施例提供的客户端设备,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种服务端设备。由于服务端设备解决问题的原理与本发明实施例中图5所示的验证码的验证方法相似,因此该服务端设备的实施可以参见方法的实施,重复之处不再赘述。如图9所示,本发明实施例的终端,包括:处理器900,用于读取存储器920中的程序,执行下列过程:
生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;
通过收发机910向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;
通过收发机910接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。
收发机910,用于在处理器900的控制下接收和发送数据。
其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器900代表的一个或多个处理器和存储器920代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机910可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
处理器900负责管理总线架构和通常的处理,存储器920可以存储处理器900在执行操作时所使用的数据。
处理器900还用于读取存储器920中的程序,执行如下步骤:
设置验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置;
生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块均不位于所述滑道上;
分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向包括上下左右四个方向中的一个或多个,生成的每个障碍块均不位于所述滑道上;
对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上;
将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息,封装成验证码信息。
处理器900还用于读取存储器920中的程序,执行如下步骤:
在接收到所述客户端设备发送的验证码获取请求的情况下,生成验证码信息;
基于所述验证码获取请求的接收时间,获取时间戳;
基于所述时间戳,获得至少两个随机值;
基于所述至少两个随机值,生成至少两个初始单元块,并将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,其中,所述至少两个初始单元块的数量与所述至少两个随机值的数量一致。
处理器900还用于读取存储器920中的程序,执行如下步骤:
基于所述时间戳,获得至少两个随机方向值,其中,所述至少两个随机方向值的数量与所述至少两个初始单元的数量一致;
基于所述随机方向值,确定每个初始单元块对应的延展方向;
分别对每个初始单元块向对应的延展方向延展,得到对应的包括至少两个单元块的障碍块。
处理器900还用于读取存储器920中的程序,执行如下步骤:
获取所述客户端设备的用户ID;
将所述时间戳与所述用户ID进行随机移位加法,得到种子值;
对所述种子值按预设位数进行拆分,得到至少两个随机值。
所述验证码中指示有所述目标滑块的位置信息;
处理器900还用于读取存储器920中的程序,执行如下步骤:
基于所述验证码,判断所述目标滑块是否位于所述目标位置;其中,所述验证码包括所述目标滑块的位置信息;
在所述目标滑块位于所述目标位置的情况下,确认验证通过。
本发明实施例提供的服务端设备,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
此外,本发明实施例的计算机可读存储介质,用于存储计算机程序,所述计算机程序可被处理器执行实现以下步骤:
接收服务端设备发送的验证码信息;
基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;
基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码。
其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息;
所述基于所述验证码信息,生成验证界面,包括:
基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小;
将所述验证区域映射成二维数组,并基于所述验证码信息中的单元块初始状态信息,确定所述二维数组中各数组元素的值,其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空;
基于所述验证码信息中的滑道位置信息,确定所述滑道在所述验证区域中的位置;
基于所述验证区域的大小、所述二维数组中各数组元素的值和所述目标位置信息,生成验证界面。
其中,所述基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,包括:
接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
响应于所述旋转操作,旋转所述目标障碍块;
在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
其中,每个障碍块包括至少两个单元块;
所述响应于所述旋转操作,旋转所述目标障碍块,包括:
基于所述旋转操作的操作位置,确定所述目标障碍块中被选中的单元块;
以所述目标障碍块中被选中的单元块为旋转中心,将所述目标障碍块向第一预设方向旋转预设角度,其中,所述第一预设方向为顺时针方向或逆时针方向。
其中,所述接收服务端发送的验证码信息之后,所述方法还包括:
存储所述验证码信息,所述验证码信息还包括复位次数上限;
所述基于所述验证码信息,生成验证界面之后,所述方法还包括:
接收用户的复位操作;
响应于所述复位操作,记录当前复位次数,并判断所述复位次数是否超过所述复位次数上限;
在所述复位次数超过所述复位次数上限的情况下,向所述服务端设备获取新的验证码信息;
在所述复位次数未超过所述复位次数上限的情况下,基于所存储的验证码信息,重新生成验证界面。
或者,所述计算机程序可被处理器执行实现以下步骤:
生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;
向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;
接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的。
其中,所述生成验证码信息,包括:
设置验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置;
生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块均不位于所述滑道上;
分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向包括上下左右四个方向中的一个或多个,生成的每个障碍块均不位于所述滑道上;
对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上;
将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息,封装成验证码信息。
其中,所述生成验证码信息,包括:
在接收到所述客户端设备发送的验证码获取请求的情况下,生成验证码信息;
其中,所述生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,包括:
基于所述验证码获取请求的接收时间,获取时间戳;
基于所述时间戳,获得至少两个随机值;
基于所述至少两个随机值,生成至少两个初始单元块,并将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,其中,所述至少两个初始单元块的数量与所述至少两个随机值的数量一致。
其中,所述分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,包括:
基于所述时间戳,获得至少两个随机方向值,其中,所述至少两个随机方向值的数量与所述至少两个初始单元的数量一致;
基于所述随机方向值,确定每个初始单元块对应的延展方向;
分别对每个初始单元块向对应的延展方向延展,得到对应的包括至少两个单元块的障碍块。
其中,所述基于所述时间戳,获得至少两个随机值,包括:
获取所述客户端设备的用户ID;
将所述时间戳与所述用户ID进行随机移位加法,得到种子值;
对所述种子值按预设位数进行拆分,得到至少两个随机值。
其中,所述验证码中指示有所述目标滑块的位置信息;
所述对所述验证码进行验证,包括:
基于所述验证码,判断所述目标滑块是否位于所述目标位置;
在所述目标滑块位于所述目标位置的情况下,确认验证通过。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种验证码的验证方法,应用于客户端设备,其特征在于,所述方法包括:
接收服务端设备发送的验证码信息;
基于所述验证码信息,生成验证界面,其中,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;
基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,包括:
接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
响应于所述旋转操作,旋转所述目标障碍块;
在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
2.根据权利要求1所述的方法,其特征在于,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示所述目标滑块和所述至少两个障碍块的位置信息;
所述基于所述验证码信息,生成验证界面,包括:
基于所述验证码信息中的验证区域大小信息,确定所述验证区域的大小;
将所述验证区域映射成二维数组,并基于所述验证码信息中的单元块初始状态信息,确定所述二维数组中各数组元素的值,其中,对应同一单元块的数组元素值相同,对应不同单元块的数组元素值不同,未对应单元块的数组元素值为空;
基于所述验证码信息中的滑道位置信息,确定所述滑道在所述验证区域中的位置;
基于所述验证区域的大小、所述二维数组中各数组元素的值和所述目标位置信息,生成验证界面。
3.根据权利要求1所述的方法,其特征在于,每个障碍块包括至少两个单元块;
所述响应于所述旋转操作,旋转所述目标障碍块,包括:
基于所述旋转操作的操作位置,确定所述目标障碍块中被选中的单元块;
以所述目标障碍块中被选中的单元块为旋转中心,将所述目标障碍块向第一预设方向旋转预设角度,其中,所述第一预设方向为顺时针方向或逆时针方向。
4.根据权利要求1所述的方法,其特征在于,所述接收服务端发送的验证码信息之后,所述方法还包括:
存储所述验证码信息,所述验证码信息还包括复位次数上限;
所述基于所述验证码信息,生成验证界面之后,所述方法还包括:
接收用户的复位操作;
响应于所述复位操作,记录当前复位次数,并判断所述复位次数是否超过所述复位次数上限;
在所述复位次数超过所述复位次数上限的情况下,向所述服务端设备获取新的验证码信息;
在所述复位次数未超过所述复位次数上限的情况下,基于所存储的验证码信息,重新生成验证界面。
5.一种验证码的验证方法,应用于服务端设备,其特征在于,所述方法包括:
生成验证码信息,其中,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;
向客户端设备发送所述验证码信息,以使所述客户端设备基于所述验证码信息,生成验证界面;
接收所述客户端设备发送的验证码,并对所述验证码进行验证,其中,所述验证码是基于用户在所述验证界面输入的验证操作生成的;
所述生成验证码信息,包括:
设置验证区域的大小、目标位置、滑道在所述验证区域中的位置和目标滑块在所述验证区域中的位置;
生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,其中,每个初始单元块均不位于所述滑道上;
分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,其中,所述第二预设方向包括上下左右四个方向中的一个或多个,生成的每个障碍块均不位于所述滑道上;
对所生成的障碍块进行随机旋转,使得至少一个障碍块位于所述滑道上;
将所设置的验证区域大小、目标位置、目标滑道在所述验证区域中的位置、目标滑块在所述验证区域中的位置和旋转后的障碍块位置信息,封装成验证码信息。
6.根据权利要求5所述的方法,其特征在于,所述生成验证码信息,包括:
在接收到所述客户端设备发送的验证码获取请求的情况下,生成验证码信息;
其中,所述生成至少两个初始单元块,并设定每个初始单元块在所述验证区域中的位置,包括:
基于所述验证码获取请求的接收时间,获取时间戳;
基于所述时间戳,获得至少两个随机值;
基于所述至少两个随机值,生成至少两个初始单元块,并将每个随机值转换成对应初始单元块在所述验证区域中的坐标位置信息,其中,所述至少两个初始单元块的数量与所述至少两个随机值的数量一致。
7.根据权利要求6所述的方法,其特征在于,所述分别对每个初始单元块向第二预设方向延展,得到对应的包括至少两个单元块的障碍块,包括:
基于所述时间戳,获得至少两个随机方向值,其中,所述至少两个随机方向值的数量与所述至少两个初始单元的数量一致;
基于所述随机方向值,确定每个初始单元块对应的延展方向;
分别对每个初始单元块向对应的延展方向延展,得到对应的包括至少两个单元块的障碍块。
8.根据权利要求6所述的方法,其特征在于,所述基于所述时间戳,获得至少两个随机值,包括:
获取所述客户端设备的用户ID;
将所述时间戳与所述用户ID进行随机移位加法,得到种子值;
对所述种子值按预设位数进行拆分,得到至少两个随机值。
9.根据权利要求5所述的方法,其特征在于,所述验证码中指示有所述目标滑块的位置信息;
所述对所述验证码进行验证,包括:
基于所述验证码,判断所述目标滑块是否位于所述目标位置;
在所述目标滑块位于所述目标位置的情况下,确认验证通过。
10.一种验证码的验证系统,其特征在于,包括客户端设备和服务端设备,其中,所述服务端设备用于生成验证码信息,所述验证码信息包括验证区域大小信息、单元块初始状态信息、滑道位置信息和目标位置信息,所述单元块初始状态信息用于指示目标滑块和至少两个障碍块的位置信息;向所述客户端设备发送所述验证码信息;
所述客户端设备用于接收所述服务端设备发送的验证码信息;基于所述验证码信息,生成验证界面,所述验证界面展示有验证区域、目标位置及位于所述验证区域内的一个目标滑块、至少两个障碍块和一个滑道,所述目标滑块位于所述滑道的起始位置,并可沿所述滑道滑动且可滑动至所述目标位置,所述至少两个障碍块中的至少一个障碍块位于所述滑道上;基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码;
所述服务端设备还用于接收所述客户端设备发送的验证码息,并对所述验证码进行验证;
所述基于用户在所述验证界面输入的验证操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,包括:
接收用户在所述验证界面对所述至少两个障碍块中的目标障碍块的旋转操作;
响应于所述旋转操作,旋转所述目标障碍块;
在所述滑道上不存在障碍块的情况下,接收用户将所述目标滑块沿所述滑道滑动至所述目标位置的滑动操作;
响应于所述滑动操作,生成验证码状态数据作为待验证的验证码,并向所述服务端设备发送所述验证码,所述验证码中指示有所述目标滑块的位置信息。
11.一种客户端设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器,用于读取存储器中的程序实现如权利要求1至4中任一项所述的方法中的步骤。
12.一种服务端设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器,用于读取存储器中的程序实现如权利要求5至9中任一项所述的方法中的步骤。
13.一种计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法中的步骤;或者实现如权利要求5至9中任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011108208.7A CN112199658B (zh) | 2020-10-16 | 2020-10-16 | 验证码的验证方法、系统、客户端设备及服务端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011108208.7A CN112199658B (zh) | 2020-10-16 | 2020-10-16 | 验证码的验证方法、系统、客户端设备及服务端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199658A CN112199658A (zh) | 2021-01-08 |
CN112199658B true CN112199658B (zh) | 2024-04-09 |
Family
ID=74009191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011108208.7A Active CN112199658B (zh) | 2020-10-16 | 2020-10-16 | 验证码的验证方法、系统、客户端设备及服务端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199658B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014139956A1 (en) * | 2013-03-15 | 2014-09-18 | Wonga Technology Limited | Method and system for user acceptability |
CN105718783A (zh) * | 2014-12-03 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 验证码交互方法、装置、客户端和服务器 |
CN105956454A (zh) * | 2016-04-29 | 2016-09-21 | 湖南博广信息科技有限公司 | 一种可用于题库学习的滑动解锁方法 |
CN109271762A (zh) * | 2018-08-03 | 2019-01-25 | 平安科技(深圳)有限公司 | 基于滑块验证码的用户认证方法及装置 |
CN109902470A (zh) * | 2019-01-08 | 2019-06-18 | 平安科技(深圳)有限公司 | 滑块验证方法、装置、计算机设备及存储介质 |
CN111311619A (zh) * | 2018-12-12 | 2020-06-19 | 北京京东尚科信息技术有限公司 | 一种实现滑块验证的方法和装置 |
-
2020
- 2020-10-16 CN CN202011108208.7A patent/CN112199658B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014139956A1 (en) * | 2013-03-15 | 2014-09-18 | Wonga Technology Limited | Method and system for user acceptability |
CN105718783A (zh) * | 2014-12-03 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 验证码交互方法、装置、客户端和服务器 |
CN105956454A (zh) * | 2016-04-29 | 2016-09-21 | 湖南博广信息科技有限公司 | 一种可用于题库学习的滑动解锁方法 |
CN109271762A (zh) * | 2018-08-03 | 2019-01-25 | 平安科技(深圳)有限公司 | 基于滑块验证码的用户认证方法及装置 |
CN111311619A (zh) * | 2018-12-12 | 2020-06-19 | 北京京东尚科信息技术有限公司 | 一种实现滑块验证的方法和装置 |
CN109902470A (zh) * | 2019-01-08 | 2019-06-18 | 平安科技(深圳)有限公司 | 滑块验证方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112199658A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8990959B2 (en) | Manipulable human interactive proofs | |
US20140173713A1 (en) | Verification Code Generation and Verification Method and Apparatus | |
US20110197268A1 (en) | Captchas that include overlapped characters, projections on virtual 3d surfaces, and/or virtual 3d objects | |
EP3312757B1 (en) | Securing computing resources | |
CN111753280B (zh) | 验证码验证方法、装置及电子设备 | |
CN110120928A (zh) | 一种身份认证的方法、装置、服务器及计算机可读介质 | |
CN106776785B (zh) | 一种数据写入方法及装置和数据处理系统 | |
CN107888553A (zh) | 一种验证方法、服务器和系统 | |
CN108809654B (zh) | 动态验证码生成方法、基于动态验证码的验证方法及装置 | |
CN111523105B (zh) | 基于语义理解的交互式图片验证方法 | |
CN112199658B (zh) | 验证码的验证方法、系统、客户端设备及服务端设备 | |
CN103731424B (zh) | 一种网络数据的传输方法、装置及系统 | |
CN107623664A (zh) | 一种密码输入方法及装置 | |
CN116611114B (zh) | 基于图像文件的头文件实现地图栅格数据加密及偏移方法 | |
CN110585727B (zh) | 一种资源获取方法及装置 | |
CN112784566A (zh) | 单证生成方法、装置、设备及存储介质 | |
CN102148686A (zh) | 一种基于角色变形的图形密码认证方法 | |
US20170168581A1 (en) | Method and Device for Controlling Operation Components Based on Somatosensory | |
CN115765976B (zh) | 验证码加密方法、电子设备及存储介质 | |
CN103731265B (zh) | 口令校验方法、客户端和服务器端、终端口令系统 | |
CN113158167B (zh) | 验证码实现方法及电子设备和计算机可读存储介质 | |
CN109951275A (zh) | 密钥生成方法、装置、计算机设备及存储介质 | |
KR100844195B1 (ko) | 그래픽 오티피를 이용한 사용자 인증 방법 | |
CN110348185B (zh) | 验证码的实现方法、装置、设备和计算机存储介质 | |
CN108875349B (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 |