CN110348185B - 验证码的实现方法、装置、设备和计算机存储介质 - Google Patents
验证码的实现方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN110348185B CN110348185B CN201810300820.0A CN201810300820A CN110348185B CN 110348185 B CN110348185 B CN 110348185B CN 201810300820 A CN201810300820 A CN 201810300820A CN 110348185 B CN110348185 B CN 110348185B
- Authority
- CN
- China
- Prior art keywords
- verification code
- path point
- path
- prototype
- abscissa
- 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
Images
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
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)
- Storage Device Security (AREA)
Abstract
本发明公开了一种验证码的实现方法、装置、设备和计算机存储介质。该方法包括:根据预设的验证码原型配置库随机选取验证码原型;获取验证码原型的矢量路径,对验证码原型的矢量路径执行干扰算法,并获取验证码原型的干扰矢量路径;根据干扰矢量路径绘制成图像,并将图像作为最终验证码;将最终验证码和验证码原型配置库中验证码原型对应的提示语发送至客户端;接收客户端提交的验证信息,并根据验证信息和验证码原型配置库中验证码原型的名称,确定返回客户端的返回信息。根据本发明实施例提供的验证码的实现方法、装置、设备和计算机存储介质,提高了验证码的安全性。
Description
技术领域
本发明涉及数据业务领域,尤其涉及一种验证码的实现方法、装置、设备和计算机存储介质。
背景技术
验证码是全自动区分计算机和人类的图灵测试(Completely AutomatedPublicTuring test to tell Computers and Humans Apart,CAPTCHA)的缩写,是一种区分用户是计算机还是人的公共全自动程序。验证码可以防止恶意破解密码、刷票、论坛灌水以及有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试等行为。
目前,验证码的形式有多种,例如由图1所示的数字和字母组成的传统验证码、图2所示的中文验证码、图3所示的动态验证码、图4所示的滑动拼图或图5所示的图中点选等形式。但是,现有的验证码容易被定制编写的程序破解,验证码的安全性较低。
发明内容
本发明实施例提供的验证码的实现方法、装置、设备和计算机存储介质,提高了验证码的安全性。
根据本发明实施例的一方面,提供一种验证码的实现方法,该方法包括:
根据预设的验证码原型配置库随机选取验证码原型;
获取验证码原型的矢量路径,对验证码原型的矢量路径执行干扰算法,并获取验证码原型的干扰矢量路径;
根据干扰矢量路径绘制成图像,并将图像作为最终验证码;
将最终验证码和验证码原型配置库中验证码原型对应的提示语发送至客户端;
接收客户端提交的验证信息,并根据验证信息和验证码原型配置库中验证码原型的名称,确定返回客户端的返回信息。
在一个实施例中,干扰算法包括基于验证码原型的矢量路径和路径点,确定验证码原型的干扰矢量路径。
在一个实施例中,基于验证码原型的矢量路径和路径点,确定验证码原型的干扰矢量路径,包括:
利用验证码原型的第一路径点、第二路径点和随机因子,计算生成第三路径点;
根据第一路径点、第二路径点、第三路径点和验证码原型的矢量路径,确定验证码原型的干扰矢量路径。
在一个实施例中,验证码原型包括可缩放矢量图形SVG图形。
在一个实施例中,最终验证码为需要用户推理后进行验证的图像。
在一个实施例中,根据验证信息和验证码原型配置库中验证码原型的名称,确定返回客户端的返回信息,包括:
若用户提交的验证信息与验证码原型的名称相同,返回验证成功至客户端;
若用户提交的验证信息与验证码原型的名称不相同,更新最终验证码,并将更新后的最终验证码和更新后的最终验证码对应的提示语返回至客户端。
根据本发明实施例的另一方面,提供一种验证码的实现装置,该装置包括:
处理模块,用于根据预设的验证码原型配置库随机选取验证码原型;
获取验证码原型的矢量路径,对验证码原型的矢量路径执行干扰算法,并获取验证码原型的干扰矢量路径;
根据干扰矢量路径绘制成图像,并将图像作为最终验证码。
收发模块,用于将最终验证码和验证码原型配置库中验证码原型对应的提示语发送至客户端;
接收客户端提交的验证信息,并根据验证信息和验证码原型配置库中验证码原型的名称,确定返回客户端的返回信息。
在一个实施例中,干扰算法包括基于验证码原型的矢量路径和路径点,确定验证码原型的干扰矢量路径的算法。
在一个实施例中,干扰矢量路径是根据验证码原型的第一路径点、验证码原型的第二路径点、第三路径点和验证码原型的矢量路径,确定的干扰矢量路径;
第三路径点是根据验证码原型的第一路径点、验证码原型的第二路径点和随机因子计算生成的路径点。
在一个实施例中,最终验证码为需要用户推理后进行验证的图像。
根据本发明实施例的再一方面,提供一种验证码的实现设备,该设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现本发明实施例提供的验证码的实现方法。
根据本发明实施例的再一方面,提供一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现本发明实施例提供的验证码的实现方法。
根据本发明实施例中的验证码的实现方法、装置、设备和计算机存储介质,通过利用随机干扰后的验证码原型作为最终验证码,并将最终验证码和验证码原型对应的提示语发送至客户端,使客户端的用户结合提示语和最终验证码进行验证,提高了验证码的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出由数字和字母组成的传统验证码的示意图;
图2示出中文验证码的示意图;
图3示出动态验证码的示意图;
图4示出滑动拼图验证码的示意图;
图5示出图中点选验证码的示意图;
图6示出本发明一实施例提供的验证码的实现方法的流程示意图;
图7示出本发明一实施例提供的验证码原型为SVG矢量图形的示意图;
图8示出本发明一实施例提供的SVG矢量图形的路径代码的示意图;
图9示出本发明一实施例提供的干扰后的SVG矢量图形的示意图;
图10示出本发明另一实施例提供的验证码原型以及对应的干扰后的验证码原型的示意图;
图11示出本发明一实施例提供的客户端显示的验证码的图片;
图12示出了根据本发明另一实施例提供的验证码的实现装置的结构示意图;
图13示出根据发明一实施例的验证码的实现设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了解决现有技术中的验证码容易被定制程序恶意破解的问题,本发明实施例提供了一种验证码的实现方法、装置、设备和计算机存储介质,通过利用随机干扰后的验证码原型结合验证码原型对应的提示语,使客户端的用户进行验证,能够防止验证码被程序恶意破解,增强了验证码的安全性。
下面首先结合附图对本发明实施例提供的验证码的实现方法进行详细说明。
图6示出根据本发明实施例提供的验证码的实现方法的流程示意图。如图6所示,本实施例中的验证码的实现方法100包括以下步骤:
S110,根据预设的验证码原型配置库随机选取验证码原型。
在本发明的实施例中,预设的验证码原型的配置库包括多个验证码原型的身份标识信息(Identification,ID)、验证码原型的名称、验证码原型对应的磁盘路径和验证码原型对应的提示语。作为一个示例,验证码原型的配置库如表1所示。
表1
其中,验证码原型的身份标识信息包括数字编号,验证码原型的名称即为验证码原型对应的正确答案。对于验证码原型配置库中验证码原型的数量以及验证码原型库中信息的种类和具体设置形式,本发明实施例不做具体限制。
通过本发明实施例提供的验证码的实现方法,用户可自由扩展验证码原型配置库,实现自由定制,具有很大的灵活性。
在本发明的实施例中,当需要配置验证码时,首先读取预设的验证码原型配置库,并从中随机选取一验证码原型进行配置验证码。作为一个示例,从表1所示的验证码原型配置库中随机选取的验证码原型的配置信息如下:ID为“6”,名称为“包子”,磁盘路径为“/model/6.svg”,提示语为“一种食物的名称(两个字)”。
S120,获取验证码原型的矢量路径,对验证码原型的矢量路径执行干扰算法,并获取验证码原型的干扰矢量路径。
在本发明的实施例中,验证码原型包括可缩放矢量图形(ScalableVectorGraphics,SVG)图形。其中,SVG图形是一种矢量图形,该图形一般通过路径点和矢量路径等数据进行描述。其中,矢量路径是指矢量图形中连接不同路径点的具有方向的线条,例如直线、圆和曲线等等,路径点则是确定矢量路径的基准。作为一个示例,A点为起始路径点,B点为终止路径点,A点和B点通过直线连接,则A点和B点之间的矢量路径为由A点指向B点的直线。通过利用不同的矢量路径将多个路径点进行连接,从而构成SVG图形的整个路径。在矢量图形中记录的一般是图形中每个路径点的坐标和矢量路径的信息,当缩放SVG图形时,实际改变的是每个路径点和矢量路径的位置,因此SVG图形的任意缩放对分辨率没有影响。
在本发明的实施例中,根据预设的验证码配置库,读取随机选取的验证码原型的磁盘路径,以获取该验证码原型对应的源文件。通过解析验证码原型对应的源文件可以获取该验证码原型的矢量路径和路径点的坐标。
作为一个示例,随机选取的验证码原型为如图7所示的SVG图形,通过解析该SVG图形对应的源文件,可以获取该SVG图形的矢量路径信息和路径点的坐标。图8示出解析出的SVG图形的矢量路径的代码。
SVG是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。因此根据SVG标准(例如,命令M=MoveTo代表“移动到”,C=CurveTo代表“三次贝塞尔曲线到”,命令Z=ClosePath代表“关闭路径”等等),可以从图8所示的代码中获取图7中的SVG图形的矢量路径信息和路径点的坐标。也就是说,根据SVG标准可以获取图7中所有路径点的坐标,以及相邻两个路径点之间的矢量路径信息。其中,矢量路径信息是指该矢量路径的具体绘制形式,例如直线或曲线等,以及该矢量路径对应的路径点。
在本发明的实施例中,干扰算法包括基于验证码原型的矢量路径和路径点,确定验证码原型的干扰矢量路径。通过解析验证码原型的源文件后,可获取验证码原型的矢量路径信息和路径点坐标。然后通过利用验证码原型的路径点的坐标进行随机干扰计算,使验证码原型的矢量路径实现横纵扭曲。具体地,干扰算法包括以下步骤:
步骤A,利用验证码原型的第一路径点、第二路径点和随机因子,计算生成第三路径点。
作为一个示例,当第一路径点的横坐标X1和第二路径点的横坐标X2满足第一条件时,即X1和X2差值的绝对值大于等于第一预设阈值时,根据第一路径点的横坐标X1和第一横坐标偏移量ΔX1确定第三路径点的横坐标X,并根据第一路径点的纵坐标Y1和第一纵坐标偏移量ΔY1确定第三路径点的纵坐标Y。其中,ΔX1由X1和X2确定,ΔY1由Y1、Y2和随机因子确定。
作为一个具体示例,当第一预设阈值为14时,即当X1和X2的差值的绝对值大于等于14时,第三路径点的横坐标X和纵坐标Y可以用下面的表达式进行计算:
X=X1+ΔX1=X1+|X1-X2|/2 (1)
Y=Y1+ΔY1=Y1+|Y1-Y2|/2+[Y1+|Y1-Y2|/2]*R*B (2)
其中,R为0到1之间的任一随机数,当R大于0.5时,B=1,当R小于等于0.5时,B=-1。
当X1和X2满足第二条件时,即X1和X2差值的绝对值小于第一预设阈值且Y1和Y2差值的绝对值大于第二预设阈值时,根据X1和第二横坐标偏移量ΔX2确定第三路径点的横坐标X,并根据第一路径点的纵坐标Y1和第二纵坐标偏移量ΔY2确定第三路径点的纵坐标Y。其中,ΔX2由X1、X2和随机因子确定,ΔY2由Y1和Y2确定。
作为一个具体示例,当第一预设阈值和第二预设阈值均为14时,即当X1和X2的差值的绝对值小于14,且Y1和Y2差值的绝对值大于14时,第三路径点的横坐标X和纵坐标Y可以用下面的表达式进行计算:
X=X1+ΔX2=X1+|X1-X2|/2+[X1+|X1-X2|/2]*R*B (3)
Y=Y1+ΔY2=Y1+|Y1-Y2|/2 (4)
其中,R为0到1之间的任一随机数,当R大于0.5时,B=1,当R小于等于0.5时,B=-1。
当X1和X2既不满足第一条件也不满足第二条件时,则不对第一路径点和第二路径点进行干扰处理。当X1和X2既不满足第一条件也不满足第二条件时,则可能存在下述两种情况。
情况一:由于第一路径点和第二路径点的距离过近,此时对第一路径点和第二路径点进行干扰计算后无意义,这种无意义的干扰会增加对验证码原型进行干扰计算的时间,降低验证码在客户端的显示速度。
情况二:对第一路径点和第二路径点进行干扰计算后,对SVG图片的形态造成很大的影响,这种影响可能会导致用户对客户端显示的验证码的识别率较低。
因此对于不满足不第一条件也不满足第二条件的路径点,不予以随机干扰处理。
对于第一条件和第二条件的设定以及第一预设阈值和第二预设阈值的选取,本发明实施例不做具体限制,在不影响验证码原型所表达的形态下实现对验证码原型的随机干扰即可。
步骤B,根据第一路径点、第二路径点、第三路径点和验证码原型的矢量路径,确定验证码原型的干扰矢量路径。
在本发明的实施例中,根据第一路径点的坐标和第二路径点的坐标计算出第三路径点的坐标之后,将第一路径点、第三路径点和第二路径点按照第一路径点和第二路径点之间的矢量路径的绘制方式进行依次连接,以获取验证码原型的干扰矢量路径。作为一个示例,将第一路径点至第二路径点的矢量路径,可以替换为:第一路径点至第三路径点的矢量路径,以及第三路径点至第二路径点的矢量路径。也就是说,将一段矢量路径替换为两段矢量路径。
在本发明的实施例中,干扰算法是对验证码原型的矢量路径(线条)进行干扰处理,确保同一个验证码原型进行不同的随机干扰后每次产生的结果都不同,防止在预设的验证码原型配置库的图像数量较少时,被程序对比破解,提高了验证码的安全性。
S130,根据干扰矢量路径绘制成图像,并将图像作为最终验证码。
在本发明的实施例中,获取验证码原型的干扰矢量路径后,利用绘图工具可根据干扰计算后的路径点和矢量路径重新绘制成图像,该图像即为最终验证码。
作为一个具体示例,三个路径点和三个路径点之间的矢量路径构成SVG图形。其中,三个路径点从起点到终点依次分别为A点、B点和C点,并且A点和B点之间的矢量路径为由A点指向B点的直线,B点和C点之间的矢量路径为由B点指向C点的曲线。首先将A点作为第一路径点,B点作为第二路径点,并利用A点和B点的坐标计算出第三路径点E点的坐标;然后将B点作为第一路径点,C点作为第二路径点,并利用B点和C点的坐标计算出第三路径点F点的坐标;最后将A点、E点和B点按照直线依次连接,并将B点、F点和C点按照曲线依次连接,即可得到干扰后的验证码原型。
作为一个示例,图9为对图7中所示的SVG图形干扰后的图形。作为另外一个示例,图10示出了验证码原型名称为“焚书坑儒”的验证码原型和干扰后的图形。由图9和图10可以看出,干扰后的验证码原型没有丢失验证码原型原有的形态,不影响用户进行辨识,并且干扰后的验证码原型可以避免被程序对比破解,提高了验证码的安全性。
S140,将最终验证码和验证码原型配置库中验证码原型对应的提示语发送至客户端。
在本发明的实施例中,完成最终验证码的绘制后,将最终验证码和验证码原型对应的提示语一同发送至客户端,以使在客户端显示最终验证码和验证码原型对应的提示语。作为一个示例,图11为客户端显示的图片,该图片中示出最终验证码和提示语“一种食物的名称(两个字)”。
在本发明的实施例中,最终验证码为需要用户推理后进行验证的图像。推理是由一个或几个已知的前提条件推断出结论的过程。在本发明的实施例中,已知的前提条件为最终验证码和验证码原型对应的提示语。客户端的用户需要对最终验证码进行声调替换、音译、联想或组合等思考,并结合提示语推断出正确答案。
作为一个示例,如图11所示,图中显示一只鸡抱着一个冒着火的炸(四声)弹,考虑到一个字有多种读音,炸有二声和四声两个声调,根据提示语“一种食物的名称(两个字)”,将炸进行四声到二声的替换,可以推断出该验证码的正确答案为一种食物“炸(二声)鸡”。
本发明实施例提供的基于用户推理后的图片配合提示语,使用人类特有的抽象性图形联系性思维能力将图片正确还原为成语、名词、历史事件等完成验证,而人类的推理思维是无规律可寻的,因此程序无法破解。在此基础上实现的智能图形验证,提高了验证码的安全性。
S150,接收客户端提交的验证信息,并根据验证信息和验证码原型配置库中验证码原型的名称,确定返回客户端的返回信息。
在本发明的实施例中,步骤S150包括以下步骤:
S150-1,若用户提交的验证信息与验证码原型的名称相同,返回验证成功至客户端。
在本发明的实施例中,若用户提交的验证信息与验证码原型的名称相同,则代表用户根据最终验证码和提示语成功推断出正确答案,则返回验证成功至客户端,以便继续执行后续定义的逻辑。
S150-2,若用户提交的验证信息与验证码原型的名称不相同,更新最终验证码,并将更新后的最终验证码和更新后的最终验证码对应的提示语返回至客户端。
在本发明的实施例中,若用户提交的验证信息与验证码原型的名称不同,则代表验证失败。此时将会重复步骤S110-步骤S140以生成新的最终验证码,并将更新后的最终验证码和更新后的最终验证码对应的提示语返回至客户端,使客户端的用户继续进行验证。
根据本发明实施例提供的验证码的实现方法,通过基于需要用户进行推理的图像结合提示语,使人类通过推理后还原出验证码对应的正确答案,增强了用户的识别能力。由于需要人类的推理才能完成验证,因此避免了被定制的程序破解,保证了验证码的安全性。并且最终验证码是对验证码原型干扰后的图像,也防止了被程序进行验证码原型库的对比破解,提升了验证码的安全性。
图12出本发明一实施例的验证码的实现装置200的结构示意图,如图12所示,验证码的实现装置200,包括:
处理模块210,用于根据预设的验证码原型配置库随机选取验证码原型;
获取验证码原型的矢量路径,对验证码原型的矢量路径执行干扰算法,并获取验证码原型的干扰矢量路径;
将干扰矢量路径绘制成图像,并将图像作为最终验证码;
收发模块220,用于将最终验证码和验证码原型配置库中验证码原型对应的提示语发送至客户端;
接收客户端提交的验证信息,并根据验证信息和验证码原型配置库中验证码原型的名称,确定返回客户端的返回信息。
本发明实施例提供的验证码的实现装置,对于验证码原型配置库的设置可以根据用户的需求自由扩展和配置,支持动态扩展。
在本发明的实施例中,验证码原型包括可缩放矢量图形SVG图形。
在本发明的实施例中,干扰算法包括基于验证码原型的矢量路径和路径点,确定验证码原型的干扰矢量路径的算法。
其中,干扰矢量路径是根据验证码原型的第一路径点、验证码原型的第二路径点、第三路径点和验证码原型的矢量路径,确定的干扰矢量路径。
第三路径点是根据验证码原型的第一路径点、验证码原型的第二路径点和随机因子计算生成的路径点。
本发明实施例提供的验证码的实现装置,通过对验证码原型执行干扰算法,能够保证验证码原型每一次被干扰后产生的结果不同,避免验证码原型配置库被程序对比破解,保证了验证码的安全性。
在本发明的实施例中,收发模块220具体可以用于:
若用户提交的验证信息与验证码原型的名称相同,返回验证成功至客户端;
若用户提交的验证信息与验证码原型的名称不相同,更新最终验证码,并将更新后的最终验证码和更新后的最终验证码对应的提示语返回至客户端。
在本发明的实施例中,最终验证码为需要用户推理后进行验证的图像。
通过本发明实施例提供的验证码的实现装置,利用需要用户推理后进行验证的图像和最终验证码对应的提示语相结合,使用户需要经过推理思考后才能实现对验证码的成功验证,有效避免了验证码被程序的恶意破解,大大提升了验证码的安全性。
本发明实施例提供的验证码的实现装置,兼容性强,对集成系统没有环境要求,可实现组件的低耦合性封装。
根据本发明实施例的验证码的实现装置的其他细节与以上结合图6至图11描述的根据本发明实施例的验证码的实现方法类似,在此不再赘述。
结合图6至图12描述的根据本发明实施例的验证码的实现方法和装置可以由验证码的实现设备来实现。图13是示出根据发明实施例的验证码的实现设备的硬件结构300示意图。
如图13所示,本实施例中的验证码的实现设备300包括:处理器301、存储器302、通信接口303和总线310,其中,处理器301、存储器302、通信接口303通过总线310连接并完成相互间的通信。
具体地,上述处理器301可以包括中央处理器(CPU),或者特定集成电路(ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器302可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器302可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器302可在验证码的实现设备300的内部或外部。在特定实施例中,存储器302是非易失性固态存储器。在特定实施例中,存储器302包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
通信接口303,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线310包括硬件、软件或两者,将验证码的实现设备300的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
也就是说,图13所示的验证码的实现设备300可以被实现为包括:处理器301、存储器302、通信接口303和总线310。处理器301、存储器302和通信接口303通过总线310连接并完成相互间的通信。存储器302用于存储程序代码;处理器301通过读取存储器302中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行本发明任一实施例中的验证码的实现方法,从而实现结合图6至图12描述的验证码的实现方法和装置。
本发明实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的验证码的实现方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种验证码的实现方法,其特征在于,所述方法包括:
根据预设的验证码原型配置库随机选取验证码原型;
获取所述验证码原型的矢量路径,对所述验证码原型的矢量路径执行干扰算法,并获取所述验证码原型的干扰矢量路径;
根据所述干扰矢量路径绘制成图像,并将所述图像作为最终验证码;
将所述最终验证码和所述验证码原型配置库中所述验证码原型对应的提示语发送至客户端;
接收客户端提交的验证信息,并根据所述验证信息和所述验证码原型配置库中所述验证码原型的名称,确定返回客户端的返回信息;
所述干扰算法包括基于所述验证码原型的矢量路径和路径点,确定所述验证码原型的干扰矢量路径;
所述基于所述验证码原型的矢量路径和路径点,确定所述验证码原型的干扰矢量路径,包括:
利用所述验证码原型的第一路径点、第二路径点和随机因子,计算生成第三路径点;
根据所述第一路径点、所述第二路径点、所述第三路径点和所述验证码原型的矢量路径,确定所述验证码原型的干扰矢量路径;
所述利用所述验证码原型的第一路径点、第二路径点和随机因子,计算生成第三路径点,包括:
在所述第一路径点的横坐标和所述第二路径点的横坐标满足第一条件的情况下,根据所述第一路径点的横坐标和第一横坐标偏移量,确定所述第三路径点的横坐标,所述第一横坐标偏移量根据所述第一路径点的横坐标和所述第二路径点的横坐标确定;以及,
根据所述第一路径点的纵坐标和第一纵坐标偏移量,确定所述第三路径点的纵坐标,所述第一纵坐标偏移量根据所述第一路径点的纵坐标、所述第二路径点的纵坐标和所述随机因子确定;
在所述第一路径点的横坐标和所述第二路径点的横坐标满足第二条件的情况下,根据所述第一路径点的横坐标和第二横坐标偏移量,确定所述第三路径点的横坐标,所述第二横坐标偏移量根据所述第一路径点的横坐标、所述第二路径点的横坐标和所述随机因子确定;以及,
根据所述第一路径点的纵坐标和第二纵坐标偏移量,确定所述第三路径点的纵坐标,所述第二纵坐标偏移量根据所述第一路径点的纵坐标和所述第二路径点的纵坐标确定。
2.根据权利要求1所述的方法,其特征在于,所述验证码原型包括可缩放矢量图形SVG图形。
3.根据权利要求1所述的方法,其特征在于,所述最终验证码为需要所述用户推理后进行验证的图像。
4.根据权利要求1所述的方法,其特征在于,所述根据所述验证信息和所述验证码原型配置库中所述验证码原型的名称,确定返回客户端的返回信息,包括:
若所述用户提交的验证信息与所述验证码原型的名称相同,返回验证成功至客户端;
若所述用户提交的验证信息与所述验证码原型的名称不相同,更新所述最终验证码,并将所述更新后的最终验证码和所述更新后的最终验证码对应的提示语返回至客户端。
5.一种验证码的实现装置,其特征在于,所述装置包括:
处理模块,用于根据预设的验证码原型配置库随机选取验证码原型;
获取所述验证码原型的矢量路径,对所述验证码原型的矢量路径执行干扰算法,并获取所述验证码原型的干扰矢量路径;
根据所述干扰矢量路径绘制成图像,并将所述图像作为最终验证码;
收发模块,用于将所述最终验证码和所述验证码原型配置库中所述验证码原型对应的提示语发送至客户端;
接收客户端提交的验证信息,并根据所述验证信息和所述验证码原型配置库中所述验证码原型的名称,确定返回客户端的返回信息;
所述干扰算法包括基于所述验证码原型的矢量路径和路径点,确定所述验证码原型的干扰矢量路径;
所述处理模块,具体用于利用所述验证码原型的第一路径点、第二路径点和随机因子,计算生成第三路径点;
根据所述第一路径点、所述第二路径点、所述第三路径点和所述验证码原型的矢量路径,确定所述验证码原型的干扰矢量路径;
所述处理模块,具体还用于在所述第一路径点的横坐标和所述第二路径点的横坐标满足第一条件的情况下,根据所述第一路径点的横坐标和第一横坐标偏移量,确定所述第三路径点的横坐标,所述第一横坐标偏移量根据所述第一路径点的横坐标和所述第二路径点的横坐标确定;以及,
根据所述第一路径点的纵坐标和第一纵坐标偏移量,确定所述第三路径点的纵坐标,所述第一纵坐标偏移量根据所述第一路径点的纵坐标、所述第二路径点的纵坐标和所述随机因子确定;
在所述第一路径点的横坐标和所述第二路径点的横坐标满足第二条件的情况下,根据所述第一路径点的横坐标和第二横坐标偏移量,确定所述第三路径点的横坐标,所述第二横坐标偏移量根据所述第一路径点的横坐标、所述第二路径点的横坐标和所述随机因子确定;以及,
根据所述第一路径点的纵坐标和第二纵坐标偏移量,确定所述第三路径点的纵坐标,所述第二纵坐标偏移量根据所述第一路径点的纵坐标和所述第二路径点的纵坐标确定。
6.根据权利要求5所述的装置,其特征在于,所述干扰算法包括基于所述验证码原型的矢量路径和路径点,确定所述验证码原型的干扰矢量路径的算法。
7.根据权利要求6所述的装置,其特征在于,所述干扰矢量路径是根据所述验证码原型的第一路径点、所述验证码原型的第二路径点、第三路径点和所述验证码原型的矢量路径,确定的干扰矢量路径;
所述第三路径点是根据所述验证码原型的第一路径点、所述验证码原型的第二路径点和随机因子计算生成的路径点。
8.根据权利要求5所述的装置,其特征在于,所述最终验证码为需要所述用户推理后进行验证的图像。
9.一种验证码的实现设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-4任意一项所述的验证码的实现方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-4任意一项所述的验证码的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810300820.0A CN110348185B (zh) | 2018-04-04 | 2018-04-04 | 验证码的实现方法、装置、设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810300820.0A CN110348185B (zh) | 2018-04-04 | 2018-04-04 | 验证码的实现方法、装置、设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110348185A CN110348185A (zh) | 2019-10-18 |
CN110348185B true CN110348185B (zh) | 2022-05-10 |
Family
ID=68172758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810300820.0A Active CN110348185B (zh) | 2018-04-04 | 2018-04-04 | 验证码的实现方法、装置、设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110348185B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447207B (zh) * | 2020-03-24 | 2022-11-01 | 咪咕文化科技有限公司 | 验证码验证方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179381A (zh) * | 2006-11-07 | 2008-05-14 | 阿里巴巴公司 | 一种验证信息的方法和装置 |
CN101938466A (zh) * | 2010-07-30 | 2011-01-05 | 百度在线网络技术(北京)有限公司 | 一种用于基于开放式知识库进行用户验证的方法与设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106022329B (zh) * | 2016-05-12 | 2019-09-20 | 福建南威软件有限公司 | 一种字符识别过程中的字符降噪处理方法 |
CN107679391A (zh) * | 2017-10-11 | 2018-02-09 | 世纪龙信息网络有限责任公司 | 用于验证码的数据处理方法和系统 |
-
2018
- 2018-04-04 CN CN201810300820.0A patent/CN110348185B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179381A (zh) * | 2006-11-07 | 2008-05-14 | 阿里巴巴公司 | 一种验证信息的方法和装置 |
CN101938466A (zh) * | 2010-07-30 | 2011-01-05 | 百度在线网络技术(北京)有限公司 | 一种用于基于开放式知识库进行用户验证的方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110348185A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190080148A1 (en) | Method and apparatus for generating image | |
US8826406B2 (en) | Password security input system using shift value of password key and password security input method thereof | |
US10963545B2 (en) | Authentication via typing cadence, gestures, and QR codes | |
CN105574398B (zh) | 一种验证码验证方法及装置 | |
CN110414567A (zh) | 数据处理方法、装置和电子设备 | |
CN104618350A (zh) | 一种图片验证码的生成方法 | |
CN108632020A (zh) | 数据发送方法、接收方法及装置 | |
CN109902471A (zh) | 滑块验证的检测方法、装置、计算机设备及存储介质 | |
CN110120928A (zh) | 一种身份认证的方法、装置、服务器及计算机可读介质 | |
US20220004821A1 (en) | Adversarial face recognition | |
CN109214166A (zh) | 智能设备授权控制方法及系统 | |
CN111027643B (zh) | 深度神经网络模型的训练方法、人机交互识别方法、装置、电子设备及存储介质 | |
Quintal et al. | Contextual, behavioral, and biometric signatures for continuous authentication | |
KR101267229B1 (ko) | 입력패턴을 이용한 인증 방법 및 시스템 | |
CN110348185B (zh) | 验证码的实现方法、装置、设备和计算机存储介质 | |
CN112115452A (zh) | 用于生成验证码图像的方法和装置 | |
CN110651268A (zh) | 认证用户的方法和电子设备 | |
CN107948177A (zh) | 验证问卷的生成方法和装置 | |
CN106599637A (zh) | 一种在验证界面输入验证码的方法和装置 | |
CN114817937A (zh) | 键盘加密方法、设备、存储介质及计算机程序产品 | |
CN114282198A (zh) | 验证码实现方法及电子设备和计算机可读存储介质 | |
CN110990822B (zh) | 验证码生成与验证方法、系统、电子设备及存储介质 | |
US20120023549A1 (en) | CAPTCHA AND reCAPTCHA WITH SINOGRAPHS | |
CN108133132A (zh) | 身份验证方法、系统和电子设备 | |
CN110740112B (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 |