CN109117624A - 生成验证码图像的方法、电子设备和计算机可读介质 - Google Patents
生成验证码图像的方法、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN109117624A CN109117624A CN201810875047.0A CN201810875047A CN109117624A CN 109117624 A CN109117624 A CN 109117624A CN 201810875047 A CN201810875047 A CN 201810875047A CN 109117624 A CN109117624 A CN 109117624A
- Authority
- CN
- China
- Prior art keywords
- identifying code
- image
- fingerprint data
- acquisition request
- parameter
- 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
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
Abstract
本申请实施例公开了生成验证码图像的方法、电子设备和计算机可读介质。该方法的一具体实施方式包括:响应于接收到电子设备发送的验证码获取请求,基于与该验证码获取请求相关联的、该电子设备的设备指纹数据,生成该验证码获取请求对应的特征值;基于该设备指纹数据和该特征值,生成与该验证码获取请求对应的验证码图像。该实施方式提供了新的生成验证码的方式。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及生成验证码图像的方法、电子设备和计算机可读介质。
背景技术
全自动区分计算机和人类的图灵测试(Completely Automated Public Turingtest to tell Computers and Humans Apart,CAPTCHA),也称验证码测试,是一种区分用户是计算机还是人的公共全自动程序。设置验证码,可以有效防止使用程序恶意注册、暴力破解或者批量发帖等。
随着验证码技术的不断发展,出现了各种形式的验证码,例如,数字验证码、图片验证码、滑块验证码等。但是别有用心者,依然会使用各种方法,试图破解验证码,例如,利用运行破解程序的机器操作而伪装是人类在操作,因此,现有的验证码技术依然会存在较高的被破解的风险。
发明内容
本申请实施例提出了生成验证码图像的方法、电子设备和计算机可读介质。
第一方面,本申请实施例提供了一种生成验证码图像的方法,该方法包括:响应于接收到电子设备发送的验证码获取请求,基于与上述验证码获取请求相关联的、上述电子设备的设备指纹数据,生成上述验证码获取请求对应的特征值;基于上述设备指纹数据和上述特征值,生成与上述验证码获取请求对应的验证码图像。
第二方面,本申请实施例提供了一种生成验证码图像的装置,该装置包括:第一生成单元,被配置成响应于接收到电子设备发送的验证码获取请求,基于与上述验证码获取请求相关联的、上述电子设备的设备指纹数据,生成上述验证码获取请求对应的特征值;第二生成单元,被配置成基于上述设备指纹数据和上述特征值,生成与上述验证码获取请求对应的验证码图像。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的生成验证码图像的方法、电子设备和计算机可读介质,通过响应于接收到验证码获取请求,基于设备指纹信息生成与验证码获取请求对应的特征值,然后,再基于设备指纹信息和上述特征值,生成与上述验证码获取请求对应的验证码图像,技术效果至少可以包括:提供了一种新的生成验证码图像的方式。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一些实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的生成验证码图像的方法的一个实施例的流程图;
图3是根据本申请的生成验证码图像的方法的一个应用场景的示意图;
图4是根据本申请的生成验证码图像的方法的又一个实施例的流程图;
图5是根据本申请的步骤402的一种可选的实现方式的流程图;
图6是适于用来实现本申请实施例的设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的生成验证码图像的方法的示例性系统架构100。
如图1所示,系统架构100可以包括设备101、网络102和设备103。网络102用以在设备101和设备103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
设备101、103可以是支持网络连接从而提供各种网络服务的硬件设备或软件。当设备为硬件时,其可以是支持具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等等。这时,作为硬件设备,其可以实现成多个设备组成的分布式设备群,也可以实现成单个设备。当设备为软件时,可以安装在上述所列举的电子设备中。这时,作为软件,其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
在实践中,设备可以通过安装相应的客户端应用或服务端应用来提供相应的网络服务。设备在安装了客户端应用之后,其可以在网络通信中体现为客户端。相应地,在安装了服务端应用之后,其可以在网络通信中体现为服务端。
作为示例,在图1中,设备103体现为服务端,而设备101体现为客户端。具体地,设备101可以是具有显示屏的客户端,设备103可以是对利用图像进行验证提供支持的后台服务器。对利用图像进行验证提供支持的后台服务器可以基于接收到的验证码获取请求生成验证码图像,以及将验证码图像发送给设备101。
需要说明的是,设备101可能是真实人类用户操作的终端设备,也可能是破解者设计的自动操作程序所运行于的电子设备(例如终端或者服务器)。自动操作程序运行时可以自动识别验证码以及进行操作,并且向设备103提供答案,试图使设备103相信设备103正在由人类用户操作进行验证。
需要说明的是,本申请实施例所提供的生成验证码图像的方法可以由设备103执行。
应该理解,图1中的网络和设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络和设备。
请参考图2,其示出了生成验证码图像的方法的一个实施例的流程200。本实施例主要以该方法应用于有一定运算能力的电子设备中来举例说明,该电子设备可以是图1示出的服务器103。该生成验证码图像的方法,包括以下步骤:
步骤201,响应于接收到电子设备发送的验证码获取请求,基于与验证码获取请求相关联的、电子设备的设备指纹数据,生成验证码获取请求对应的特征值。
在本实施例中,生成验证码图像的方法的执行主体(例如图1所示的服务端)可以通过有线连接方式或者无线连接方式从用户所使用的电子设备接收验证码获取请求,以及响应于接收到上述验证码获取请求,基于与上述验证码获取请求相关联的、上述电子设备的设备指纹数据,生成上述验证码获取请求对应的特征值。
通常,设备在一些情况下,可能需要被验证,才能获取相应权限。比如,设备可能需要在登录网站之前或者进行支付操作之前等,需要被验证。提示设备需要被验证的界面,可以称为验证界面。有些情况下,验证也可以被称为鉴权。
本申请中,在验证界面中,可以设置验证码获取控件,作为示例,验证码获取控件可以标示“获取验证码”或者“看不清,换一张”等字样。在需要被验证的时候,用户可以在验证界面中触发图像获取控件,设备即可发送验证码获取请求。上述验证码获取请求可以用于请求获取验证码。
在本实施例中,上述电子设备可以将即将发送的验证码获取请求与电子设备自身的设备指纹数据相关联。在发送验证码获取请求的同时,将与验证码获取请求相关联的设备指纹数据,一同发送给上述执行主体。
在本实施例中,上述设备指纹数据可以用于唯一标识出该设备的设备特征。根据实践需要,设备指纹数据可以采用不同的具体参数,采用的具体参数可以唯一标识出设备的特征即可。
在一些实施例中,上述设备指纹数据可以包括但不限于以下至少一个类型:设备标识、国际移动设备标识码、操作系统版本、媒体访问控制地址和网际协议地址等。
在本实施例中,上述特征值,基于上述设备指纹数据生成,用于唯一标识上述设备指纹数据,从而,可以唯一标识上述电子设备。
作为示例,可以对上述设备指纹数据进行散列运算,生成上述设备指纹数据的散列值,以及将生成的散列值作为上述特征值。
在这里,上述特征值与上述验证码获取请求对应,可以理解为相同电子设备发送的多个验证码获取请求,各个验证码获取请求对应的特征值互不相同;并且,不同电子设备发送的验证码获取请求,各个验证码获取请求对应的特征值互不相同。
作为示例,可以利用对上述设备指纹数据和验证码获取请求的标识进行散列计算,将散列计算结果作为与上述验证码获取请求对应的特征值。
作为示例,可以将上述设备指纹数据作为输入,输入预设函数,将预设函数的输出作为与上述验证码获取请求对应的特征值。在这里,上述预设函数可以对于不同的输入,得到不同的输出;并且,还可以对于相同的输入,得到不同的输出。例如,预设函数可以通过给设备指纹数据加上随机数(或者从该电子设备接收到验证码获取请求的次数)再进行计算,实现对于相同输入得到不同输出;上述再进行计算,可以使用各种算法,在此不再赘述。
步骤202,基于设备指纹数据和特征值,生成与验证码获取请求对应的验证码图像。
在本实施例中,生成验证码图像的方法的执行主体(例如图1所示的服务端)可以基于上述设备指纹数据和上述特征值,生成与上述验证码获取请求对应的验证码图像。
在这里,可以使用各种方式,基于设备指纹数据和特征值,生成与验证码获取请求对应的验证码图像。
作为示例,可以将特征值中的一部分或者全部确定为验证码,基于设备指纹数据生成背景图像,组合背景图像和验证码,生成上述验证码图像。
继续参见图3,图3是根据本实施例的生成验证码图像的方法的应用场景的一个示意图。在图3的应用场景中:
电子设备301、302和303可以发起验证码获取请求。需要说明的是,电子设备301、302和303可能是真实人类用户使用的终端,也可能是破解者设计的自动操作程序所运行于的电子设备(例如终端或者服务器)。自动操作程序运行时可以自动识别验证码以及进行操作,并且向执行主体提供答案,试图使上述执行主体相信电子设备301、302和303正在由人类用户操作进行验证。作为示例,电子设备301发出验证码获取请求A,电子设备302发出验证码获取请求B,电子设备303发出验证码获取请求C。验证码获取请求A与电子设备301的设备指纹数据A相关联,验证码获取请求B与电子设备302的设备指纹数据B相关联,验证码获取请求C与电子设备301的设备指纹数据C相关联.
服务器304可以响应于接收到电子设备发送的验证码获取请求,基于与上述验证码获取请求相关联的、上述电子设备的设备指纹数据,生成上述验证码获取请求对应的特征值。作为示例,服务器可以针对验证码获取请求A,基于设备指纹数据A,生成与验证码获取请求A对应的特征值A。服务器可以针对验证码获取请求B,基于设备指纹数据B,生成与验证码获取请求B对应的特征值B。服务器可以针对验证码获取请求C,基于设备指纹数据C,生成与验证码获取请求C对应的特征值C。
服务器304可以基于上述设备指纹数据和上述特征值,生成与上述验证码获取请求对应的验证码图像。作为示例,服务器可以基于上述设备指纹数据A和上述特征值A,生成与上述验证码获取请求A对应的验证码图像A;服务器可以基于上述设备指纹数据B和上述特征值B,生成与上述验证码获取请求B对应的验证码图像B;服务器可以基于上述设备指纹数据C和上述特征值C,生成与上述验证码获取请求C对应的验证码图像C。
服务器304可以向上述电子设备301、302和303发送所获取的验证用图像。作为示例,上述服务器304可以向上述电子设备301发送验证码图像A。上述服务器304可以向上述电子设备302发送验证码图像B。上述服务器304可以向上述电子设备303发送验证码图像C。
本申请的上述实施例提供的方法,通过响应于接收到验证码获取请求,基于设备指纹信息生成与验证码获取请求对应的特征值,然后,再基于设备指纹信息和上述特征值,生成与上述验证码获取请求对应的验证码图像,技术效果至少可以包括:
第一,提供了一种新的生成验证码图像的方式。
第二,可以实时生成验证码图像。现有技术中,通常预先生成验证码图像集合并存储,响应于接收到验证码获取请求则从预先生成的验证码图像中获取验证码图像,由此,破解者可以对预先生成的验证码图像集合进行有针对性地破解。本申请的实时生成验证码图像,可以针对每个验证码获取请求生成不同的验证码图像,由此,破解者如果想要破解本申请的验证码,则需要提供实时识别模型(训练的成本极大)。从而,本申请的生成验证码图像的方式,可以提高验证码破解难度。
需要说明的是,对于验证码的破解和防破解,是魔高一尺道高一丈的过程。不存在绝对安全的防破解方式。不过,可以通过增加破解难度,而击退大范围破解。可以理解,当破解成本大于获利的时候,破解者将会消退。
在一些实施例中,验证码获取请求与验证码获取请求的请求发送信息相关联,请求发送信息可以包括但不限于以下至少一项:发送时间信息和发送位置信息。
在这里,上述发送时间信息可以指示验证码获取请求的发送时间。上述发送位置信息可以指示验证码获取请求发送时上述电子设备所在的位置。
在一些实施例中,步骤201可以包括:根据上述设备指纹数据和上述请求发送信息,生成上述特征值。
在这里,请求发送信息可以用于区分同一电子设备发送的不同验证码获取请求。上述特征值根据上述设备指纹数据和上述请求发送信息生成,可以保证上述执行主体生成的每个特征值均不同。由此,可以保证根据设备指纹数据与上述特征值所生成的验证码图像,每个图像与验证码获取请求唯一对应。即,不同的验证码获取请求对应的验证码图像,互不相同。
可以理解,上述请求发送信息是以数据的形式表示的。作为示例,根据上述设备指纹数据和上述请求发送信息,生成上述特征值,可以通过以下方式实现:拼接数据形式的请求发送信息和上述设备指纹数据,可以将拼接结果作为上述特征值。
在一些实施例中,根据上述设备指纹数据和上述请求发送信息,生成上述特征值,可以通过以下方式实现:确定上述设备指纹数据和上述请求发送信息的散列值,以及将上述散列值确定为上述特征值。
在这里,可以通过对上述设备指纹数据和数据形式的上述请求发送信息进行散列计算,确定上述散列值。散列计算可以使用散列函数进行。散列函数,也称散列算法或者哈希函数(Hash Function)是一种从任何一种数据中创建小的数字指纹的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。散列值也可以称为哈希值。
需要说明的是,设备指纹信息和请求发送信息这一组合唯一,对唯一的组合进行散列计算,可以生成唯一的散列值作为特征值。散列计算可以把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。由此,即时验证码所关联的设备指纹数据的长度不定,也可以变换成固定长度的输出,固定长度的输出可以便于后续生成验证码图像的操作。即,后续生成验证码图像的操作可以实现为图像生成接口,接口的输入为上述固定长度的输出,接口的输出为验证码图像。
进一步参考图4,其示出了生成验证码图像的方法的又一个实施例的流程400。该生成验证码图像的方法的流程400,包括以下步骤:
步骤401,响应于接收到电子设备发送的验证码获取请求,基于与验证码获取请求相关联的、电子设备的设备指纹数据,生成验证码获取请求对应的特征值。
在本实施例中,生成验证码图像的方法的执行主体(例如图1所示的服务端)可以通过有线连接方式或者无线连接方式从用户所使用的电子设备接收验证码获取请求,以及响应于接收到上述验证码获取请求,基于与上述验证码获取请求相关联的、上述电子设备的设备指纹数据,生成上述验证码获取请求对应的特征值。
步骤401的实现和技术效果,可以参考步骤201和本申请提供的相关实现方式中的描述,在此不再赘述。
步骤402,根据设备指纹数据和特征值,生成验证图像的背景图像。
在本实施例中,上述执行主体可以根据设备指纹数据和上述特征值,生成验证图像的背景图像。
在这里,上述设备指纹数据可以包括多个类型的设备指纹数据。
在一些实施例中,步骤402可以通过图5所示流程402实现,流程402可以包括:
步骤4021,对于多个类型的设备指纹数据中的每个类型的设备指纹数据,根据特征值与该类型的设备指纹数据,生成该类型的设备指纹数据对应的字符串,以及根据该字符串生成该类型的设备指纹数据对应的图像。
在这里,上述执行主体可以对于每个类型的设备指纹数据,可以根据特征值与该类型的设备指纹数据,生成该类型的设备指纹数据对应的字符串。上述执行主体可以根据该字符串生成该类型的设备指纹数据对应的图像。
作为示例,如果上述设备指纹数据分为三个类型,分别为A类型、B类型和C类型。可以对于A类型的设备指纹数据。拼接特征值与A类型的设备指纹数据,将拼接结果作为A类型的设备指纹数据对应的字符串(可以称为字符串A);或者,可以拼接特征值与A类型的设备指纹数据,对拼接结果进行散列计算,生成预定长度的字符串A。上述执行主体可以根据字符串A生成A类型的设备指纹数据对应的图像(可以称为图像A)。通过与A类型的设备指纹数据类似的处理方式,可以对于B类型的设备指纹数据,生成字符串B和图像B;可以对于C类型的设备指纹数据,生成字符串C和图像C。
可选的,所生成的字符串的长度为预设位长。作为示例,预设位长可以为32位、64位、128位等。
可选的,字符串中的字符的位次对应图像处理参数。图像处理参数可以是用于指示如何对图像进行处理的参数。可以按照图像处理参数进行图像处理,得到上述字符串对应的图像。图像处理参数的类型可以预先定义。
可选的,图像处理参数可以包括但不限于以下至少一种:基础图像选择参数、图像相对于画布的位置参数、图像颜色参数、图像尺寸参数、图像模糊处理参数、图像缩放参数、图像扭曲参数和图像旋转参数。
可选的,可以利用上述一种或多种图像处理参数所指示的图像处理方式,对字符串对应的图像进行处理,以生成字符串对应的图像。
可选的,图像处理参数的具体类型与位次的对应关系可以预先设置。作为示例,对于32位的字符串,可以设置32位中的第1位、第2位与基础图像选择参数对应;可以设置32位中的第7位到第12位与图像颜色参数对应。
可选的,上述字符串中的字符标识与该字符所在位次对应的图像处理参数的参数值。
作为示例,可以设置32位中的第1位、第2位与基础图像选择参数对应,则第1位和第2位中的字符可以标识基础图像选择参数的参数值。例如,可以将第1位和第2位中的字符确定为基础图像选择参数的参数值。还可以对第1位和第2位中的字符进行变换,将变换结果确定为基础图像选择参数的参数值,比如,如果第1位和第2位中的字符为16进制的,可以将16进制的字符变换为10进制的字符,然后将变换得到的10进制的字符确定为基础图像选择参数的参数值。
在这里,上述字符串对应的图像基于上述字符串对应的图像处理参数和参数值生成。
下面以32位、16进制的字符串D为例,对如何生成字符串D生成字符串D对应的图像进行说明:
基础图像选择参数的参数值可以指示选择哪幅图像。例如,将字符串D中的第1、2位转换成十进制,将转换结果除以预设图像数量取余数,利用余数作为图像编号从基础图像集合中选择基础图像。
上述图像相对于画布的位置参数。例如,可以将字符串D中的第3、4位和第5、6位转换成十进制,将第3、4位的转换结果作为图像在宽度方向相对于画布边缘的数值,将第5、6位的转换结果作为图像在长度方向上相对于画布边缘的数值。
图像颜色参数可以指示图像的基础颜色。例如,可以将字符串D中的第7到12位直接用来设置图像的基础颜色。
图像尺寸参数可以指示图像的大小。例如,可以将字符串D中的第13到15位中每个位的值分别转换为十进制,如果大于9则设置为0。拼接第13到15位的转换结果作为得到图像的宽度值。可以将字符串D中的第16到18位中每个位的值分别转换为十进制,如果大于9则设置为0。拼接第16到18位的转换结果作为得到图像的高度值。
模糊处理参数的参数值可以指示模糊处理的模糊程度。作为示例,可以利用高斯模糊对图像进行处理,高斯模糊时需要确定参数方差。可以将根据模糊处理参数的参数值确定方差,例如,字符串D的第19到22位分别转换成十进制,在将各个转换结果相加再除以预设除数,将除出来的商作为上述方差。
图像缩放参数的参数值可以指示图像缩放比例。例如,可以将字符串D的23到25位的平均值作为图像缩放比例。在这里,可以预先设置缩放比例阈值,以防止图像缩放太大或者太小。如果图像缩放比例超出缩放比例阈值,则按照缩放比例阈值进行缩放。
扭曲参数的参数值可以指示将图像进行扭曲的程度。例如,可以将字符串D的第26到28位分别转换成十进制,取转换结果中的最大值作为被除数。另外的转换结果分别作为计算宽度方向的斜拉度和计算高度方向的斜拉度的除数,除以上述被除数,得到宽度方向的斜拉度和高度方向的斜拉度。
图像旋转参数的参数值可以指示将图像进行旋转的旋转方向和旋转角度。作为示例,可以将字符串D中第29到31位分别转换成十进制,然后,利用第29位的转换结果来确定旋转方向,利用第30位的转换结果和第31位的转换结果的乘积作为旋转角度。
步骤4022,根据至少一个类型的设备指纹数据对应的图像,生成背景图像。
作为示例,上述至少一个类型的设备指纹数据对应的图像,可以是一幅或者多幅。如果是一幅,则将该图像作为上述背景图像。如果是多幅,则将此多幅图像进行叠加,作为上述背景图像。
在一些实施例中,步骤4022可以包括:对于每个字符串,根据该字符串中预设位次的字符和设备指纹数据的类型数量,确定该字符串对应的图像的图层数;按照图层数指示的顺序,叠加各个字符串对应的图像,生成背景图像。
作为示例,可以将上述字符串D的最后一位转换成十进制,将转换结果除以设备指纹数据的类型数据,取余数得到该字符串对应的图像的图层数。例如,如果将该字符串对应的图像的图层数为3。也就是之后叠加图像的时候,将该字符串对应的图像放到第三层。叠加图像的时候,其它图层的图像也可以根据图像的图层数确定。
需要说明的是,流程402提供的背景图像生成方式,技术效果至少可以包括:
第一,可以生成各个类型的设备指纹数据对应的图像,由于各个类型的设备指纹数据不同,则生成的各个图像也不同。
第二,利用多个图像生成背景图像,增大了背景图像的复杂度。
第三,特征值唯一,则特征值与各个类型的设备指纹数据的组合,可以区分相同设备的不同请求。由此,可以针对相同设备的不同请求,生成的背景图像。
步骤403,获取验证码。
在本实施例中,上述执行主体可以利用各种方式获取验证码。
在这里,验证码可以是需要用户进行识别的各种类型的字符或者图像。作为示例,验证码可以是一串数字,对应的答案设置为这串数字;也可以是一种动物图像,对应的答案设置为动物图像所指示的动物的种类。
作为示例,可以预先设置验证码集合,需要获取验证码时,从上述验证码集合中获取验证码。
作为示例,可以当需要获取验证码时,随机生成验证码,以获取验证码。
步骤404,组合背景图像和验证码,生成验证码图像。
在本实施例中,上述执行主体可以组合背景图像和验证码,生成验证码图像。
在这里,组合背景图像和验证码,可以是将验证码添加到背景图像中,生成验证码图像。所生成的验证码图像中的验证码,可以被人类用户识别。
在这里,所生成的验证码图像与上述验证码获取请求相对应。上述执行主体在生成上述验证码图像之后,可以将上述验证码图像发送给上述发送验证码获取请求的电子设备。
作为示例,电子设备A向上述执行主体发送了验证码获取请求A。上述执行主体可以响应于接收到图像获取请求A,组合背景图像和验证码,生成验证码图像A。然后,上述执行主体可以对于验证码获取请求A,向上述电子设备A返回验证码图像A。
从图4中可以看出,与图2对应的实施例相比,本实施例中的生成验证码图像的方法的流程400突出了根据设备指纹数据和上述特征值,生成验证码图像的背景图像以及组合背景图像和验证码生成验证码图像的步骤。由此,本实施例描述的方案的技术效果至少可以包括:
第一,提供了一种新的生成验证码图像的方法。
第二,生成复杂而无规律的背景图像。如果验证码图像的背景具有单一而有规律(例如加横杆或者加噪声点),则破解者较为容易训练出针对此种背景的图像识别模型。本申请中生成的验证码图像的背景复杂而无规律,针对每个验证码获取请求生成唯一的背景图像。破解者难以训练出针对本申请的背景图像的图像识别模型。对于本申请,当破解者企图利用图像识别模型识别验证码图像中的验证码的时候,图像识别模型难以区分验证码图像中的验证码和背景图像,由此,可以提高验证码破解难度。
下面参考图6,其示出了适于用来实现本申请实施例的设备的计算机系统600的结构示意图。图6示出的设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU,Central Processing Unit)601,其可以根据存储在只读存储器(ROM,Read Only Memory)602中的程序或者从存储部分608加载到随机访问存储器(RAM,Random Access Memory)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM602以及RAM 603通过总线604彼此相连。输入/输出(I/O,Input/Output)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN(局域网,Local AreaNetwork)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一生成单元和第二生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一生成单元还可以被描述为“生成上述验证码获取请求对应的特征值的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:响应于接收到电子设备发送的验证码获取请求,基于与上述验证码获取请求相关联的、上述电子设备的设备指纹数据,生成上述验证码获取请求对应的特征值;基于上述设备指纹数据和上述特征值,生成与上述验证码获取请求对应的验证码图像。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (11)
1.一种生成验证码图像的方法,包括:
响应于接收到电子设备发送的验证码获取请求,基于与所述验证码获取请求相关联的、所述电子设备的设备指纹数据,生成所述验证码获取请求对应的特征值;
基于所述设备指纹数据和所述特征值,生成与所述验证码获取请求对应的验证码图像。
2.根据权利要求1所述的方法,其中,所述验证码获取请求与所述验证码获取请求的请求发送信息相关联,所述请求发送信息包括以下至少一项:发送时间信息和发送位置信息;以及
所述生成所述验证码获取请求对应的特征值,包括:
根据所述设备指纹数据和所述请求发送信息,生成所述特征值。
3.根据权利要求2所述的方法,其中,所述生成所述验证码获取请求对应的特征值,包括:
确定所述设备指纹数据和所述请求发送信息的散列值,以及将所述散列值确定为所述特征值。
4.根据权利要求1-3中任一项所述的方法,其中,所述生成与所述验证码获取请求对应的验证码图像,包括:
根据所述设备指纹数据和所述特征值,生成验证码图像的背景图像;
获取验证码;
组合所述背景图像和验证码,生成所述验证码图像。
5.根据权利要求4所述的方法,其中,所述设备指纹数据包括以下至少一种:设备标识、国际移动设备标识码、操作系统版本、媒体访问控制地址和网际协议地址。
6.根据权利要求5所述的方法,其中,所述设备指纹数据包括多个类型的设备指纹数据;以及
所述根据所述设备指纹数据和所述特征值,生成验证码图像的背景图像,包括:
对于所述设备指纹数据中的至少一个类型中的每个类型的设备指纹数据,根据所述特征值与该类型的设备指纹数据,生成与该类型的设备指纹数据对应的字符串,以及根据该字符串生成该类型的设备指纹数据对应的图像;
根据所述至少一个类型的设备指纹数据对应的图像,生成所述背景图像。
7.根据权利要求6所述的方法,其中,所生成的字符串的长度为预设位长,所述字符串中的字符的位次对应图像处理参数,所述字符串中的字符表示与该字符所在位次对应的图像处理参数的参数值,所述字符串对应的图像基于所述字符串对应的图像处理参数和参数值生成。
8.根据权利要求7所述的方法,其中,图像处理参数包括以下至少一种:基础图像选择参数、图像相对于画布的位置参数、图像颜色参数、图像尺寸参数、图像模糊处理参数、图像缩放参数、图像扭曲参数和图像旋转参数。
9.根据权利要求8所述的方法,其中,所述根据所述至少一个类型的设备指纹数据对应的图像,生成所述背景图像,包括:
对于每个字符串,根据该字符串中预设位次的字符和设备指纹数据的类型数量,确定该字符串对应的图像的图层数;
按照图层数指示的顺序,叠加各个字符串对应的图像,生成所述背景图像。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810875047.0A CN109117624A (zh) | 2018-08-03 | 2018-08-03 | 生成验证码图像的方法、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810875047.0A CN109117624A (zh) | 2018-08-03 | 2018-08-03 | 生成验证码图像的方法、电子设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109117624A true CN109117624A (zh) | 2019-01-01 |
Family
ID=64852000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810875047.0A Pending CN109117624A (zh) | 2018-08-03 | 2018-08-03 | 生成验证码图像的方法、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117624A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666555A (zh) * | 2020-06-03 | 2020-09-15 | 广州酷狗计算机科技有限公司 | 验证码生成方法、装置以及计算机存储介质 |
CN112685725A (zh) * | 2020-12-30 | 2021-04-20 | 上海掌门科技有限公司 | 一种安全验证的方法与设备 |
CN113536059A (zh) * | 2020-04-21 | 2021-10-22 | 德国邮政股份公司 | 用于标识文件的检验方法和设备 |
CN114827309A (zh) * | 2022-04-19 | 2022-07-29 | 深信服科技股份有限公司 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663672A (zh) * | 2012-05-03 | 2012-09-12 | 杭州朗和科技有限公司 | 一种图片验证码生成方法和装置 |
CN103152408A (zh) * | 2013-02-21 | 2013-06-12 | 周良文 | 基于地图坐标点短程范围的互联网信息系统 |
CN103283175A (zh) * | 2010-12-28 | 2013-09-04 | 日本电气株式会社 | 密钥的生成方法 |
CN103400107A (zh) * | 2013-07-05 | 2013-11-20 | 百度在线网络技术(北京)有限公司 | 动态验证码图片的生成方法、装置以及验证方法和装置 |
CN103428163A (zh) * | 2012-05-15 | 2013-12-04 | 上海博路信息技术有限公司 | 一种基于图像内容的验证码 |
CN104135365A (zh) * | 2013-05-03 | 2014-11-05 | 阿里巴巴集团控股有限公司 | 对访问请求进行验证的方法、服务器及客户端 |
CN104202345A (zh) * | 2014-09-28 | 2014-12-10 | 北京奇虎科技有限公司 | 验证码生成方法、装置及系统 |
CN105306208A (zh) * | 2014-07-21 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 身份验证方法及装置 |
CN105488423A (zh) * | 2015-11-20 | 2016-04-13 | 北京天行网安信息技术有限责任公司 | 一种数据文件的审核校验系统及方法 |
CN106157344A (zh) * | 2015-04-23 | 2016-11-23 | 深圳市腾讯计算机系统有限公司 | 验证图片的生成方法及装置 |
CN106899411A (zh) * | 2016-12-08 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种基于验证码的校验方法及装置 |
CN107203713A (zh) * | 2017-05-09 | 2017-09-26 | 北京潘达互娱科技有限公司 | 验证码生成方法及装置 |
CN107451459A (zh) * | 2016-05-30 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 使用图片验证码进行验证的方法和装置 |
CN107786569A (zh) * | 2017-11-06 | 2018-03-09 | 维沃移动通信有限公司 | 一种验证码发送方法、接收方法及相关设备 |
CN108200016A (zh) * | 2017-12-19 | 2018-06-22 | 重庆亚凡科技有限公司 | 提问式图片验证终端 |
CN108235311A (zh) * | 2017-12-29 | 2018-06-29 | 东信和平科技股份有限公司 | 一种推送/接收验证码的方法、装置和验证码下发系统 |
-
2018
- 2018-08-03 CN CN201810875047.0A patent/CN109117624A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103283175A (zh) * | 2010-12-28 | 2013-09-04 | 日本电气株式会社 | 密钥的生成方法 |
CN102663672A (zh) * | 2012-05-03 | 2012-09-12 | 杭州朗和科技有限公司 | 一种图片验证码生成方法和装置 |
CN103428163A (zh) * | 2012-05-15 | 2013-12-04 | 上海博路信息技术有限公司 | 一种基于图像内容的验证码 |
CN103152408A (zh) * | 2013-02-21 | 2013-06-12 | 周良文 | 基于地图坐标点短程范围的互联网信息系统 |
CN104135365A (zh) * | 2013-05-03 | 2014-11-05 | 阿里巴巴集团控股有限公司 | 对访问请求进行验证的方法、服务器及客户端 |
CN103400107A (zh) * | 2013-07-05 | 2013-11-20 | 百度在线网络技术(北京)有限公司 | 动态验证码图片的生成方法、装置以及验证方法和装置 |
CN105306208A (zh) * | 2014-07-21 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 身份验证方法及装置 |
CN104202345A (zh) * | 2014-09-28 | 2014-12-10 | 北京奇虎科技有限公司 | 验证码生成方法、装置及系统 |
CN106157344A (zh) * | 2015-04-23 | 2016-11-23 | 深圳市腾讯计算机系统有限公司 | 验证图片的生成方法及装置 |
CN105488423A (zh) * | 2015-11-20 | 2016-04-13 | 北京天行网安信息技术有限责任公司 | 一种数据文件的审核校验系统及方法 |
CN107451459A (zh) * | 2016-05-30 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 使用图片验证码进行验证的方法和装置 |
CN106899411A (zh) * | 2016-12-08 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种基于验证码的校验方法及装置 |
CN107203713A (zh) * | 2017-05-09 | 2017-09-26 | 北京潘达互娱科技有限公司 | 验证码生成方法及装置 |
CN107786569A (zh) * | 2017-11-06 | 2018-03-09 | 维沃移动通信有限公司 | 一种验证码发送方法、接收方法及相关设备 |
CN108200016A (zh) * | 2017-12-19 | 2018-06-22 | 重庆亚凡科技有限公司 | 提问式图片验证终端 |
CN108235311A (zh) * | 2017-12-29 | 2018-06-29 | 东信和平科技股份有限公司 | 一种推送/接收验证码的方法、装置和验证码下发系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536059A (zh) * | 2020-04-21 | 2021-10-22 | 德国邮政股份公司 | 用于标识文件的检验方法和设备 |
CN111666555A (zh) * | 2020-06-03 | 2020-09-15 | 广州酷狗计算机科技有限公司 | 验证码生成方法、装置以及计算机存储介质 |
CN112685725A (zh) * | 2020-12-30 | 2021-04-20 | 上海掌门科技有限公司 | 一种安全验证的方法与设备 |
CN114827309A (zh) * | 2022-04-19 | 2022-07-29 | 深信服科技股份有限公司 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
CN114827309B (zh) * | 2022-04-19 | 2024-02-23 | 深信服科技股份有限公司 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117624A (zh) | 生成验证码图像的方法、电子设备和计算机可读介质 | |
US9251335B2 (en) | Evaluating customer security preferences | |
US9824351B2 (en) | Providing access to account information using authentication tokens | |
CN109523611B (zh) | 验证码图片生成方法和装置 | |
US9830591B2 (en) | Providing access to account information using authentication tokens | |
US9491170B2 (en) | Authenticating customers and managing authenticated sessions | |
CN104541475A (zh) | 用于交易认证的经提取且随机化的一次性密码 | |
US20160212144A1 (en) | Authenticating Customers and Managing Authenticated Sessions | |
US20150012983A1 (en) | Authentication of an end user | |
CN109033464A (zh) | 用于处理信息的方法和装置 | |
US9519790B2 (en) | Evaluating customer security preferences | |
CN109656656A (zh) | 用于生成群聊头像的方法和设备 | |
CN109255337A (zh) | 人脸关键点检测方法和装置 | |
CN110247898B (zh) | 身份验证方法、装置、介质及电子设备 | |
CN107294999A (zh) | 信息验证处理方法、装置、系统、客户端及服务器 | |
CN109767200A (zh) | 一种电子支付方法、装置、系统和存储介质 | |
CN110602114A (zh) | 基于区块链的身份验证方法及装置、存储介质、电子设备 | |
CN109871791A (zh) | 图像处理方法和装置 | |
CN111191200B (zh) | 一种三方联动鉴权页面展示方法、装置和电子设备 | |
CN111651749A (zh) | 基于密码找回账号的方法、装置、计算机设备及存储介质 | |
CN109284584A (zh) | 验证方法和装置 | |
CN113779550A (zh) | 账号验证方法、装置、电子设备和计算机可读介质 | |
CN108765579A (zh) | 一种基于vr技术展示展览连接方法及装置 | |
CN104992087A (zh) | 移动终端创新创意数据信息处理方法及移动终端 | |
CN109218024A (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 |