验证码的生成方法、验证方法及相应装置与流程

文档序号:12470940阅读:332来源:国知局
验证码的生成方法、验证方法及相应装置与流程

本发明实施例涉及信息安全技术领域,尤其涉及验证码的生成方法、验证方法及相应装置。



背景技术:

全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA),俗称验证码,是一种区分用户是计算机还是人的公共全自动程序。验证码作为一种辅助安全手段已在众多网页及应用程序等方面被广泛采用。

常规的验证码一般为由一定数量的数字、字母或者文字等字符随机组合形成的图片,用户在观察验证码图片后,将其中包含的字符输入到指定区域,若输入正确,则验证通过。然而,用户在输入过程中,通常需要切换输入法以实现不同种类字符的正确输入,用户操作复杂,且中文输入费时费力,操作成本较高,在移动终端中表现尤为明显。此外,由于计算机对单个字符的识别率较高,若成功将验证码图片拆分成一个个字符图片,则可能会被暴力破解,验证码的安全性得不到保障。若为增强安全性而频繁更换字体或样式,又会提高验证码的制作和维护成本。



技术实现要素:

本发明实施例的目的是提供验证码的生成方法、验证方法及相应装置,以优化现有的验证码生成方案以及验证方案。

第一方面,本发明实施例提供了一种验证码的生成方法,包括:

从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符;

从所述全部单位字符中随机选取至少一个字符作为目标单位字符;

对所述目标单位字符进行倒置处理;

根据倒置后的目标单位字符和剩余单位字符生成验证码图片;

根据所述目标单位字符在所生成的验证码图片中的位置信息和所述验证码图片生成验证码。

第二方面,本发明实施例提供了一种验证码的验证方法,应用于对采用本发明实施例第一方面所述的验证码的生成方法所生成的验证码进行验证,所述验证方法包括:

获取用户作用于所述验证码对应的验证码图片上的点击操作的点击位置信息;

将所述点击位置信息与目标单位字符在所述验证码图片中的位置信息进行匹配,根据匹配结果确定验证是否通过。

第三方面,本发明实施例提供了一种验证码的生成装置,包括:

单位字符选取模块,用于从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符;

目标单位字符选取模块,用于从所述全部单位字符中随机选取至少一个字符作为目标单位字符;

倒置处理模块,用于对所述目标单位字符进行倒置处理;

验证码图片生成模块,用于根据倒置后的目标单位字符和剩余单位字符生成验证码图片;

验证码生成模块,用于根据所述目标单位字符在所生成的验证码图片中的位置信息和所述验证码图片生成验证码。

第四方面,本发明实施例提供了一种验证码的验证装置,应用于对采用本发明实施例第一方面所述的验证码的生成方法所生成的验证码进行验证,所述验证装置包括:

点击位置信息获取模块,用于获取用户作用于所述验证码对应的验证码图片上的点击操作的点击位置信息;

验证模块,用于将所述点击位置信息与目标单位字符在所述验证码图片中的位置信息进行匹配,根据匹配结果确定验证是否通过。

本发明实施例中提供的验证码生成方案,从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符,从全部单位字符中随机选取至少一个字符作为目标单位字符,对目标单位字符进行倒置处理,根据倒置后的目标单位字符和剩余单位字符生成验证码图片,根据目标单位字符在所生成的验证码图片中的位置信息和验证码图片生成验证码。通过采用上述技术方案,验证码图片中包含倒置的字符,在保证低制作成本的情况下增加了计算机对各个字符进行拆分的难度,降低验证码被暴力破解的概率,提高验证码的安全性;并且,用户在进行验证码验证时仅需要通过点击倒置字符的方式即可轻松实现验证,操作简单,增强验证码的易用性,可提升用户体验。

附图说明

图1a为现有技术中的一种字符输入式验证码的示意图;

图1b为现有技术中的又一种字符输入式验证码的示意图;

图2为现有技术中的一种图形拖动式验证码的示意图;

图3为现有技术中的一种图形点击式验证码的示意图;

图4为现有技术中的一种行为验证码的示意图;

图5为本发明实施例一提供的一种验证码的生成方法的流程示意图;

图6a为本发明实施例一提供的一种倒置处理效果示意图;

图6b为本发明实施例一提供的又一种倒置处理效果示意图;

图7为本发明实施例二提供的一种验证码的生成方法的流程示意图;

图8为本发明实施例二提供的一种验证码图片示意图;

图9为本发明实施例三提供的一种验证码的生成方法的流程示意图;

图10为本发明实施例三提供的一种验证码图片示意图;

图11为本发明实施例四提供的一种验证码的验证方法的流程示意图;

图12为本发明实施例四提供的一种有效点击区域示意图;

图13a为本发明实施例四提供的验证码验证过程第一示意图;

图13b为本发明实施例四提供的验证码验证过程第二示意图;

图13c为本发明实施例四提供的验证码验证过程第三示意图;

图14为本发明实施例五提供的一种验证码的生成装置的结构框图;

图15为本发明实施例六提供的一种验证码的验证装置的结构框图。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

为了方便理解本发明实施例的技术方案以及相应的有益效果,首先对现有技术中几种常见的验证码进行介绍。

(1)字符输入式验证码

图1a为现有技术中的一种字符输入式验证码的示意图;图1b为现有技术中的又一种字符输入式验证码的示意图。字符输入式验证码是最为常见的一种验证码,通常有英文字符数字混合验证码(如图1a所示)和中文验证码(如图1b所示)两种。用户在输入过程中,通常需要切换输入法以实现不同种类字符的正确输入,用户操作复杂,且中文输入费时费力,操作成本较高,在移动终端中表现尤为明显。此外,K Chellapilla等人在2005年的论文中提出,现有技术对于单个英文字符可以达到很高的识别率。若成功将验证码图片拆分成一个个字符图片,则可能会被暴力破解,验证码的安全性得不到保障。

(2)图形拖动式验证码

图2为现有技术中的一种图形拖动式验证码的示意图,如图2所示,此类验证码通过让用户将一张图片的缺失部分拖拽到对应位置来进行验证,但是这类验证码通常会用很明显的边界标识出图片最终要到达的部分,识别成本比较低,而且拖动是可以由机器模拟的,所以安全性偏低。

(3)图形点击式验证码

图3为现有技术中的一种图形点击式验证码的示意图,如图3所示,用户需要根据提示点击符合提示内容的图片,此类验证码需要维护一个巨大的图片库,而且需要不断更新,否则很容易会被暴力破解。此外,为了降低被破解的概率,图片内容有些不容易辨认,用户也很可能选错,用户体验不佳。

(4)行为验证码

图4为现有技术中的一种行为验证码的示意图,行为验证码不需要用户进行文本的输入,从一定程度上优化了用户体验。但是这类验证码需要收集大量用户相关的数据作为判断依据,比如用户鼠标滑动的轨迹、网际协议(Internet Protocol,IP)相关的数据、用户请求的时间长度以及用户本地存储的账号信息等等。此外,还会存在无法判断的情况,仍需要借助其他验证码来进行识别。因此,此类验证码的制作成本也较高,安全性也不佳。

实施例一

图5为本发明实施例一提供的一种验证码的生成方法的流程示意图,该方法可以由验证码的生成装置执行,其中该装置可由软件和/或硬件实现,一般可集成在服务器等终端中。如图5所示,该方法包括:

步骤501、从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符。

示例性的,验证码字符库中可包括数字、字母或者文字等字符。优选的,验证码字符库中仅包括中文字符。这样设置的好处在于,相比英文和数字来说,中文的可用字符数量更多,减少了被遍历的可能性,且识别难度更大,更不容易被暴力破解。需要说明的是,为了防止字符后续被进行倒置后与倒置前不容易区分的情况发生,在设置验证码字符库时,可排除上下对称的字符,也可排除左右对称的字符。

示例性的,预设数量可以是预先设置的一个固定值(如7个),也可以是预先设置的数量范围(如4个至10个)中的随机一个值。根据预设数量的取值从验证码字符库中随机选取相应数量的字符,将所选取的字符全部用于生成验证码图片。

步骤502、从全部单位字符中随机选取至少一个字符作为目标单位字符。

示例性的,可按照步骤501中选取全部单位字符的先后顺序将全部单位字符排成序列,在该序列中随机选取至少一个字符作为目标单位字符,即目标单位字符的数量以及在该序列中所处的位置均为随机的,可增加破解复杂度。优选的,目标单位字符的数量可与全部单位字符的数量相关,例如,目标单位字符的数量小于全部单位字符的数量的预设比例(如50%)。本发明实施例的方法旨在生成一种使用户通过点击来实现验证的验证码,目标单位字符对应于用户预期点击的单位字符。可以理解的是,目标单位字符的数量较少,用户操作相对更便捷;目标单位字符的数量较多,验证码安全性能相对更好。在实际应用本发明实施例的方法时,可充分考虑上述各因素来确定目标单位字符的具体数量。

步骤503、对目标单位字符进行倒置处理。

示例性的,本实施例中的倒置处理具体可指将目标单位字符旋转预设角度,该预设角度的取值范围可围绕180度进行选取,例如,可为150度至210度之间。预设角度优选为180度,即对目标单位字符进行倒置处理具体指将目标单位字符旋转180度。图6a为本发明实施例一提供的一种倒置处理示意图,将“没”字进行上述倒置处理后的效果如图6a所示。

此外,本实施例中的倒置处理还可指将目标单位字符进行水平方向的镜面处理。图6b为本发明实施例一提供的又一种倒置处理效果示意图,将“没”字进行水平方向的镜面处理后的效果如图6b所示。

步骤504、根据倒置后的目标单位字符和剩余单位字符生成验证码图片。

本步骤中的剩余单位字符为待生成的验证码图片包含的全部单位字符中除了目标单位字符以外的单位字符。示例性的,可按照步骤502中所述的序列的顺序将倒置后的目标单位字符和剩余单位字符合成为一张图像,得到验证码图片。具体的图像生成方式本实施例不作具体限定,可参照现有的图像生成技术。可以理解的是,目标单位字符经过了倒置处理,在所生成的验证码图片中与其他单位字符的朝向存在较大差异,人眼很容易进行区分,而对计算机而言,由于字符被倒置,处于倒立的状态,与处于正立状态的字符相比,提高了识别难度,增加了阻止破解的成功率。

步骤505、根据目标单位字符在所生成的验证码图片中的位置信息和验证码图片生成验证码。

示例性的,为了使验证码能够应用于人机验证,需要将目标单位字符在所生成的验证码图片中的位置信息加入所要生成的验证码中。位置信息可包括字符中心横坐标、字符中心纵坐标、字符尺寸(可包括字符宽度和字符高度)和旋转角度。例如,可将位置信息嵌入验证码图片中,以生成验证码;又如,可将位置信息作为验证码图片的附属信息共同传送给应用该验证码的网页或者应用程序等对象。

本发明实施例一提供的验证码生成方法,从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符,从全部单位字符中随机选取至少一个字符作为目标单位字符,对目标单位字符进行倒置处理,根据倒置后的目标单位字符和剩余单位字符生成验证码图片,根据目标单位字符在所生成的验证码图片中的位置信息和验证码图片生成验证码。通过采用上述技术方案,验证码图片中包含倒置的字符,在保证低制作成本的情况下增加了计算机对各个字符进行拆分的难度,降低验证码被暴力破解的概率,提高验证码的安全性;并且,用户在进行验证码验证时仅需要通过点击倒置字符的方式即可轻松实现验证,操作简单,增强验证码的易用性,可提升用户体验。

实施例二

图7为本发明实施例二提供的一种验证码的生成方法的流程示意图,本实施例以上述实施例为基础进行优化,该方法包括如下步骤:

步骤701、从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符。

步骤702、从全部单位字符中随机选取至少一个字符作为目标单位字符。

步骤703、将全部单位字符中的每个单位字符旋转第一角度。

其中,所述第一角度的取值范围为大于-60度且小于60度,对于每个单位字符,所述第一角度的取值为所述取值范围内的任意一个数值。

执行本步骤的好处在于,将全部单位字符旋转一定的角度后,可进一步提高计算机自动识别难度,增加阻止破解的成功率。

步骤704、将旋转第一角度后的目标单位字符旋转180度。

步骤705、根据倒置后的目标单位字符和剩余单位字符生成验证码图片。

示例性的,图8为本发明实施例二提供的一种验证码图片示意图,如图8所示,全部单位字符包括“是”、“理”、“听”、“它”、“合”、“没”和“去”,被选取的目标单位字符为“没”,将全部单位字符中的每个单位字符旋转第一角度,再将“没”旋转180度,最后生成了如图8所示的验证码图片。

步骤706、根据目标单位字符在所生成的验证码图片中的位置信息和验证码图片生成验证码。

本发明实施例二在上述实施例基础上,细化了对目标单位字符进行倒置处理的步骤,可进一步提高计算机自动识别难度,增加阻止破解的成功率。

实施例三

图9为本发明实施例三提供的一种验证码的生成方法的流程示意图,本实施例以上述实施例为基础进行优化,该方法包括如下步骤:

步骤901、从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符。

步骤902、从全部单位字符中随机选取至少一个字符作为目标单位字符。

步骤903、将全部单位字符中的每个单位字符旋转第一角度。

其中,所述第一角度的取值范围为大于-60度且小于60度,对于每个单位字符,所述第一角度的取值为所述取值范围内的任意一个数值。

步骤904、将旋转第一角度后的目标单位字符旋转180度。

步骤905、按照预设规则调整倒置后的目标单位字符和剩余单位字符中的每两个相邻的单位字符之间的间距,以使每两个相邻的单位字符部分重合。

示例性的,预设规则可包括每两个相邻的单位字符之间的间距值为负值,还可包括间距值为预设间距范围值中的任意一个数值。

示例性的,在确定两个左右相邻的单位字符之间的间距时,可按照左侧字符的右边界的中心横坐标减去右侧字符的左边界的中心横坐标来计算。

本步骤的目的是为了让每两个相邻的单位字符部分重合,增加粘连的部分,以增加计算机对单位字符进行分割的难度,从而防止验证码被暴力破解。

步骤906、根据经过间距调整后的全部单位字符生成验证码图片。

图10为本发明实施例三提供的一种验证码图片示意图,如图10所示,每两个字符之间都存在一定的粘连,大大增加了字符分离的难度,提高验证码的安全性。

步骤907、根据目标单位字符在所生成的验证码图片中的位置信息和验证码图片生成验证码。

本发明实施例三在上述实施例的基础上,通过让每两个相邻的单位字符部分重合来增加各单位字符之间的粘连,进一步提高了验证码的安全性。

在上述实施例的基础上,为了进一步增加计算机的自动识别成本,提升破解难度,可在验证码图片中添加干扰线等干扰元素。

实施例四

图11为本发明实施例四提供的一种验证码的验证方法的流程示意图,该方法应用于对采用如本发明实施例所述的验证码的生成方法所生成的验证码进行验证,该方法可以由验证码的验证装置执行,其中该装置可由软件和/或硬件实现,一般可集成在终端中。如图11所示,该方法包括:

步骤1101、获取用户作用于验证码对应的验证码图片上的点击操作的点击位置信息。

示例性的,本实施例中的终端可包括手机、平板电脑及笔记本电脑等移动终端,也可包括台式计算机等终端。

进一步的,为了让用户明确此类验证码的验证方式,可在进行本步骤之前,对验证方式进行提示,所述验证方式为点击所述验证码对应的验证码图片中包含的所有倒置的单位字符。例如,可显示提示信息“请点击图中倒立的文字”。

示例性的,对于包含触摸屏的终端来说,用户可通过手指来点击验证码图片中的某个位置;对于台式计算机或者笔记本电脑等终端来说,用户可通过鼠标来点击验证码图片中的某个位置。当检测到验证码图片被点击时,获取用户作用于验证码对应的验证码图片上的点击操作的点击位置信息。

步骤1102、将点击位置信息与目标单位字符在验证码图片中的位置信息进行匹配,根据匹配结果确定验证是否通过。

示例性的,通过将点击位置信息与目标单位字符在所述验证码图片中的位置信息进行匹配,可得知用户点击的位置是否为倒置的目标单位字符的所在位置,若是,则可说明用户点击正确,验证通过,终端可继续执行后续相关操作。

具体的,点击位置信息可包括点击操作的点击中心坐标。本步骤可包括:根据目标单位字符在所述验证码图片中的位置信息确定有效点击区域;判断点击中心坐标是否处于有效点击区域内,若处于,则验证通过;否则,验证失败。图12为本发明实施例四提供的一种有效点击区域示意图,如图12所示,验证码图片1201中包含倒置的“没”字,可根据“没”字在验证码图片1201中的位置信息确定有效点击区域1202,若用户的点击操作的点击中心坐标落入有效点击区域1202内,可说明用户点击正确,验证通过。

图13a为本发明实施例四提供的验证码验证过程第一示意图,如图13a所示,用户在进行社交账号注册时,在输入用户名、手机号及密码后,需要进行验证码的验证,图中验证码图片中的文字上的圆点标记用于表示用户的点击位置。图13b为本发明实施例四提供的验证码验证过程第二示意图,如图13b所示,当用户发现自己点击的位置不正确时,将鼠标(Hover)移动到圆点标记(实际使用时可采用蓝色来与验证码图片中的黑色文字进行区分)上时,标记变为删除按钮,用户可通过点击删除按钮(删除标记)来清除错误的点击。图13c为本发明实施例四提供的验证码验证过程第三示意图,如图13c所示,若用户对验证码图片中的文字点击错误,点击“加入知乎”按钮后,验证失败,此时会刷新验证码(即显示新的验证码图片),显示报错信息。

本发明实施例四提供的验证码的验证方法,可使用户通过点击倒置字符的方式来轻松实现验证,操作简单,可提升用户体验。

实施例五

图14为本发明实施例五提供的一种验证码的生成装置的结构框图,其中该装置可由软件和/或硬件实现,一般可集成在服务器等终端中,可通过执行验证码的生成方法来生成验证码。如图14所示,该装置包括:单位字符选取模块1401、目标单位字符选取模块1402、倒置处理模块1403、验证码图片生成模块1404和验证码生成模块1405。

其中,单位字符选取模块1401,用于从验证码字符库中随机选取预设数量的字符,得到待生成的验证码图片包含的全部单位字符;目标单位字符选取模块1402,用于从所述全部单位字符中随机选取至少一个字符作为目标单位字符;倒置处理模块1403,用于对所述目标单位字符进行倒置处理;验证码图片生成模块1404,用于根据倒置后的目标单位字符和剩余单位字符生成验证码图片;验证码生成模块1405,用于根据所述目标单位字符在所生成的验证码图片中的位置信息和所述验证码图片生成验证码。

本发明实施例提供的验证码的生成装置所生成的验证码对应的验证码图片中包含倒置的字符,在保证低制作成本的情况下增加了计算机对各个字符进行拆分的难度,降低验证码被暴力破解的概率,提高验证码的安全性;并且,用户在进行验证码验证时仅需要通过点击倒置字符的方式即可轻松实现验证,操作简单,增强验证码的易用性,可提升用户体验。

在上述实施例的基础上,所述字符包括中文字符。

在上述实施例的基础上,所述验证码图片生成模块包括间距调整单元和验证码图片生成单元。其中,间距调整单元,用于按照预设规则调整倒置后的目标单位字符和剩余单位字符中的每两个相邻的单位字符之间的间距,以使每两个相邻的单位字符部分重合;验证码图片生成单元,根据经过间距调整后的全部单位字符生成验证码图片。

在上述实施例的基础上,所述倒置处理模块包括第一旋转单元和第二旋转单元。其中,第一旋转单元,用于将所述全部单位字符中的每个单位字符旋转第一角度,所述第一角度的取值范围为大于-60度且小于60度,对于每个单位字符,所述第一角度的取值为所述取值范围内的任意一个数值;第二旋转单元,用于将旋转第一角度后的目标单位字符旋转180度。

在上述实施例的基础上,所述位置信息包括字符中心横坐标、字符中心纵坐标、字符尺寸和旋转角度。

实施例六

图15为本发明实施例六提供的一种验证码的验证装置的结构框图,该装置应用于对采用如本发明实施例所述的验证码的生成方法所生成的验证码进行验证,该装置可由软件和/或硬件实现,一般可集成在终端中,可通过执行验证码的验证方法来进行验证码的验证。如图15所示,该装置包括点击位置信息获取模块1501和验证模块1502。

其中,点击位置信息获取模块1501,用于获取用户作用于所述验证码对应的验证码图片上的点击操作的点击位置信息;验证模块1502,用于将所述点击位置信息与目标单位字符在所述验证码图片中的位置信息进行匹配,根据匹配结果确定验证是否通过。

本发明实施例提供的验证码的验证装置,可使用户通过点击倒置字符的方式来轻松实现验证,操作简单,可提升用户体验。

在上述实施例的基础上,所述点击位置信息包括所述点击操作的点击中心坐标。所述验证模块包括有效区域确定单元和验证单元。其中,有效区域确定单元,用于根据目标单位字符在所述验证码图片中的位置信息确定有效点击区域。验证单元,用于判断所述点击中心坐标是否处于所述有效点击区域内,若处于,则验证通过;否则,验证失败。

在上述实施例的基础上,该装置还可包括提示模块,用于在获取用户作用于所述验证码对应的验证码图片上的点击操作的点击位置信息之前,对验证方式进行提示,所述验证方式为点击所述验证码对应的验证码图片中包含的所有倒置的单位字符。

上述实施例中提供的验证码的生成装置及验证码的验证装置可执行本发明实施例所提供的相应的方法,具备执行方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明实施例所提供的相应的验证码的生成方法及验证码的验证方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1