一种验证码生成方法、装置及服务器与流程

文档序号:16135994发布日期:2018-12-01 00:58阅读:219来源:国知局

本发明涉及网络通信技术领域,尤其涉及一种验证码生成方法、装置及服务器。

背景技术

随着计算机和计算机网络的日益普及,互联网已经深入到人们工作、学习和生活的各个领域。网络的发展在为人们提供便利的同时也带来各种挑战。一些人会利用机器人程序大量地不当使用网络资源,例如群发垃圾邮件等,使服务器效能大为降低。也有人利用程序不断发出服务请求回应,进行“饱和攻击”以达到使服务器瘫痪的目的。甚至还有人尝试利用暴利破解等手段进行恶意破解密码等行为。为避免上述恶意行为,设计一套能够让计算机自动分辨信息是来自合理用户或是非正当使用的机器人程序的工具,就显得非常重要。

使用验证码图片是现在比较通行的方式,验证码图片的主要目的是分辨网络服务用户是程序还是人类。然而,现有的验证码图片的整体抗破解能力比较差。

因此,需要提供一种更加有效或者可靠的方案,以提高验证码图片的整体抗破解能力。



技术实现要素:

针对现有技术的上述问题,本发明的目的在于,提供一种验证码生成方法、装置及服务器,所述技术方案如下:

一方面,提供了一种验证码生成方法,所述方法包括:

接收终端发送的验证码拉取请求;

根据所述验证码拉取请求,获取第一原始图片和第二原始图片;

根据所述第一原始图片和第二原始图片生成中间图片;

切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片;

根据所述第一合成图片和第二合成图片生成验证码图片。

进一步地,所述根据所述第一原始图片和第二原始图片生成中间图片包括:

将所述第一原始图片作为所述第二原始图片的背景图片,生成所述中间图片;或者,

将所述第二原始图片作为所述第一原始图片的背景图片,生成所述中间图片。

进一步地,所述根据所述第一合成图片和第二合成图片生成验证码图片包括:

将所述第一合成图片从原始位置移动至新位置;

生成用于移动所述第一合成图片的控件;

将所述控件、第一合成图片和第二合成图片生成为验证码图片。

另一方面,提供了一种验证码生成装置,所述装置包括:

接收模块,用于接收终端发送的验证码拉取请求;

第一获取模块,用于根据所述验证码拉取请求,获取第一原始图片和第二原始图片;

第一生成模块,用于根据所述第一原始图片和第二原始图片生成中间图片;

切取模块,用于切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片;

第二生成模块,用于根据所述第一合成图片和第二合成图片生成验证码图片。

进一步地,所述第一生成模块具体用于将所述第一原始图片作为所述第二原始图片的背景图片,生成所述中间图片;或者,

将所述第二原始图片作为所述第一原始图片的背景图片,生成所述中间图片。

进一步地,所述第二生成模块包括:

移动模块,用于将所述第一合成图片从原始位置移动至新位置;

控件生成模块,用于生成用于移动所述第一合成图片的控件;

生成子模块,用于将所述控件、第一合成图片和第二合成图片生成为验证码图片。

另一方面,提供了一种服务器,所述服务器包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行以下步骤:

接收终端发送的验证码拉取请求;

根据所述验证码拉取请求,获取第一原始图片和第二原始图片;

根据所述第一原始图片和第二原始图片生成中间图片;

切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片;

根据所述第一合成图片和第二合成图片生成验证码图片。

另一方面,提供了一种计算机存储介质,该计算机存储介质存储有计算机程序指令,该计算机程序指令被执行时,实现上述的验证码生成方法。

本发明实施例提供的技术方案带来的有益效果是:

本发明通过接收终端发送的验证码拉取请求;根据所述验证码拉取请求,获取第一原始图片和第二原始图片;根据所述第一原始图片和第二原始图片生成中间图片;切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片;根据所述第一合成图片和第二合成图片生成验证码图片,从而提高了验证码图片的抗破解能力,进而提高了机器识别验证码图片的难度。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

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

图2是本发明实施例提供的根据所述第一合成图片和第二合成图片生成验证码图片的流程示意图;

图3是本发明实施例提供的一种验证码生成装置的结构示意图;

图4是本发明实施例提供的第二生成模块的结构示意图;

图5是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

请参考图1,其所示为本发明实施例提供的一种验证码生成方法的流程示意图,该验证码生成方法可以应用于服务器侧,以下各个实施例中,所述服务器可以是一台服务器,也可以是由若干服务器组成的服务器集群。

需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。如图1所示,该验证码生成方法包括:

s102,接收终端发送的验证码拉取请求。

在本说明书实施例中,终端可以向服务器发送拉取验证码的请求,服务器可以接受终端发送的验证码拉取请求。

s104,根据所述验证码拉取请求,获取第一原始图片和第二原始图片。

在本说明书实施例中,服务器存储有大量的原始图片,在接收到验证码拉取请求之后,服务器可以随机的从上述大量的原始图片中获取两张原始图片作为第一原始图片和第二原始图片。

s106,根据所述第一原始图片和第二原始图片生成中间图片。

在本说明书实施例中,所述根据所述第一原始图片和第二原始图片生成中间图片包括:将所述第一原始图片作为所述第二原始图片的背景图片,生成所述中间图片;或者,将所述第二原始图片作为所述第一原始图片的背景图片,生成所述中间图片。

s108,切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片。

在本说明书实施例中,局部图片可以随机的从中间图片中进行选取。

s110,根据所述第一合成图片和第二合成图片生成验证码图片。

在本说明书实施例中,所述根据所述第一合成图片和第二合成图片生成验证码图片可以采用图2所示的方法,具体的,该方法可以包括:

s202,将所述第一合成图片从原始位置移动至新位置。

在本说明书实施例中,新位置可以是中间图片上的任意位置。

s204,生成用于移动所述第一合成图片的控件。

在本说明书实施例中,上述控件用于在进行验证操作时,移动所述第一合成图片。

s206,将所述控件、第一合成图片和第二合成图片生成为验证码图片。

综上,本发明通过接收终端发送的验证码拉取请求;根据所述验证码拉取请求,获取第一原始图片和第二原始图片;根据所述第一原始图片和第二原始图片生成中间图片;切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片;根据所述第一合成图片和第二合成图片生成验证码图片,从而提高了验证码图片的抗破解能力,提高了机器识别验证码图片的难度。

与上述几种实施例提供的验证码生成方法相对应,本发明实施例还提供一种验证码生成装置,由于本发明实施例提供的验证码生成装置与上述几种实施例提供的验证码生成方法相对应,因此前述验证码生成方法的实施方式也适用于本实施例提供的验证码生成装置,在本实施例中不再详细描述。

请参阅图3,其所示为本发明实施例提供的一种验证码生成装置的结构示意图,如图3所示,该装置可以包括:接收模块310,第一获取模块320,第一生成模块330,切取模块340和第二生成模块350。

接收模块310,用于接收终端发送的验证码拉取请求;

第一获取模块320,用于根据所述验证码拉取请求,获取第一原始图片和第二原始图片;

第一生成模块330,用于根据所述第一原始图片和第二原始图片生成中间图片。

在实际应用中,第一生成模块330具体用于将所述第一原始图片作为所述第二原始图片的背景图片,生成所述中间图片;或者,将所述第二原始图片作为所述第一原始图片的背景图片,生成所述中间图片。

切取模块340,用于切取所述中间图片中的局部图片作为第一合成图片,将所述中间图片的剩余图片作为第二合成图片;

第二生成模块350,用于根据所述第一合成图片和第二合成图片生成验证码图片。

在一实例中,如图4所示,第二生成模块350可以包括:移动模块3510,控件生成模块3520和生成子模块3530。

移动模块3510,用于将所述第一合成图片从原始位置移动至新位置;

控件生成模块3520,用于生成用于移动所述第一合成图片的控件;

生成子模块3530,用于将所述控件、第一合成图片和第二合成图片生成为验证码图片。

请参阅图5,其所示为本发明实施例提供的服务器的结构示意图,该服务器用于实施上述实施例中提供的验证码生成方法。具体来讲:

该服务器1300包括中央处理器(cpu)1301、包括随机存取存储器(ram)1302和只读存储器(rom)1303的系统存储器1304,以及连接系统存储器1304和中央处理器1301的系统总线1305。所述服务器1300还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。

所述基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理器1301。所述基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理器1301。所述大容量存储设备1307及其相关联的计算机可读介质为服务器1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。

根据本发明的各种实施例,所述服务器1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1300可以通过连接在所述系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述验证码生成方法的指令。

在本发明实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由终端的处理器执行以完成上述方法实施例中终端侧的各个步骤,或者上述指令由服务器的处理器执行以完成上述方法实施例中服务器侧的各个步骤。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。

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