验证码处理方法和装置制造方法
【专利摘要】本申请公开了一种验证码处理方法,包括:随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码;生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景;获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合;将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致;在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致;监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上。本发明可以提高机器人程序识别验证码的难度,提高验证码的安全性。
【专利说明】
验证码处理方法和装置
【技术领域】
[0001]本申请涉及计算机和互联网数据处理【技术领域】,尤其涉及一种验证码处理方法和
>J-U ρ?α装直。
【背景技术】
[0002]在计算机和互联网数据处理【技术领域】,验证码是一种区分用户是机器人程序还是人的公共全自动程序。验证码通常使用一些线条和一些不规则的字符组成,用户必须读取这些字符,然后输入这些字符才能成功登陆网站。因为人可以很容易读出图片中的字符,但如果是一段客户端攻击程序(即机器人程序),通过一般手段是很难识别所述验证码的。
[0003]验证码的作用可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的登录方式。
[0004]但是,目前的验证码技术只是随机生成一张还有随机字符串的图片,现在也出现了一些更加智能的可以识别图片内容的机器人程序,这种机器人程序具有存储有大量字符图片的数据库,在进行恶意攻击时,这种机器人程序可以对验证码图片中的每一个字符进行抠图,然后利用该字符抠图与数据库中的字符图片进行比对分析,找到与字符抠图相似度最高的字符图片,将该字符图片对应的字符作为识别出的字符,从而自动识别破译出验证码图片中的字符串。
[0005]现有技术的验证码技术在面对上述机器人程序时,验证码很容易被机器人破译,安全性较低,导致恶意攻击方利用机器人对互联网应用进行大量重复的操作,导致各类互联网应用重则瘫痪,轻则损失各类虚拟资源,让服务提供企业和正常用户的利益饱受侵害。
【发明内容】
[0006]有鉴于此,本发明的主要目的是提供一种验证码处理方法和装置,可以提高机器人识别验证码的难度,提高验证码的安全性。
[0007]本发明的技术方案是这样实现的:
[0008]一种验证码处理方法,包括:
[0009]随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码;
[0010]生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景;
[0011 ] 获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合;
[0012]将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致;在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致;
[0013]监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上。
[0014]在一种优选实施例中,所述移动指令为对合并图片的拖拽指令。
[0015]在一种优选实施例中,所述生成验证码图片,具体包括:为所述每一组验证码对应生成一张验证码图片,所述验证码图片中除验证码外的背景为透明背景。
[0016]在一种优选实施例中,所述随机生成两组验证码,具体包括:
[0017]利用预定密钥生成密文;
[0018]根据当前用户的访问特征信息确定该当前用户对应的难度等级;
[0019]根据所确定的难度等级,从所述密文中随机获取两组字符串作为验证码,其中难度等级越高,验证码的字符串越复杂。
[0020]在一种优选实施例中,所述利用密钥生成密文,具体包括:获取当前用户的IP地址和浏览器类型,将所述IP地址、浏览器类型和所述预定密钥组合成字符串,再经加密算法进行不可逆加密,生成一串密文。
[0021]在一种优选实施例中,所述根据当前用户的访问特征信息确定该当前用户对应的难度等级,具体包括:
[0022]获取当前用户的IP地址和或浏览器类型;
[0023]根据预定的不同难度等级对应的IP地址范围、浏览器类型、和或相同IP地址的请求间隔,判断当前用户的IP地址和或浏览器类型所对应的难度等级;
[0024]将该难度等级确定为该当前用户对应的难度等级。
[0025]在一种优选实施例中,在所述生成验证码图片之后,对所述验证码图片进行镂空处理之前,进一步包括:对所述验证码图片中的验证码进行扭曲效果处理。
[0026]在一种优选实施例中,所述对所述验证码图片中的验证码进行扭曲效果处理,具体包括:
[0027]创建一个与验证码图片的尺寸相同的新画布,把原验证码图片按逐个像素的方式把每个像素都复制到该画布上,在该新画布上的像素点位置通过正玄函数f(X)=sin(a*2 π *y/height)对像素点的y轴坐标进行处理,公式中f (x)为新画布上的像素点的y轴坐标,y为原验证码图片的相同像素点的y轴坐标,height为原验证码图片的高度。
[0028]在一种优选实施例中,该方法进一步包括:监测在输入框输入的字符串,判断该字符串是否与所述真实验证码一致,若一致则验证通过,否则验证失败。
[0029]一种验证码处理装置,包括:
[0030]验证码生成模块,用于随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码;
[0031]验证码图片生成模块,用于生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景;
[0032]合并图片生成模块,用于获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合;
[0033]验证页面生成模块,用于将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致;在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致;
[0034]移动模块,用于监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上。
[0035]与现有技术相比,本发明随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码;并生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景;然后对其中的真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合;将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致,这样使人眼识别不出该真实验证码,而只能看到干扰验证码;之后在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致;监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上,这时,由于该可视区域的颜色与真实验证码的颜色不一致,从而是人眼识别出真实验证码非镂空块与可视区域的颜色反差,使人眼识别出真实验证码。由于本发明需要通过移动指令,并将合并图片移动到可视区域之上才可以显示出真实验证码,而该移动指令的发出和移动到可视区域之上的操作,对于机器人程序来说是非常难做到的,因此本发明可以提高机器人程序识别验证码的难度,提高验证码的安全性。
【专利附图】
【附图说明】
[0036]图1为本发明所述验证码处理方法的一种流程图;
[0037]图2为本发明所生成的验证码图片的一种示意图;
[0038]图3所示为一张验证码背景图片的示意图;
[0039]图4a为本发明一种实施例中所采用镂空处理蒙层的示意图;
[0040]图4b所示为经过镂空处理的验证码背景图片的一种示意图;
[0041]图4c为经过与图4b相同镂空处理的真实验证码的一种示意图;
[0042]图5a为本发明所述合并图片置于底色为白色的背景之上的一种示意图;
[0043]图5b为本发明所述合并图片置于底色为灰色的背景之上的一种示意图;
[0044]图6a为一种验证码输入页面的示意图;
[0045]图6b为验证码输入页面中将合并图片拖拽到可视区域的一种示意图;
[0046]图6c为验证码输入页面中将合并图片完全拖拽到可视区域的一种示意图;
[0047]图7为本发明所述验证码处理装置的一种组成示意图。
【具体实施方式】
[0048]下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0049]图1为本发明所述验证码处理方法的一种流程图,参见图1,本发明所述验证码处理方法主要包括:
[0050]步骤101、随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码。
[0051]所述验证码通常是一串字符串。在一种实施例中,所述随机生成两组验证码可以是任意随机生成的两组验证码。
[0052]为了进一步增加验证码的难度,在进一步的优选实施例中,所述随机生成两组验证码,可以具体包括以下步骤111至113:
[0053]步骤111、利用预定密钥(key)生成密文。所述的密钥可以预先设定好。
[0054]更为具体的,本步骤111可以获取当前用户(即当前需要进行验证码验证的用户)的IP地址和浏览器类型,将所述IP地址、浏览器类型和所述预定密钥组合成字符串,再经加密算法,例如消息摘要算法第五版(MD5, Message-Digest Algorithm 5)算法,进行不可逆加密,生成一串密文,例如类似于后续的这样一段密文:d725ec04c205e27363daa4fdalfld5bl ο
[0055]步骤112、根据当前用户的访问特征信息确定该当前用户对应的难度等级。所述难度等级也可以预先设定好,例如在一种具体实施例中可以定义三个不同难度等级,每一种难度等级都对应一个标记,用来表示其等级难度。
[0056]用户请求互联网应用资源时都会将用户历史访问信息,例如用户访问的时间、IP、浏览器类型等信息,存储在服务提供方的数据库中,本发明可以从服务提供方的数据库中提取当前用户的历史访问信息,每当用户请求时都会与该用户的历史访问信息去比对,进行难度等级判断。本发明可以预先对难度等级的划分范围进行设定并存储下来,例如IP地址范围可以划分不同的等级,被纳入最闻黑名单的IP地址范围会对应最闻的难度等级,例如此处为难度等级3,次一级黑名单的IP地址范围会对应难度等级2,其它IP地址范围则对应难度最低的等级,即难度等级I。再例如可以根据历史访问信息对浏览器的类型做出分析和划分,对于某些恶意机器人程序经常使用的浏览器类型或非常规的浏览器类型则对应的难度等级较高。再例如可以对用户同一 IP地址访问网络应用的频率进行统计分析,如果同一 IP地址高速频繁(即访问间隔特别小,例如间隔小于I秒)地访问同一网络应用,则认定其为恶意访问,对应的难度等级较高,可以设定同一 IP地址的不同访问间隔范围对应的难度等级。
[0057]例如本步骤112可以具体包括:
[0058]获取当前用户的IP地址和或浏览器类型;
[0059]根据预定的不同难度等级对应的IP地址范围、浏览器类型、和或相同IP地址的请求间隔,判断当前用户的IP地址和或浏览器类型所对应的难度等级;
[0060]将该难度等级确定为该当前用户对应的难度等级。
[0061]例如具体可以是:判定当前用户的IP地址所处的IP地址范围对应的难度等级;判定当前用户的浏览器类型对应的难度等级;以及判断当前用户IP地址上一次访问与本次访问的时间间隔,根据时间间隔确定对应的难度等级;最后将这三个难度等级中的最高级确定为该当前用户对应的难度等级。
[0062]步骤113、根据所确定的难度等级,从所述密文中随机获取两组字符串作为验证码,其中难度等级越高,验证码的字符串越复杂。
[0063]例如,定好难度等级后就可以按照预定的设置来确定对应的验证码,如下为一种3个难度等级具体的例子:
[0064]难度等级1,则在前述的密文中随机获取2组4位纯数子作为两组验证码;
[0065]难度等级2,则在前述的密文中随机获取2组5位纯字母作为两组验证码;
[0066]难度等级3,则在前述的密文中随机获取2组6位数字字母混合的字符串作为两组验证码。
[0067]所述两组验证码中,可以随机将其中的一组作为真实验证码,另一组作为干扰验证码,用于起到混淆的作用,加大机器人程序识别的难度。
[0068]步骤102、生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景。
[0069]本步骤102中,所述生成验证码图片,具体包括:为所述每一组验证码对应生成一张验证码图片,所述验证码图片中除验证码外的背景为透明背景。
[0070]更为具体的,可以分别把真实验证码和干扰验证码在字体库中随机使用字体利用颜色文字色(例如此处为白色)逐个横排摆放,每个字符的上下左右位置还可以经行10-20像素之间的随机浮动,让机器难以捕捉真实的字符位置,产生两张透明背景的验证码图片。所述验证码的颜色需要与后续验证页面的背景色一致。
[0071]如图2为本发明所生成的验证码图片的一种示意图。其中“STNTSN001”为干扰证码码,“STNTSN002”为真实验证码,验证码的颜色为白色,验证码图片中出验证码外的背景为透明背景,本图中为了能够使读者看到白色的验证码,特用灰色背景来表示透明背景,实际上是透明背景。
[0072]当然,为了进一步增加机器人程序自动识别验证码的难度,本发明的一种进一步的优选实施例中,还可以在所述生成验证码图片之后,对所述验证码图片进行镂空处理之前,进一步包括:对所述验证码图片中的验证码进行扭曲效果处理。
[0073]所述对所述验证码图片中的验证码进行扭曲效果处理,具体包括:
[0074]创建一个与验证码图片的尺寸相同的新画布,把原验证码图片按逐个像素的方式把每个像素都复制到该画布上,在该新画布上的像素点位置通过正玄函数f(X)=sin(a*2 π *y/height)对像素点的y轴坐标进行处理,公式中f (x)为新画布上的像素点的y轴坐标,y为原验证码图片的相同像素点的y轴坐标,height为原验证码图片的高度。通过此公式得出新的图片上像素点y周的坐标,X轴坐标与原图保持一致,最终可以得到一个正弦曲线一样的波浪形扭曲的验证码,通过调整参数a的数值,可以对扭曲的程度进行改变,可根据实际情况调整到一个合适的值。在一种优选实施例中,可以分别对真实的字符码和无效的字符码均进行扭曲处理。
[0075]通过上述处理,就可以得到具有透明背景的验证码图片,图片中包括了真实验证码和干扰验证码,下面以如图2所示的验证码图片为例,介绍接下来需要对验证码图片的进一步处理。
[0076]步骤103、获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合。
[0077]本步骤中,需要获取一张展示在验证码图片之下一层的验证码背景图片。如图3所示为一张验证码背景图片的示意图。
[0078]所述对所述真实验证码和验证码背景图片进行相同的镂空处理,所述镂空处理在计算机图像处理技术中可以用蒙层方式进行处理。所述镂空处理即是对图片按照规定的规格进行挖孔,得到具有多个孔眼的镂空图片,所述每个孔眼都是透明的,可以直接看到下一图层或者背景。
[0079]例如,图4a为本发明一种实施例中所采用镂空处理蒙层的示意图。该蒙层为黑白相间的方格图片,其中白色部分其实是透明的,将该蒙层图片置于所述验证码背景图片之上,在黑色方格部分要进行挖空处理,即验证码背景图片上与所有黑色方格重合的部分都被挖出了一个孔,利用这种处理方式,可以将验证码背景图片镂空处理成具有整齐孔眼的镂空图片,如图4b所示为经过镂空处理的验证码背景图片的一种示意图,其中下方是其右下角的局部放大图。
[0080]接着需要对所述真实验证码进行同样的镂空处理,如图4c为经过与图4b相同镂空处理的真实验证码的一种示意图,所述相同的镂空处理是指所用的蒙层需要一样,即最终所述真实验证码被处理成具有整齐孔眼的镂空图片,且孔眼的大小和相对位置与图4a所述验证码背景图片上的孔眼大小和相对位置都一致;所述孔眼部分都为透明,可以看到下一层,本图中也用灰色表示透明背景。
[0081]然而,所述干扰验证码不必进行所述镂空处理。
[0082]之后,需要将所述验证码图片(包括真实验证码图片和干扰验证码图片)置于所述验证码背景图片之上进行合并得到合并图片,此处需要注意,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合,即所述真实验证码上的孔眼要与验证码背景图片上的孔眼位置重合。至于所述真实验证码和无效验证码的相对上下位置可以随机。
[0083]参见图5a为本发明所述合并图片置于底色为白色的背景之上的一种示意图。由于在本文实施例中,真实验证码的颜色为白色,而所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合,因此从其镂空部分的孔眼可以直接看到背景的底色,然而背景底色也是白色,那么白色和白色混在一起就看不出所述经过镂空处理的真实验证码,只能看到没有经过镂空处理的、置于所述验证码背景图片上层的干扰验证码“STNTSN001”。
[0084]图5b为本发明所述合并图片置于底色为灰色的背景之上的一种示意图。其上半部分为合并图片的整体示意图,下半部分为真实验证码中的字符“002”的局部放大图。由于在本文实施例中,真实验证码的颜色为白色,而所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合,因此从其镂空部分的孔眼可以直接看到背景的底色,然而背景底色是与真实验证码的颜色不一致的灰色,那么白色和灰色就会区分开来,因此可以看出所述经过镂空处理的真实验证码“STNTSN002”,当然没有经过镂空处理的干扰验证码“STNTSN001”是设置在验证码背景图片上层的,因此也可以被看到。
[0085]因此只要控制所述合并图片下一层的背景底色,就可以控制所述真实验证码的显示和隐蔽,只要背景底色与真实验证码颜色一致,则可以隐蔽真实验证码,只要背景底色与真实验证码颜色不一致,则可以显示出所述真实验证码。本发明就是通过这种处理在如下的步骤中增加验证码识别的难度。
[0086]步骤104、将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致。这样就可以使真实验证码的颜色与所述页面背景的颜色对应一致,在所述真实验证码即使放置在页面背景上时,使人眼识别不出该真实验证码,从而隐藏真实验证码。还需要在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致。
[0087]如图6a为一种验证码输入页面的示意图;该输入页面的背景颜色与所述真实验证码的颜色一致,例如此处为白色,这样所述合并图片601置于该白色页面背景之上后,由于真实验证码的颜色为白色,而所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合,因此从其镂空部分的孔眼可以直接看到页面背景,然而页面背景也是白色,那么白色和白色混在一起就看不出所述经过镂空处理的真实验证码,只能看到没有经过镂空处理的、置于所述验证码背景图片上层的干扰验证码“STNTSN001”。同时,还要在验证码输入页面上显示一个可视区域如602,该可视区域的颜色与真实验证码的颜色不一致,例如此处为灰色。
[0088]步骤105、监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上。
[0089]在一种优选实施例中,所述移动指令为对合并图片的拖拽指令。用户可以对所述合并图片601施加拖拽指令,将合并图片601拖拽到所述可视区域602之上。如图6b为验证码输入页面中将合并图片拖拽到可视区域的一种示意图,图6c为验证码输入页面中将合并图片完全拖拽到可视区域的一种示意图。参见图6b和图6c,当真实验证码被拖拽到可视区域602之上时,由于真实验证码的颜色为白色,而所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合,因此从其镂空部分的孔眼可以直接看到下一层的颜色,然而下一层的可视区域602背景底色是与真实验证码的颜色不一致的灰色,那么白色和灰色就会区分开来,因此可以看出所述经过镂空处理的真实验证码“STNTSN002”,当然没有经过镂空处理的干扰验证码“STNTSN001”是设置在验证码背景图片上层的,因此也可以被看到。
[0090]之后,用户就可以在输入框603输入看到的真实验证码,本发明监测在输入框输入的字符串,判断该字符串是否与所述真实验证码一致,若一致则验证通过,否则验证失败。
[0091]通过上述处理,由于本发明需要通过移动指令,并将合并图片移动到可视区域之上才可以显示出真实验证码,而该移动指令的发出和移动到可视区域之上的操作,对于机器人程序来说是非常难做到的,因此本发明可以提高机器人程序识别验证码的难度,提高验证码的安全性。
[0092]与上述验证码处理方法对应,本发明还公开了一种验证码处理装置,用于执行上述验证码处理方法。图7为本发明所述验证码处理装置的一种组成示意图。参见图7,该装置包括:
[0093]验证码生成模块701,用于随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码;
[0094]验证码图片生成模块702,用于生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景;
[0095]合并图片生成模块703,用于获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合;
[0096]验证页面生成模块704,用于将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致;在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致;
[0097]移动模块705,用于监测对所述合并图片的移动指令,例如拖拽指令,根据移动指令将所述合并图片移动到所述可视区域之上。
[0098]进一步的,该装置还包括验证模块,用于监测在输入框输入的字符串,判断该字符串是否与所述真实验证码一致,若一致则验证通过,否则验证失败。
[0099]另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述各实施例的功能模块可以位于一个终端或网络节点,或者也可以分布到多个终端或网络节点上。
[0100]另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
[0101]因此本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。
[0102]另外,本发明所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入微控制器等来实现。因此这种可以实现本发明所述方法的硬件也可以构成本发明。
[0103]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种验证码处理方法,其特征在于,包括: 随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码; 生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景; 获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合; 将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致;在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致; 监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上。
2.根据权利要求1所述的方法,其特征在于,所述移动指令为对合并图片的拖拽指令。
3.根据权利要求1所述的方法,其特征在于,所述生成验证码图片,具体包括:为所述每一组验证码对应生成一张验证码图片,所述验证码图片中除验证码外的背景为透明背旦-5^ O
4.根据权利要求1所述的方法,其特征在于,所述随机生成两组验证码,具体包括: 利用预定密钥生成密文; 根据当前用户的访问特征信息确定该当前用户对应的难度等级; 根据所确定的难度等级,从所述密文中随机获取两组字符串作为验证码,其中难度等级越高,验证码的字符串越复杂。
5.根据权利要求4所述的方法,其特征在于,所述利用密钥生成密文,具体包括:获取当前用户的IP地址和浏览器类型,将所述IP地址、浏览器类型和所述预定密钥组合成字符串,再经加密算法进行不可逆加密,生成一串密文。
6.根据权利要求4所述的方法,其特征在于,所述根据当前用户的访问特征信息确定该当前用户对应的难度等级,具体包括: 获取当前用户的IP地址和或浏览器类型; 根据预定的不同难度等级对应的IP地址范围、浏览器类型、和或相同IP地址的请求间隔,判断当前用户的IP地址和或浏览器类型所对应的难度等级; 将该难度等级确定为该当前用户对应的难度等级。
7.根据权利要求1所述的方法,其特征在于,在所述生成验证码图片之后,对所述验证码图片进行镂空处理之前,进一步包括:对所述验证码图片中的验证码进行扭曲效果处理。
8.根据权利要求7所述的方法,其特征在于,所述对所述验证码图片中的验证码进行扭曲效果处理,具体包括: 创建一个与验证码图片的尺寸相同的新画布,把原验证码图片按逐个像素的方式把每个像素都复制到该画布上,在该新画布上的像素点位置通过正玄函数f(x)=sin(a*2 *y/height)对像素点的y轴坐标进行处理,公式中f (x)为新画布上的像素点的y轴坐标,y为原验证码图片的相同像素点的y轴坐标,height为原验证码图片的高度。
9.根据权利要求1所述的方法,其特征在于,该方法进一步包括:监测在输入框输入的字符串,判断该字符串是否与所述真实验证码一致,若一致则验证通过,否则验证失败。
10.一种验证码处理装置,其特征在于,包括: 验证码生成模块,用于随机生成两组验证码,一组作为真实验证码,另一组作为干扰验证码; 验证码图片生成模块,用于生成验证码图片,其中包括真实验证码和干扰验证码,所述验证码图片中除验证码外的背景为透明背景; 合并图片生成模块,用于获取验证码背景图片,对所述真实验证码和验证码背景图片进行相同的镂空处理,将所述验证码图片置于所述验证码背景图片之上进行合并得到合并图片,其中所述真实验证码的镂空位置与所述验证码背景图片的镂空位置重合; 验证页面生成模块,用于将所述合并图片显示在页面背景上,且页面背景颜色与所述真实验证码的颜色一致;在页面背景上显示可视区域,该可视区域的颜色与真实验证码的颜色不一致; 移动模块,用于监测对所述合并图片的移动指令,根据移动指令将所述合并图片移动到所述可视区域之上。
【文档编号】G06F21/36GK104200150SQ201410441617
【公开日】2014年12月10日 申请日期:2014年9月1日 优先权日:2014年9月1日
【发明者】朱琦 申请人:湖北盛天网络技术股份有限公司