CN113240797A - 一种验证码生成方法、装置、电子设备及存储介质 - Google Patents
一种验证码生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113240797A CN113240797A CN202110541247.4A CN202110541247A CN113240797A CN 113240797 A CN113240797 A CN 113240797A CN 202110541247 A CN202110541247 A CN 202110541247A CN 113240797 A CN113240797 A CN 113240797A
- Authority
- CN
- China
- Prior art keywords
- target
- attribute information
- picture
- attribute
- determining
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000000694 effects Effects 0.000 claims abstract description 33
- 230000002452 interceptive effect Effects 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001172 regenerating effect Effects 0.000 claims description 10
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000009432 framing Methods 0.000 claims description 2
- 238000005336 cracking Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000036544 posture Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000000670 limiting effect Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 6
- 230000019771 cognition Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008433 psychological processes and functions Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种验证码生成方法、装置、电子设备及存储介质。该方法包括:基于随机生成的目标问题,确定多个对象的第一属性信息,多个对象中包括目标对象和干扰对象,目标对象为目标问题的正确答案,干扰对象为目标问题的干扰答案;基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间;基于目标三维空间,生成具有三维效果的目标图片;基于目标问题以及目标图片,生成验证码,验证码用于使用户针对目标图片进行作答操作,来输入目标问题的答案,以进行验证。如此,提高了验证码的破解难度,从而提高了验证码的验证效果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种验证码生成方法、装置、电子设备及存储介质。
背景技术
验证码,即全自动区分计算机和人类的图灵测试(CAPTCHA,CompletelyAutomated Public Turing test to tell Computers and Humans Apart),是一种区分用户是计算机还是人的公共全自动程序。通过验证码可以防止恶意破解密码、刷票、论坛灌水等行为,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。
相关技术中,传统的验证码,大多是二维的字符型验证码,使用随机的字符和数字直接在二维平面上生成一张图片,对图片中的文字内容识别、物体识别,随着光学字符识别(OCR,Optical Character Recognition)、人工智能以及机器学习等技术的不断发展创新,对传统的验证码的识别成功率有了很大的提高,甚至超越了人眼的识别能力,导致传统的验证码的验证效果降低。
发明内容
本发明实施例提供一种验证码生成方法、装置、电子设备及存储介质,以解决相关技术中传统的验证码的验证效果降低的问题。
本发明的目的是通过以下技术方案实现的:
第一方面,本发明实施例提供一种验证码生成方法,包括:
基于随机生成的目标问题,确定多个对象的第一属性信息,多个对象中包括目标对象和干扰对象,目标对象为目标问题的正确答案,干扰对象为目标问题的干扰答案;
基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间;
基于目标三维空间,生成具有三维效果的目标图片;
基于目标问题以及目标图片,生成验证码,验证码用于使用户针对目标图片进行作答操作,来输入目标问题的答案,以进行验证。
第二方面,本发明实施例提供一种验证码生成装置,包括:
第一确定模块,用于基于随机生成的目标问题,确定多个对象的第一属性信息,多个对象中包括目标对象和干扰对象,目标对象为目标问题的正确答案,干扰对象为目标问题的干扰答案;
第一生成模块,用于基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间;
第二生成模块,用于基于目标三维空间,生成具有三维效果的目标图片;
第三生成模块,用于基于目标问题以及目标图片,生成验证码,验证码用于使用户针对目标图片进行作答操作,来输入目标问题的答案,以进行验证。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现如以上任一的验证码生成方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如以上任一的验证码生成方法的步骤。
上述技术方案中的优点或有益效果至少包括:由于基于人类认知的问题以及三维空间中的对象,计算机不容易判断和识别,本方案中,基于需要逻辑思维判断的目标问题,得到多个对象的第一属性信息,然后,基于对象的第一属性信息在预设三维空间中生成具有三维姿态的对象,得到了目标三维空间,基于该目标三维空间生成了具有三维效果的目标图片,也就是说,得到了基于三维空间的验证码图片,基于该验证码图片和目标问题生成验证码,基于此,在后续进行验证时,正常的人类用户可以通过逻辑思维判断轻松理解目标问题并识别出基于三维空间的验证码图片中的对象,从而通过作答操作输入目标问题的正确答案,而计算机对需要逻辑思维判断的目标问题难于理解且对三维空间中的对象识别难,从而提高了验证码的破解难度,提高了验证码的验证效果。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
图1是本发明实施例中的一种示例性的验证码生成方法的流程图;
图2是本发明实施例中的一种示例性的预设三维空间的示意图;
图3是本发明实施例中的一种示例性的目标图片的示意图;
图4是本发明实施例中的一种示例性的验证码显示示意图;
图5是本发明实施例中的一种示例性的目标图片的示意图;
图6是本发明实施例中的一种示例性的验证码生成方法的具体步骤流程图;
图7是本发明实施例中的一种示例性的验证码生成方法的具体步骤流程图;
图8是本发明实施例中的一种示例性的验证码生成方法的具体步骤流程图;
图9是本发明实施例中的一种示例性的验证码生成方法的具体步骤流程图;
图10是本发明实施例中的一种示例性的区域划分的示意图;
图11是本发明实施例中的一种示例性的区域占用标记的示意图;
图12是本发明实施例中的一种示例性的预设三维空间的示意图;
图13是本发明实施例中的一种示例性的验证码生成装置的结构示意图;
图14是本发明实施例中的一种示例性的验证码生成装置的结构示意图;
图15是本发明实施例提供的一种示例性的用来实现验证码生成方法的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
认知是人们获得知识或应用知识的过程,或信息加工的过程,是人的最基本的心理过程,由人脑接受外界输入的信息,经过加工处理,转换成内在的心理活动,进而支配人的行为。
人类的认知能够在复杂情况下进行逻辑思维判断,进而轻松做出准确的判断。而计算机虽然能够进行高效的数据处理,但是许多复杂情况下无法同人类认知一样,轻松就能做出的准确的判断。
验证码是一种区分用户是计算机还是人的公共全自动程序。通过验证码可以防止恶意破解密码、刷票、论坛灌水等行为,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。
相关技术中,传统的验证码,大多是二维的字符型验证码,使用随机的字符和数字直接在二维平面上生成一张图片,对图片中的文字内容识别、物体识别,随着OCR、人工智能以及机器学习等技术的不断发展创新,对传统的验证码的识别成功率有了很大的提高,甚至超越了人眼的识别能力,导致传统的验证码的验证效果降低。
另外,为了防止被计算机识别,相关技术中,在上述图片的生成过程中使用了各种背景干扰,例如噪点像素、字体形变、字体粘连、字符位置随机及个数不定、反色等一些技术,甚至对图片做虚化处理、降低图片质量等操作,降低了被计算机识别的风险。这样,虽然降低了计算机自动识别算法的识别效率,但是也导致了正常人类用户使用体验越来越差,在用户体验和破解难度上无法达到一致。
为解决上述技术问题,本发明实施例提供了一种验证码生成方法,生成了一种新型的验证码,主要思路是基于人类用户的认知,生成需要逻辑思维判断的问题和基于三维空间的图片作为验证码的主要元素,人类用户可以看出来三维空间的内容,而计算机不能,所以在图片生成时在XY平面的基础上增加了Z轴上的空间逻辑,形成了前后关系、正对或者侧对等空间关系。相较于上述传统的验证码,识别难度更高。下面通过实施例对本发明实施例的方案进行详细地说明。
图1是本发明实施例中的一种验证码生成方法的流程图。如图1所示,本实施例提供的一种验证码生成方法,该方法可以由服务器或者其中的软件和/或硬件执行,该方法至少包括如下步骤:
步骤101、基于随机生成的目标问题,确定多个对象的第一属性信息,多个对象中包括目标对象和干扰对象,该目标对象为目标问题的正确答案,该干扰对象为目标问题的干扰答案。
其中的目标问题是基于人类的认知的需要逻辑思维判断的问题。相应的,多个对象是目标问题的候选答案,可以但不限于包括字母、数字等字符,几何体,等等。在候选答案中需要设置正确答案和用于干扰作答的干扰答案,这里,作为正确答案的对象即为目标对象,作为干扰答案的对象即为干扰对象。
上述对象具有的性质可以通过属性来表达。该对象的属性的种类可以但不限于包括对象名称、大小、颜色、朝向、位置,等等。这里,基于目标问题得到的属性信息,作为对象的第一属性信息。该对象的第一属性信息包括多种属性的取值,其中的多种属性可以根据实际情况设置,例如可以包括对象名称、大小、颜色、朝向等等。
步骤102、基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间。
实际应用中,可以预先设置具有一定的长度、宽度和高度的三维空间,以得到上述预设三维空间。如图2所示,该预设三维空间中,建立O-XYZ坐标系,在图示状态下,坐标原点为预设三维空间左上角的顶点O(0,0,0),X轴的最大坐标值Xmax为预设三维空间的长度L,Y轴的最大坐标值Ymax为预设三维空间的高度H,Z轴的最大坐标值Zmax为预设三维空间的宽度W。以预设三维空间为背景,生成具有三维姿态的多个对象。
步骤103、基于目标三维空间,生成具有三维效果的目标图片。
其中的目标图片中包括以预设三维空间的一部分为背景的多个对象。参见图3所示的目标图片,该目标图片中包括在预设三维空间内的“1”、“5”、“7”、“8”、“a”、“w”、“k”、“球体”等具有三维姿态的对象。在目标图片中,通过对象周边的其它对象或者背景的映衬,可以展现出三维空间的视觉效果。
步骤104、基于目标问题以及目标图片,生成验证码,该验证码用于使用户针对目标图片进行作答操作,来输入目标问题的答案,以进行安全验证。
实际应用中,服务器可以将生成的验证码,发送至终端,终端显示该验证码的目标问题和目标图片,参见图4所示例的显示效果,该验证码包括目标问题:请点击与最大球体颜色相同的物体,以及目标问题下方的目标图片。用户针对目标图片进行点击等作答操作,来输入目标问题的答案。之后,由终端或者服务器验证输入的目标问题的答案是否为正确答案。若是正确答案,则通过验证。若不是正确答案,则未通过验证,当前可能存在安全风险,可以重新进行验证。
由于基于人类认知的问题以及三维空间中的对象,计算机不容易判断和识别,本方案中,基于需要逻辑思维判断的目标问题,得到多个对象的第一属性信息,然后,基于对象的第一属性信息在预设三维空间中生成具有三维姿态的对象,得到了目标三维空间,基于该目标三维空间生成了具有三维效果的目标图片,也就是说,得到了基于三维空间的验证码图片,基于该验证码图片和目标问题生成验证码,基于此,在后续进行验证时,正常的人类用户可以通过逻辑思维判断轻松理解目标问题并识别出基于三维空间的验证码图片中的对象,从而通过作答操作输入目标问题的正确答案,而计算机对需要逻辑思维判断的目标问题难于理解且对三维空间中的对象识别难,从而提高了验证码的破解难度,提高了验证码的验证效果。
在一种实施方式中,基于目标三维空间,生成具有三维效果的目标图片,其具体实现方式可以包括:确定预设观看视角上的投影平面,其中,预设观看视角为预先设置的人眼观看目标三维空间时具有三维效果的视角,将目标三维空间投影至该投影平面上,以得到目标图片。
通过对象周边的其它对象或者背景的映衬,可以展现出三维空间的视觉效果。这样,人眼看到的目标图片就是具有三维效果的图片。
实际应用中,可以基于Web图形库(webGL,Web Graphics Library)等技术,实现上述步骤102和步骤103。webGL是一种三维绘图协议。基于webGL这一成熟的技术,可以快速实现目标图片的生成。
在一种实施方式中,在基于随机生成的目标问题,确定多个对象的第一属性信息之前,上述验证码生成方法还可以包括:从多个问题模板中,随机选择一个问题模板,作为目标问题模板;问题模板可以包括至少一个占位符,占位符用于替换成目标属性的取值;从占位符对应的候选属性集合中选择一个候选属性,以作为目标属性;从目标属性的取值范围中选择一个取值,以作为目标属性的取值;将目标问题模板中的占位符替换成目标属性的取值,以生成目标问题。
实际应用中,可以根据实际情况,预先设置多个问题模板。针对每个问题模板中的占位符,预先设置该占位符对应的候选属性集合。针对每个候选属性集合中的属性,预先设置该属性的取值范围。基于此,在生成目标问题时,可以先随机选择问题模板,之后选择目标属性,以及选择目标属性的取值,最终随机生成了一个目标问题,从而提高了验证码的破解难度,提高了验证码的验证效果。
其中,占位符对应的候选属性集合可以但不限于包括以下属性中的至少一种:对象名称、大小、颜色、朝向。相应的,属性的取值范围可以根据实际情况进行设置,以下列举但不限定几种可以参考的设置。
若对象包括字母、数字、几何体等,对象名称这一属性的取值范围可以包括A、B、C、a、b、c等字母符号,1、2、3等数字符号,球体、圆柱、长方体、正方体等几何体。
大小这一属性的取值范围可以包括不同的大小等级,每个等级都对应的尺寸。对于上述预设三维空间来说,这里的尺寸包括对象在预设三维空间中的长度、宽度和高度。例如,可以设置最小、最大两个大小等级,或者设置最小、中等大小、最大三个大小等级。
颜色这一属性的取值范围可以包括蓝、红、黄、绿等。
朝向这一属性的取值范围可以包括正对、左侧对、右侧对。这里的正对是指正对预设三维空间中靠近预设观看视角的一侧平面。例如,图2中的XOY平面。
左侧对是指从正对向左旋第一预设角度。这里,逆时针旋转为左旋。第一预设角度的取值可以根据实际情况设置,例如可以设置为40-60度,可选的,设置为45度。
右侧对是指从正对向右旋第二预设角度。这里,顺时针旋转为右旋。第二预设角度的取值可以根据实际情况设置,例如可以设置为40-60度,可选的,设置为45度。
采用朝向这一属性,使得对象可以不正对观看视角,这对人类用户来说,非常容易识别,但是却增加了计算机的识别难度,从而提高了验证码的破解难度。
举例来说,参见图5所示的目标图片,本张目标图片对应的目标问题为:请点击正对着你的数字“9”。对计算机来说这张图片上可能有3个“9”,其中一个正对着的,两个侧对着的,但是,计算机并不能识别出哪个“9”是正对着的。而人类用户可以轻松的判断识别出图片中正对的数字“9”。
这样,相比上述传统的验证码,在用户体验上更好,同时,提高了计算机识别的难度。
在一种实施方式中,上述至少一个占位符可以包括与目标对象对应的第一占位符,基于随机生成的目标问题,确定多个对象的第一属性信息,如图6所示,至少包括如下步骤:
步骤601、基于第一占位符对应的目标属性的取值,确定目标对象的第一属性信息,该目标对象的第一属性信息用于使得目标对象成为目标问题的答案。
实际应用中,第一属性信息包括多种属性的取值。本步骤的具体实现方式可以包括:若上述至少一个占位符对应的目标属性,包含了第一属性信息所包括的多种属性,直接基于每个第一占位符对应的目标属性的取值,得到目标对象的第一属性信息;若上述至少一个占位符对应的目标属性,仅包含第一属性信息所包括的多种属性的一部分属性,对于另一部分未包含的每个属性,从该属性对应的取值范围中,选择一个取值,以得到目标对象的第一属性信息。其中,从属性对应的取值范围中选择一个取值时,可以进行随机选择。
举例来说,目标对象的第一属性信息包括对象名称、颜色、大小、朝向属性的取值。问题模板是:请点击{}着你的{},随机生成的目标问题是请点击正对着你的数字“9”。该问题模板中有两个第一占位符,第1个第一占位符对应的目标属性是朝向,取值是正对,第2个第一占位符对应的目标属性是对象名称,取值是数字“9”。第一占位符对应的目标属性中仅包含朝向和对象名称,未包含颜色和大小,所以,需要从颜色对应的取值范围中随机选择一个取值,从大小对应的取值范围中随机选择一个取值,最终得到目标对象的第一属性信息。
步骤602、基于目标对象的第一属性信息,确定干扰对象的第一属性信息,该干扰对象的第一属性信息用于使得目标对象成为目标问题的唯一答案。
具体的,对干扰对象的多种属性中的每个属性,从该属性的取值范围中,随机选择一个取值,以得到干扰对象的初始属性信息;判断干扰对象的初始属性信息是否使得目标对象成为目标问题的唯一答案,若是,将干扰对象的初始属性信息作为干扰对象的第一属性信息,否则,重新得到干扰对象的初始属性信息。
其中,判断干扰对象的初始属性信息是否使得目标对象成为目标问题的唯一答案时,具体可以判断干扰对象的初始属性信息是否满足第一限制条件。该第一限制条件可以预先根据问题模板进行设置。例如,干扰对象的初始属性信息不同时包含各第一占位符对应的目标属性的取值。对于“请点击正对着你的数字“9””这一问题来说,干扰对象的第一属性信息不能同时包含正对和数字“9”。参见图5,除正对的数字“9”,其余对象均为干扰对象。
本实施例中,在问题模板中设置了用来替换目标对象的目标属性的取值的第一占位符,通过该第一占位符对应的目标属性的取值,可以确定目标对象的第一属性信息,从而可以确定生成一个什么样的目标对象,使得目标对象成为目标问题的答案,基于目标对象的第一属性信息,可以确定出干扰对象的第一属性信息,从而可以准确地确定生成什么样的干扰对象,使得目标对象成为目标问题的唯一答案,避免出现目标对象之外的答案,影响安全验证。
在一种实施方式中,上述多个对象还可以包括用于辅助识别目标对象的参照对象,至少一个占位符包括与参照对象对应的第二占位符。那么,基于随机生成的目标问题,确定多个对象的第一属性信息,如图7所示,其具体实现方式可以包括:
步骤701、基于第二占位符对应的目标属性的取值,确定参照对象的第一属性信息。
实际应用中,第一属性信息包括多种属性的取值。本步骤的具体实现方式可以包括:若上述至少一个占位符所包括的第二占位符对应的目标属性,包含了第一属性信息所包括的多种属性,直接基于每个第二占位符对应的目标属性的取值,得到参照对象的第一属性信息;若上述至少一个占位符所包括的第二占位符对应的目标属性,仅包含第一属性信息所包括的多种属性的一部分属性,对于另一部分未包含的每个属性,从该属性对应的取值范围中,选择一个取值,以得到参照对象的第一属性信息。其中,从该属性对应的取值范围中,选择一个取值时,可以进行随机选择。
举例来说,第一属性信息包括对象名称、颜色、大小、朝向属性的取值。问题模板是:请点击与{}{}颜色相同的物体,随机生成的目标问题是请点击与最大球体颜色相同的物体。该问题模板中有两个第二占位符,第1个第二占位符对应的目标属性是大小,取值是最大,第2个第二占位符对应的目标属性是对象名称,取值是球体。第二占位符对应的目标属性中仅包含大小和对象名称,未包含颜色和朝向,所以,需要从颜色对应的取值范围中随机选择一个取值,从朝向对应的取值范围中随机选择一个取值,最终得到参照对象的第一属性信息。参见图4,图中所示状态下,参照对象是位于最右侧的最大黄色球体。
步骤702、基于参照对象的第一属性信息,确定目标对象的第一属性信息,该目标对象的第一属性信息用于使得目标对象成为目标问题的答案。
具体的,基于参照对象第一属性信息,确定目标对象的多种属性中与参照对象关联的属性的取值;若上述关联的属性,包含了第一属性信息所包括的多种属性,直接基于上述关联的属性的取值,得到目标对象的第一属性信息。若上述关联的属性,仅包含第一属性信息所包括的多种属性的一部分属性,对于另一部分未包含的每个属性,从该属性对应的取值范围中,选择一个取值,以得到目标对象的第一属性信息。
仍以“请点击与最大球体颜色相同的物体”这一目标问题举例,该问题中,目标对象的颜色是与参照对象关联的属性,且与参照对象的颜色相同,因此,可以确定目标对象的颜色的取值为黄色,由于该关联的属性只有颜色,不包含对象名称、大小和朝向这些属性,所以需要在颜色的取值范围内随机选择一个取值、对象名称的取值范围内随机选择一个取值以及在朝向的取值范围内随机选择一个取值。参见图4,图中所示状态下,目标对象为左侧的黄色数字“7”。
步骤703、基于目标对象的第一属性信息以及参照对象的第一属性信息,确定干扰对象的第一属性信息,该干扰对象的第一属性信息用于使得目标对象成为目标问题的唯一答案。
具体的,对干扰对象的多种属性中的每个属性,从该属性的取值范围中,随机选择一个取值,以得到干扰对象的初始属性信息;判断干扰对象的初始属性信息是否使得目标对象成为目标问题的唯一答案,若满足,将干扰对象的初始属性信息作为干扰对象的第一属性信息,否则,重新得到干扰对象的初始属性信息。
其中,判断干扰对象的初始属性信息是否使得目标对象成为目标问题的唯一答案时,具体可以判断干扰对象的初始属性信息是否满足第二限制条件。该第二限制条件可以预先根据问题模板进行设置。例如,干扰对象的初始属性信息不包含目标对象的第一属性信息中与参照对象关联的属性的取值,且不包含第二占位符对应的目标属性的取值。对于“请点击与最大球体颜色相同的物体”这一问题来说,干扰对象不能为黄色,且不能为最大球体。参见图4,除最大黄色球体和黄色数字“7”,其余对象均为干扰对象。
本实施例中,除了目标对象和干扰对象之外,还设置了参照对象,该参照对象可以用来辅助识别目标对象。随着对象的种类的增多,进一步地增加了验证码的破解难度,提高了安全性。相应的,在问题模板中设置了用来替换参照对象的目标属性的取值的第二占位符,首先,基于该第二占位符对应的目标属性的取值,可以确定参照对象的第一属性信息,从而可以确定生成一个什么样的参照对象,然后,基于参照对象的第一属性信息,可以确定出目标对象的第一属性信息,从而可以准确地确定生成一个什么样的目标对象,使得目标对象成为目标问题的答案,最后,基于目标对象的第一属性信息和参照对象的第一属性信息,可以确定出干扰对象的第一属性信息,从而可以准确地确定生成什么样的干扰对象,使得目标对象成为唯一答案,避免出现目标对象之外的答案,影响安全验证。
在一种实施方式中,上述多个对象还可以包括用于辅助识别目标对象的参照对象。上述至少一个占位符可以包括与目标对象对应的第一占位符以及与参照对象对应的第二占位符。那么,基于随机生成的目标问题,确定多个对象的第一属性信息,如图8所示,其具体实现方式可以包括:
步骤801、基于第二占位符对应的目标属性的取值,确定参照对象的第一属性信息。
实际应用中,第一属性信息包括多种属性的取值。本步骤的具体实现方式可以包括:若上述至少一个占位符所包括的第二占位符对应的目标属性,包含了第一属性信息所包括的多种属性,直接基于每个第二占位符对应的目标属性的取值,得到参照对象的第一属性信息;若上述至少一个占位符所包括的第二占位符对应的目标属性,仅包含第一属性信息所包括的多种属性的一部分属性,对于另一部分未包含的每个属性,从该属性对应的取值范围中,选择一个取值,以得到参照对象的第一属性信息。其中,从该属性对应的取值范围中,选择一个取值时,可以进行随机选择。
步骤802、基于第一占位符对应的目标属性的取值以及参照对象的第一属性信息,确定目标对象的第一属性信息,目标对象的第一属性信息用于使得目标对象成为目标问题的答案。
具体的,基于参照对象第一属性信息,确定目标对象的多种属性中与参照对象关联的属性的取值;若第一占位符对应的目标属性和上述关联的属性,包含了第一属性信息所包括的多种属性,直接基于每个第一占位符对应的目标属性的取值和上述关联的属性的取值,得到目标对象的第一属性信息。若上述至少一个占位符所包括的第一占位符对应的目标属性和上述关联的属性,仅包含第一属性信息所包括的多种属性的一部分属性,对于另一部分未包含的每个属性,从该属性对应的取值范围中,选择一个取值,以得到目标对象的第一属性信息。
步骤803、基于目标对象的第一属性信息以及参照对象的第一属性信息,确定干扰对象的第一属性信息,干扰对象的第一属性信息用于使得目标对象成为目标问题的唯一答案。
具体的,对干扰对象的多种属性中的每个属性,从该属性的取值范围中,随机选择一个取值,以得到干扰对象的初始属性信息;判断干扰对象的初始属性信息是否使得目标对象成为目标问题的唯一答案,若满足,将干扰对象的初始属性信息作为干扰对象的第一属性信息,否则,重新得到干扰对象的初始属性信息。
其中,判断干扰对象的初始属性信息是否使得目标对象成为目标问题的唯一答案时,具体可以判断干扰对象的初始属性信息是否满足第三限制条件。该第三限制条件可以预先根据问题模板进行设置。例如,干扰对象的初始属性信息不包含目标对象的第一属性信息中与参照对象关联的属性的取值,且不包含第一占位符对应的目标属性的取值、第二占位符对应的目标属性的取值。
本实施例中,除了目标对象和干扰对象之外,还设置了参照对象,该参照对象可以用来辅助识别目标对象。随着对象的种类的增多,进一步地增加了验证码的破解难度,提高了安全性。相应的,在问题模板中设置了用来替换目标对象的目标属性的取值的第一占位符,以及用来替换参照对象的目标属性的取值的第二占位符,首先,基于该第二占位符对应的目标属性的取值,可以确定参照对象的第一属性信息,从而可以确定生成一个什么样的参照对象,然后,基于第一占位符对应的目标属性的取值和参照对象的第一属性信息,可以确定出目标对象的第一属性信息,从而可以准确地确定生成一个什么样的目标对象,使得目标对象成为目标问题的答案,最后,基于目标对象的第一属性信息和参照对象的第一属性信息,可以确定出干扰对象的第一属性信息,从而可以准确地确定生成什么样的干扰对象,使得目标对象成为目标问题的唯一答案,避免出现目标对象之外的答案,影响安全验证。
在一种实施方式中,基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间,如图9所示,其具体实现方式可以包括:
步骤901、获取基于预设三维空间的预设底面划分的多个区域。
实际应用中,预设三维空间中用于生成对象的基础平面作为上述预设底面。参见图2所示的预设三维空间,将Y轴的最大坐标值Ymax所在的平面,即Y=H的平面,作为预设底面S。
预先将该预设底面S划分成多个区域,并保存各个区域的位置信息。具体的,可以将预设底面划分成m行n列,以形成多个区域。并且,为方便区分这些区域,可以对划分的多个区域分配标识。例如,可以对每列分配列标识,对每行分配行标识,将每个区域所在行的行标识和所在列的列标识组合,以作为该区域的标识。例如,将预设底面S划分为10列4行,分配的列标识依次为1、2、3、4、5、6、7、8、9、10,分配的行标识依次为A、B、C、D,则各区域的标识分别为A1、A2、……、A8、A9、A10,B1、B2、……、B8、B9、B10,C1、C2、……、C8、C9、C10,D1、D2、……、D8、D9、D10,参见图10。
划分区域时,可以获取对象的长度和宽度的最大值,对预设三维空间的宽度与对象的宽度的最大值的比值取整,得到第一整数,将预设三维空间的宽度划分为第一整数个列,对预设三维空间的长度与对象的长度的最大值的比值取整,得到第二整数,将预设三维空间的长度划分为第二整数个列。如此,考虑了对象的尺寸,区域划分更合理。
步骤902、从多个区域中选择一个可用区域。
其中的可用区域为未占用的区域。实际应用中,对于已占用的区域,可以标记为已占用,具体可以对区域标识进行标记。选择可用区域时,基于区域标识进行选择。
步骤903、基于可用区域的位置信息,确定对象的位置信息,以作为对象的第二属性信息。
具体的,可以将可用区域的中心位置的二维坐标,作为对象的中心位置的二维坐标;基于对象的高度,得到对象的中心位置在高度方向上的坐标,以得到对象的中心位置的三维坐标,将对象的中心位置的三维坐标,作为对象的第二属性信息。一般,只要确定对象的中心位置,和对象的大小,就可以生成对象的轮廓。基于图2所示的预设三维空间,对象的中心位置的坐标包括(Xo,Yo,Zo),其中,(Xo,Zo)为预设底面S上的二维坐标,Yo为高度方向上的坐标,Yo满足如下公式:
Yo=Ymax-1/2h(1)
其中,h为对象的高度。
步骤904、基于对象的第一属性信息和第二属性信息,在可用区域内生成对象,以得到包含多个对象的目标三维空间。
例如,可以基于每个对象的对象名称、大小、颜色、朝向、位置信息,在可用区域内绘制每个对象。
本实施例中,针对每个对象,从多个区域中选择一个可用区域,基于该可用区域的位置信息,确定对象的位置信息,作为对象的第二属性信息,之后,基于该对象的第一属性信息和第二属性信息,在可用区域内生成对象。如此,多个对象分别占据了预设三维空间内的不同区域,也即采用了分块占位的方式,使得对象之间保持一定的距离,让对象的前后关系或者三维空间内的展示更自然,且可以防止对象之间相互遮挡。
在一种实施方式中,从多个区域中选择一个可用区域,其具体实现方式可以包括:从多个区域中选择一个未占用的区域,以作为当前区域,并执行如下操作:判断当前区域的邻域上的区域是否均被占用;若邻域上的区域未均被占用,确定当前区域为可用区域,并停止选择当前区域;若邻域上的区域均被占用,确定当前区域为不可用区域,并重新选择当前区域。这里,当前区域的邻域不包括该当前区域。
以图10所示意的多个区域举例来说,区域B2的邻域包括B1、B3、A2、C2。若当前区域为B2,且B2的邻域均被占用,那么,B2就是不可用区域,若B2的邻域未均被占用,那么,B2就是可用区域。
如此,一个区域的邻域的区域均被占用,则认为该区域周围都生成了对象,如果该区域继续生成对象,就会很拥挤,且空间不够用,对象之间容易发生遮挡,本实施例中,对于这种情况,就不再生成对象了,如此,可以为对象选择出可以绘制完整对象的空间,从而有效防止对象之间相互遮挡。
在一种实施方式中,从多个区域中选择一个未占用的区域,其具体实现方式可以包括:从多个区域中随机选择一个未占用的区域;当随机选择的次数达到预设次数,按照预设顺序,从多个区域中选择一个未占用的区域。
其中,预设次数可以根据实际情况设置,例如可以设置10-15次,可选的,设置10次。
按照预设顺序,从多个区域中选择一个未占用的区域时,可以从预设底面的顶点处的一个区域开始,沿行方向或者列方向按顺序从多个区域中选择一个未占用的区域。例如,可以在图10所示状态下,从左上角的区域A1开始,沿行方向或者列方向按顺序从多个区域中选择一个未占用的区域。
本实施例中,优先采用随机选择区域的方式,使得对象均匀分布在各个区域,当随机选择多次无法找到合适区域时,再按顺序遍历所有的区域,以加快处理效率。
当然也可以一直从多个区域中随机选择未占用的区域,直到选择出可用区域。
在一种实施方式中,在从多个区域中选择一个可用区域之后,上述方法还可以包括:将可用区域标记为已占用,以及将可用区域的邻域上未占用的区域标记为已占用。
参见图11,若可用区域为B2,将B2标记为已占用,并将B2的邻域B1、B3、A2、C2均标记为已占用,图中以点状填充示意已占用。若可用区域为C7,将C7标记为已占用,并将C7的邻域B7、D7、C6、C8均标记为已占用。若可用区域为A9,将A9标记为已占用,并将A9的邻域B9、A8、A10均标记为已占用。
如此,如果一个区域中生成了对象,将周围未占用的区域都标记为占用,避免再生成其它对象,为对象保留了足够的空间,从而避免了周围生成的对象与其发生遮挡。
另外,也可以直接按照默认设置的顺序,从多个区域中选择一个未占用的区域。例如,在图10所示状态下,默认依次选择区域B2、B4、B6、B8、C3、C5、C7、C9。
在一种实施方式中,基于可用区域的位置信息,确定对象的位置信息,以作为对象的第二属性信息,其具体实现方式可以包括:基于可用区域的位置信息,确定对象的中心位置的初始位置信息;对对象的中心位置的初始位置信息进行变换,得到对象的第二属性信息,以使得远离观看视角的一侧的对象提高。
示例性地,参见图2所示的预设三维空间,假设对象的中心位置的初始坐标(即初始位置信息)为(Xo,Yo,Zo),可以将底面S上的对象靠后的一侧提高一定的角度sin(参见图12),按照如下公式对对象的中心位置的初始坐标进行坐标转换:
X’=Xo(2)
Y’=H-(int)(Math.sin(sin)*Zo)-1/2h(3)
Z’=(int)(Math.cos(sin)*Zo(4)
其中,int表示整型数据。Math.sin()和Math.cos()为三角函数,h表示对象的高度,H表示预设三维空间的高度。
本实施例中,将远离观看视角的一侧的对象提高,也即将位置靠后的对象提高,使肉眼看起来更有立体效果。
另外,除上述分块占位的方式,也可以在预设三维空间中随机选择对象的位置信息,以得到对象的第二属性信息。
在一种实施方式中,基于目标三维空间,生成具有三维效果的目标图片,其具体实现方式可以包括:基于目标三维空间,生成具有三维效果的候选图片;判断候选图片是否存在遮挡情况,该遮挡情况是指候选图片中的不同对象之间形成遮挡;基于遮挡情况的判断结果,得到目标图片。
实际应用中,基于目标三维空间,生成具有三维效果的候选图片之后,有些对象可能会被其它对象遮挡,这与预设观看视角有关,即使采用了以上分块占位的方式,从某些观看视角来看,也有可能存在对象之间的遮挡情况,这可能会影响用户识别效果,本实施例中,对候选图片进行了遮挡情况的判断,基于该遮挡情况的判断结果,得到目标图片,从而降低了对用户识别效果的影响,提高了用户体验。
在一种实施方式中,基于遮挡情况的判断结果,得到目标图片,其具体实现方式可以包括:若不存在遮挡情况,将候选图片作为目标图片;若存在遮挡情况,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片。
本实施例中,将不存在遮挡情况的候选图片作为目标图片,将存在遮挡情况的候选图片废弃,重新生成一个候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片,从而提高目标图片的识别效果。
其中,重新生成一个候选图片,是指重新生成一个不同于当前存在遮挡情况的候选图片的候选图片。此时,需要重新执行步骤102之前的步骤,包括重新生成目标问题,基于随机生成的目标问题,确定多个对象的第一属性信息,基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间。
为了提高生成目标图片的效率,在一种实施方式中,基于遮挡情况的判断结果,得到目标图片,其具体实现方式可以包括:若不存在遮挡情况,将候选图片作为目标图片;若存在遮挡情况,判断遮挡情况对应的遮挡程度是否满足预设程度;基于遮挡程度的判断结果,得到目标图片。
实际应用中,若候选图片中不存在遮挡情况,则可以直接作为目标图片,若候选图片中存在遮挡情况,此时可以不直接将候选图片废弃,可以进一步对遮挡程度进行判断,基于该遮挡程度的判断结果,快速准确地得到目标图片。
在一种实施方式中,基于遮挡程度的判断结果,得到目标图片,其具体实现方式可以包括:若遮挡程度不满足预设程度,将候选图片作为目标图片;若遮挡程度满足预设程度,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片。
实际应用中,若候选图片中的遮挡程度不满足预设程度,说明遮挡不严重,对用户识别的影响较小,可以直接作为目标图片,若候选图片中的遮挡程度满足预设程度,说明遮挡较严重了,对用户识别的效果影响较大了,可以将候选图片废弃,重新生成一个候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片。
为了提高生成目标图片的效率,在一种实施方式中,基于遮挡程度的判断结果,得到目标图片,其具体实现方式可以包括:若遮挡程度不满足预设程度,将候选图片作为目标图片;若遮挡程度满足预设程度,将候选图片中形成遮挡情况的至少一个对象移除,基于移除的结果,得到目标图片。
实际应用中,若候选图片中的遮挡程度不满足预设程度,说明遮挡不严重,对用户识别的影响较小,可以直接作为目标图片,若候选图片中的遮挡程度满足预设程度,说明遮挡较严重了,对用户识别的效果影响较大了,此时可以不直接将候选图片废弃,可以进一步将候选图片中形成遮挡情况的至少一个对象移除以消除遮挡情况,基于该移除的结果,快速准确地得到目标图片。
其中,将候选图片中形成遮挡情况的至少一个对象移除时,考虑到实际应用中,形成上述遮挡情况的有可能是干扰对象,也有可能是目标对象,还有可能是参照对象,针对不同的情况,可以进行相适应的移除处理,以准确移除对象。具体如下:
如果上述遮挡情况由不同的干扰对象形成的,直接移除一个或者多个干扰对象,消除遮挡情况即可。
如果上述遮挡情况是由干扰对象和目标对象形成的,则移除干扰对象,保留目标对象。
如果上述遮挡情况是由干扰对象和参照对象形成的,则移除干扰对象,保留参照对象。
如果上述遮挡情况是由参照对象和目标对象形成的,则移除参照对象和/或目标对象。
在一种实施方式中,基于移除的结果,得到目标图片,其实现方式可以包括:
若移除的对象不包括参照对象和/或目标对象,直接将经移除后的候选图片作为目标图片,或者,统计经移除后的候选图片所包括的对象的数量,以得到统计数量,若统计数量满足预设数量,将经移除后的候选图片作为目标图片,若统计数量不满足预设数量,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片。
若移除的对象包括参照对象和/或目标对象,则重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片。
实际应用中,不论是移除参照对象还是移除目标对象,都无法对目标题目进行作答,所以,本实施例中,若移除了参照对象,或者是移除了目标对象,亦或者参照对象和目标对象都移除了,都将候选图片废弃,重新生成一个候选图片,以得到目标图片。对于未移除目标对象和/或参照对象的情况,本实施例中,提供了两种基于移除结果得到目标图片的方式,如果采用前一种方式,可以快速得到目标图片,如果采用后一种方式,则可以保证目标图片中保留足够数量的对象,以提高验证码的破解难度。采用后一种方式时,在统计数量不满足预设数量的情况下,将候选图片废弃,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片,如此,可以防止生成的目标图片的对象数量不足,识别过于简单。
在一种实施方式中,在判断候选图片是否存在遮挡情况之前,上述验证码生成方法还可以包括:确定候选图片中每个对象的最小矩形框,最小矩形框为框住对象的最小矩形框。那么,判断候选图片是否存在遮挡情况,其具体实现方式包括:判断各最小矩形框之间是否有交集;若有交集,确定存在遮挡情况。实际应用中,可以通过训练好的图像识别模型检测候选图片中每个对象的最小矩形框。该图像识别模型的具体训练方式可以参考相关技术,此处不做赘述。面对各种形状的对象,本实施例中,通过对象的最小矩形框来判断遮挡情况,实现简单快速。
在一种实施方式中,判断遮挡情况对应的遮挡程度是否满足预设程度,其具体实现方式可以包括:判断上述交集与对应的最小矩形框的面积比,是否到达预设比值;若面积比达到预设比值,确定遮挡程度满足预设程度。本实施例中,通过最小矩形框的交集部分所占的面积比,来判断遮挡程度,实现简单。
本发明实施例的方案中,基于三维空间得到的目标图片,通过各种方式消除了对象之间的遮挡,与上述相关技术中添加各种干扰因素的方案相比,人类用户更加容易识别,在满足计算机破解难度的情况下,也提高了用户体验,即在用户体验和破解难度上达到了一致。
可以理解的是,上述验证码生成方法还可以包括记录目标问题的答案信息。相应的,基于目标问题以及目标图片,生成验证码,具体可以包括基于目标问题、目标图片以及记录的目标问题的答案信息,生成验证码。在进行验证时,通过记录的目标问题的答案信息,验证用户输入的目标问题的答案是否正确。
实际应用中,记录目标问题的答案信息时,可以将上述目标对象的最小矩形框的位置信息作为目标问题的答案信息进行记录。当需要展示验证码时,只需要将目标问题和目标图片展示给用户,让用户通过点击操作(即上述作答操作)完成作答后,基于记录的最小矩形框的位置信息,判断点击的坐标是否在记录的最小矩形框的范围内,即是否在目标对象的最小矩形区域内,如果在区域内,即验证正确,否则验证错误。
另外,由于只需要用户进行点击操作就可完成验证,用户体验好。
需要说明的是,本发明实施例中,执行验证码生成方法的服务器可以支持水平扩展,当有验证需求的业务方调用量快速增长的时候,可直接加机器应对。
图13是本发明实施例的一种示例性的验证码生成装置的结构示意图。
如图13所示,该验证码生成装置1300包括:
第一确定模块1301,用于基于随机生成的目标问题,确定多个对象的第一属性信息,多个对象中包括目标对象和干扰对象,目标对象为目标问题的正确答案,干扰对象为目标问题的干扰答案;
第一生成模块1302,用于基于对象的第一属性信息,在预设三维空间中生成具有三维姿态的对象,以得到包含多个对象的目标三维空间;
第二生成模块1303,用于基于目标三维空间,生成具有三维效果的目标图片;
第三生成模块1304,用于基于目标问题以及目标图片,生成验证码,验证码用于使用户针对目标图片进行作答操作,来输入目标问题的答案,以进行验证。
在一种实施方式中,第一生成模块1302,具体用于:
获取基于预设三维空间的预设底面划分的多个区域;
从多个区域中选择一个可用区域;
基于可用区域的位置信息,确定对象的位置信息,以作为对象的第二属性信息;
基于对象的第一属性信息和第二属性信息,在可用区域内生成对象,以得到包含多个对象的目标三维空间。
在一种实施方式中,第一生成模块1302,具体用于:
从多个区域中选择一个未占用的区域,以作为当前区域,并执行如下操作:
判断当前区域的邻域上的区域是否均被占用;
若邻域上的区域未均被占用,确定当前区域为可用区域,并停止选择当前区域;
若邻域上的区域均被占用,确定当前区域为不可用区域,并重新选择当前区域。
在一种实施方式中,第一生成模块1302,具体用于:
从多个区域中随机选择一个未占用的区域;
当随机选择的次数达到预设次数,按照预设顺序,从多个区域中选择一个未占用的区域。
在一种实施方式中,如图14所示,还包括:
占用标记模块1305,用于将可用区域标记为已占用,以及将可用区域的邻域上未占用的区域标记为已占用。
在一种实施方式中,第一生成模块1302,具体用于:
基于可用区域的位置信息,确定对象的中心位置的初始位置信息;
对对象的中心位置的初始位置信息进行变换,得到对象的第二属性信息,以使得远离观看视角的一侧的对象提高。
在一种实施方式中,第二生成模块1303,具体用于:
基于目标三维空间,生成具有三维效果的候选图片;
判断候选图片是否存在遮挡情况,遮挡情况是指候选图片中的不同对象之间形成遮挡;
基于遮挡情况的判断结果,得到目标图片。
在一种实施方式中,第二生成模块1303,具体用于:
若不存在遮挡情况,将候选图片作为目标图片;
若存在遮挡情况,判断遮挡情况对应的遮挡程度是否满足预设程度;
基于遮挡程度的判断结果,得到目标图片。
在一种实施方式中,第二生成模块1303,具体用于:
若遮挡程度不满足预设程度,将候选图片作为目标图片;
若遮挡程度满足预设程度,将候选图片中形成遮挡情况的至少一个对象移除,基于移除的结果,得到目标图片。
在一种实施方式中,第二生成模块1303,具体用于:
若移除的对象不包括参照对象和/或目标对象,直接将经移除后的候选图片作为目标图片,或者,统计经移除后的候选图片所包括的对象的数量,以得到统计数量,若统计数量满足预设数量,将经移除后的候选图片作为目标图片,若统计数量不满足预设数量,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片;
若移除的对象包括参照对象和/或目标对象,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到目标图片。
在一种实施方式中,如图14所示,还包括:
第二确定模块1306,用于确定候选图片中每个对象的最小矩形框,最小矩形框为框住对象的最小矩形框;
第二生成模块1303,具体用于:
判断各最小矩形框之间是否有交集;
若有交集,确定存在遮挡情况。
在一种实施方式中,第二生成模块1303,具体用于:
判断交集与对应的最小矩形框的面积比,是否到达预设比值;
若面积比达到预设比值,确定遮挡程度满足预设程度。
在一种实施方式中,如图14所示,还包括:
第四生成模块1307,用于从多个问题模板中,随机选择一个问题模板,作为目标问题模板;问题模板包括至少一个占位符,占位符用于替换成目标属性的取值;从占位符对应的候选属性集合中选择一个候选属性,以作为目标属性;从目标属性的取值范围中选择一个取值,以作为目标属性的取值;将目标问题模板中的占位符替换成目标属性的取值,以生成目标问题。
在一种实施方式中,至少一个占位符包括与目标对象对应的第一占位符,第一确定模块1301,具体用于:
基于第一占位符对应的目标属性的取值,确定目标对象的第一属性信息,目标对象的第一属性信息用于使得目标对象成为目标问题的答案;
基于目标对象的第一属性信息,确定干扰对象的第一属性信息,干扰对象的第一属性信息用于使得目标对象成为目标问题的唯一答案。
在一种实施方式中,多个对象还包括用于辅助识别目标对象的参照对象,至少一个占位符包括与参照对象对应的第二占位符,第一确定模块1301,具体用于:
基于第二占位符对应的目标属性的取值,确定参照对象的第一属性信息;
基于参照对象的第一属性信息,确定目标对象的第一属性信息,目标对象的第一属性信息用于使得目标对象成为目标问题的答案;
基于目标对象的第一属性信息以及参照对象的第一属性信息,确定干扰对象的第一属性信息,干扰对象的第一属性信息用于使得目标对象成为目标问题的唯一答案。
在一种实施方式中,多个对象还包括用于辅助识别目标对象的参照对象,至少一个占位符包括与目标对象对应的第一占位符以及与参照对象对应的第二占位符,第一确定模块1301,具体用于:
基于第二占位符对应的目标属性的取值,确定参照对象的第一属性信息;
基于第一占位符对应的目标属性的取值以及参照对象的第一属性信息,确定目标对象的第一属性信息,目标对象的第一属性信息用于使得目标对象成为目标问题的答案;
基于目标对象的第一属性信息以及参照对象的第一属性信息,确定干扰对象的第一属性信息,干扰对象的第一属性信息用于使得目标对象成为目标问题的唯一答案。
本发明实施例提供的一种电子设备,包括:处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现如以上任一实施例中的验证码生成方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
图15是本发明实施例提供的一种示例性的电子设备的结构示意图。如图15所示,该电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。处理器1501可以调用存储器1503中的计算机程序,以执行以上任一实施例中的验证码生成方法。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如以上任一的验证码生成方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (21)
1.一种验证码生成方法,其特征在于,包括:
基于随机生成的目标问题,确定多个对象的第一属性信息,所述多个对象中包括目标对象和干扰对象,所述目标对象为所述目标问题的正确答案,所述干扰对象为所述目标问题的干扰答案;
基于所述对象的第一属性信息,在预设三维空间中生成具有三维姿态的所述对象,以得到包含多个所述对象的目标三维空间;
基于所述目标三维空间,生成具有三维效果的目标图片;
基于所述目标问题以及所述目标图片,生成验证码,所述验证码用于使用户针对所述目标图片进行作答操作,来输入所述目标问题的答案,以进行验证。
2.根据权利要求1所述的方法,其特征在于,所述基于所述对象的第一属性信息,在预设三维空间中生成具有三维姿态的所述对象,以得到包含多个所述对象的目标三维空间,包括:
获取基于所述预设三维空间的预设底面划分的多个区域;
从所述多个区域中选择一个可用区域;
基于所述可用区域的位置信息,确定所述对象的位置信息,以作为所述对象的第二属性信息;
基于所述对象的第一属性信息和第二属性信息,在所述可用区域内生成所述对象,以得到包含多个所述对象的目标三维空间。
3.根据权利要求2所述的方法,其特征在于,所述从所述多个区域中选择一个可用区域,包括:
从所述多个区域中选择一个未占用的区域,以作为当前区域,并执行如下操作:
判断所述当前区域的邻域上的区域是否均被占用;
若所述邻域上的区域未均被占用,确定所述当前区域为可用区域,并停止选择当前区域;
若所述邻域上的区域均被占用,确定所述当前区域为不可用区域,并重新选择当前区域。
4.根据权利要求3所述的方法,其特征在于,所述从所述多个区域中选择一个未占用的区域,包括:
从所述多个区域中随机选择一个未占用的区域;
当随机选择的次数达到预设次数,按照预设顺序,从所述多个区域中选择一个未占用的区域。
5.根据权利要求2至4任一项所述的方法,其特征在于,在所述从所述多个区域中选择一个可用区域之后,还包括:
将所述可用区域标记为已占用,以及将所述可用区域的邻域上未占用的区域标记为已占用。
6.根据权利要求2所述的方法,其特征在于,所述基于所述可用区域的位置信息,确定所述对象的位置信息,以作为所述对象的第二属性信息,包括:
基于所述可用区域的位置信息,确定所述对象的中心位置的初始位置信息;
对所述对象的中心位置的初始位置信息进行变换,得到所述对象的第二属性信息,以使得远离观看视角的一侧的所述对象提高。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标三维空间,生成具有三维效果的目标图片,包括:
基于所述目标三维空间,生成具有三维效果的候选图片;
判断所述候选图片是否存在遮挡情况,所述遮挡情况是指所述候选图片中的不同所述对象之间形成遮挡;
基于所述遮挡情况的判断结果,得到所述目标图片。
8.根据权利要求7所述的方法,其特征在于,所述基于所述遮挡情况的判断结果,得到所述目标图片,包括:
若不存在所述遮挡情况,将所述候选图片作为所述目标图片;
若存在所述遮挡情况,判断所述遮挡情况对应的遮挡程度是否满足预设程度;
基于所述遮挡程度的判断结果,得到所述目标图片。
9.根据权利要求8所述的方法,其特征在于,所述基于所述遮挡程度的判断结果,得到所述目标图片,包括:
若所述遮挡程度不满足所述预设程度,将所述候选图片作为所述目标图片;
若所述遮挡程度满足所述预设程度,将所述候选图片中形成所述遮挡情况的至少一个所述对象移除,基于所述移除的结果,得到所述目标图片。
10.根据权利要求9所述的方法,其特征在于,所述基于所述移除的结果,得到所述目标图片,包括:
若移除的对象不包括参照对象和/或目标对象,直接将经移除后的候选图片作为所述目标图片,或者,统计经移除后的候选图片所包括的所述对象的数量,以得到统计数量,若所述统计数量满足预设数量,将经移除后的候选图片作为所述目标图片,若所述统计数量不满足所述预设数量,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到所述目标图片;
若移除的对象包括参照对象和/或目标对象,重新生成候选图片,以基于重新生成的候选图片的遮挡情况的判断结果,得到所述目标图片。
11.根据权利要求7至10任一项所述的方法,其特征在于,在所述判断所述候选图片是否存在遮挡情况之前,还包括:
确定所述候选图片中每个所述对象的最小矩形框,所述最小矩形框为框住所述对象的最小矩形框;
所述判断所述候选图片是否存在遮挡情况,包括:
判断各所述最小矩形框之间是否有交集;
若有交集,确定存在所述遮挡情况。
12.根据权利要求11所述的方法,其特征在于,所述判断所述遮挡情况对应的遮挡程度是否满足预设程度,包括:
判断所述交集与对应的所述最小矩形框的面积比,是否到达预设比值;
若所述面积比达到预设比值,确定所述遮挡程度满足所述预设程度。
13.根据权利要求1所述的方法,其特征在于,在所述基于随机生成的目标问题,确定多个对象的第一属性信息之前,还包括:
从多个问题模板中,随机选择一个问题模板,作为目标问题模板;所述问题模板包括至少一个占位符,所述占位符用于替换成目标属性的取值;
从所述占位符对应的候选属性集合中选择一个候选属性,以作为所述目标属性;
从所述目标属性的取值范围中选择一个取值,以作为所述目标属性的取值;
将所述目标问题模板中的所述占位符替换成所述目标属性的取值,以生成所述目标问题。
14.根据权利要求13所述的方法,其特征在于,所述至少一个占位符包括与所述目标对象对应的第一占位符,所述基于随机生成的目标问题,确定多个对象的第一属性信息,包括:
基于所述第一占位符对应的所述目标属性的取值,确定所述目标对象的第一属性信息,所述目标对象的第一属性信息用于使得所述目标对象成为所述目标问题的答案;
基于所述目标对象的第一属性信息,确定所述干扰对象的第一属性信息,所述干扰对象的第一属性信息用于使得所述目标对象成为所述目标问题的唯一答案。
15.根据权利要求13所述的方法,其特征在于,所述多个对象还包括用于辅助识别所述目标对象的参照对象,所述至少一个占位符包括与所述参照对象对应的第二占位符,所述基于随机生成的目标问题,确定多个对象的第一属性信息,包括:
基于所述第二占位符对应的所述目标属性的取值,确定所述参照对象的第一属性信息;
基于所述参照对象的第一属性信息,确定所述目标对象的第一属性信息,所述目标对象的第一属性信息用于使得所述目标对象成为所述目标问题的答案;
基于所述目标对象的第一属性信息以及所述参照对象的第一属性信息,确定所述干扰对象的第一属性信息,所述干扰对象的第一属性信息用于使得所述目标对象成为所述目标问题的唯一答案。
16.根据权利要求13所述的方法,其特征在于,所述多个对象还包括用于辅助识别所述目标对象的参照对象,所述至少一个占位符包括与所述目标对象对应的第一占位符以及与所述参照对象对应的第二占位符,所述基于随机生成的目标问题,确定多个对象的第一属性信息,包括:
基于所述第二占位符对应的所述目标属性的取值,确定所述参照对象的第一属性信息;
基于所述第一占位符对应的所述目标属性的取值以及所述参照对象的第一属性信息,确定所述目标对象的第一属性信息,所述目标对象的第一属性信息用于使得所述目标对象成为所述目标问题的答案;
基于所述目标对象的第一属性信息以及所述参照对象的第一属性信息,确定所述干扰对象的第一属性信息,所述干扰对象的第一属性信息用于使得所述目标对象成为所述目标问题的唯一答案。
17.一种验证码生成装置,其特征在于,包括:
第一确定模块,用于基于随机生成的目标问题,确定多个对象的第一属性信息,所述多个对象中包括目标对象和干扰对象,所述目标对象为所述目标问题的正确答案,所述干扰对象为所述目标问题的干扰答案;
第一生成模块,用于基于所述对象的第一属性信息,在预设三维空间中生成具有三维姿态的所述对象,以得到包含多个所述对象的目标三维空间;
第二生成模块,用于基于所述目标三维空间,生成具有三维效果的目标图片;
第三生成模块,用于基于所述目标问题以及所述目标图片,生成验证码,所述验证码用于使用户针对所述目标图片进行作答操作,来输入所述目标问题的答案,以进行验证。
18.根据权利要求17所述的装置,其特征在于,所述第一生成模块,具体用于:
获取基于所述预设三维空间的预设底面划分的多个区域;
从所述多个区域中选择一个可用区域;
基于所述可用区域的位置信息,确定所述对象的位置信息,以作为所述对象的第二属性信息;
基于所述对象的第一属性信息和第二属性信息,在所述可用区域内生成所述对象,以得到包含多个所述对象的目标三维空间。
19.根据权利要求17所述的装置,其特征在于,所述第二生成模块,具体用于:
基于所述目标三维空间,生成具有三维效果的候选图片;
判断所述候选图片是否存在遮挡情况,所述遮挡情况是指所述候选图片中的不同所述对象之间形成遮挡;
基于所述遮挡情况的判断结果,得到所述目标图片。
20.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至16中任一项所述的验证码生成方法的步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16中任一项所述的验证码生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541247.4A CN113240797A (zh) | 2021-05-18 | 2021-05-18 | 一种验证码生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541247.4A CN113240797A (zh) | 2021-05-18 | 2021-05-18 | 一种验证码生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113240797A true CN113240797A (zh) | 2021-08-10 |
Family
ID=77135138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110541247.4A Pending CN113240797A (zh) | 2021-05-18 | 2021-05-18 | 一种验证码生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113240797A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107181733A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种登录验证方法及装置 |
JP2019053286A (ja) * | 2017-08-29 | 2019-04-04 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | 情報検証方法及び装置 |
CN109740334A (zh) * | 2018-11-26 | 2019-05-10 | 武汉极意网络科技有限公司 | 一种空间推理验证方法、服务器以及终端 |
-
2021
- 2021-05-18 CN CN202110541247.4A patent/CN113240797A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107181733A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种登录验证方法及装置 |
JP2019053286A (ja) * | 2017-08-29 | 2019-04-04 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | 情報検証方法及び装置 |
CN109740334A (zh) * | 2018-11-26 | 2019-05-10 | 武汉极意网络科技有限公司 | 一种空间推理验证方法、服务器以及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739720B (zh) | 三维动态验证码的生成方法及装置 | |
TWI738717B (zh) | 基於驗證碼的驗證處理方法及裝置 | |
US8141146B2 (en) | Authentication server, authentication method and authentication program | |
CN109782989B (zh) | 安全验证方法及相关装置 | |
EP2330529A2 (en) | CAPTCHAs based on visual illusions | |
CN109600336A (zh) | 存储设备、验证码应用方法和装置 | |
CN103886243B (zh) | 动态验证码图片的生成方法和装置及验证方法和装置 | |
US10095940B2 (en) | Image processing apparatus, image processing method and non-transitory computer readable medium | |
CN111091031A (zh) | 目标对象选取方法和人脸解锁方法 | |
CN112231676A (zh) | 图形验证码生成、显示、验证方法、装置、设备及存储介质 | |
CN105701391A (zh) | 动态验证码图片生成方法及装置 | |
CN111753280B (zh) | 验证码验证方法、装置及电子设备 | |
CN112149605B (zh) | 一种人脸识别方法、装置、设备及存储介质 | |
CN111523105B (zh) | 基于语义理解的交互式图片验证方法 | |
CN113240797A (zh) | 一种验证码生成方法、装置、电子设备及存储介质 | |
CN113422687A (zh) | 一种验证方法、验证服务器和验证系统 | |
CN108959901B (zh) | 基于图片轮播的验证码提示方法 | |
CN111259365A (zh) | 一种动态验证码生成方法 | |
CN112395963B (zh) | 对象识别方法和装置、电子设备及存储介质 | |
CN110087235B (zh) | 一种身份认证、认证方式调整的方法及装置 | |
JP7227444B2 (ja) | ランダムドットパターンcaptchaを用いたアクセス認証方法 | |
CN110516430B (zh) | 身份验证方法、服务端和客户端 | |
CN111552948A (zh) | 一种电子终端解锁方法 | |
CN106354516A (zh) | 追踪设备的方法及装置 | |
KR101427820B1 (ko) | 드로잉 방식 이미지 기반 captcha 제공 시스템 및 captcha 제공 방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210810 |