一种图片验证码的生成方法

文档序号:8301645阅读:333来源:国知局
一种图片验证码的生成方法【
技术领域
】[0001]本发明设计计算机领域,特别涉及一种图片验证码生成的方法。【
背景技术
】[0002]信息技术和网络通讯的高速发展在给我们带来便利的同时也滋生了一系列不安定因素。如垃圾邮件的攻击、批量注册分发被盗资源、在线投票系统上的虚假投票,使得网络的真实性、安全性无法保证。目前网站普遍采用了验证码技术来应对这一问题。[0003]信息技术和网络通讯的高速发展再给我们带来便利的同时也滋生了一系列不安定因素。如垃圾邮件的攻击、批量注册分发被盗资源、在线投票系统上的虚假投票,使得网络的真实性、安全性无法保证。为了保证互联网的安全,不少网站采用了验证码技术。[0004]验证码(CAPTCHA,CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart)全称为全自动区分计算机和人类的图灵测试,起源于1997的AltaVista,目的是阻止URL的自动提交,其基本形式是:在每次向网页提交信息的时候,系统会自动随机产生一串数字或符号(即验证码),只有在指定的地方正确输入这些验证码才能成功提交信息。验证码技术能解决恶意程序对论坛不断发表信息这一问题。[0005]从最初的本文数字添加噪点的验证码到现在各式各样的涉及声音、视频多方面的验证码,各方面专家和学者做出了努力,目前比较主流的是加入噪点干扰线,并对数字或者字母做进行适当扭曲形变的图片验证码,卡耐基梅隆大学后阶段推出的recaptcha,比较新颖的还有一些数学公式验证码、小游戏验证码。[0006]由于OCR技术,尤其是人工智能的发展,许多验证码的破解已不是难题,简单的数字图片验证码可由分割加上识别算法顺利通过。继续添加干扰和噪点可以有效阻止分割,却使得大部分用户自身都无法正确识别图片,大大降低了用户体验度。许多新推出的游戏验证码可以较好解决这个问题,但是其复杂度和数据有限性使得这种验证码也无法广泛使用。[0007]DCG即动态认知游戏,该验证码挑战用户执行一个类似游戏的认知任务。DCG验证码具有高可用性而且不像其他已知的验证码,对于中继攻击添加了一些阻力,但他们也容易受到我们的新的基于字典的自动化攻击。如公开于2012年12月20日的申请号为US20120323700Al的美国专利公开了一种验证码技术方案,该验证码要求用户完成一个任务,即生成一排有一定顺序的物体,由用户判断并将符合条件的物体拖动到指定位置,如正确完成操作,通过验证,这种非验证码对OCR等有很好的阻止作用,但是由于数据库本身的局限性而无法抵挡暴力攻击也不利于推广,形式复杂。[0008]传统字符验证码,将一串随机产生的数字或符号,生成一幅图片,在所述图片中增加一些干扰线、噪点,局部膨胀或扭曲等,来生成一张验证码图片,因其数据量大可以有效应对穷举攻击,但是OCR(OpticalCharacterRecognition,光学字符识别)技术的发展使之已经缺乏安全性。[0009]因此,现有的验证码技术存在不足,有必要改进。【
发明内容】[0010]本发明所要解决的技术问题是提供一种通过采用行为式验证获得更高安全、能有效阻止机器人攻击且不需要通过传统键盘输入来验证的图片验证码生成的方法。[0011]为了解决上述问题,本发明提供的技术方案如下:一种图片验证码生成的方法,包括以下步骤:(1)客户端发送获取验证码请求;(2)服务端接收客户端请求并做如下处理:步骤A,生成基准图:A1、生成四位随机字符写入图片,并在所述的图片中绘制噪点和干扰线,在服务器端保存此图片作为基准图片;A2、生成一个[0,N-1]的随机数字T作为基准图片编号,并在服务器端保存,其中N为大于或等于2的整数;步骤B,以基准图片母版,生成N-I张基准图片的拷贝图片,并依次用[0,N-1]中不等于T的数字作为N-I张拷贝图片的编号P;步骤C,分别对每张张拷贝图片做扭曲处理。[0012]步骤D,生成长图:D1、将扭曲处理后的N-I张拷贝图片和基准图片按编号从小到大的顺序排列拼接生成一张长图图片;D2、将生成的长图图片发送给客户端;(3)客户端接收长图并接受用户验证,操作如下:E1、客户端接收到长图并随机显示长图中的一副图片给用户:E2、用户拖动长图图片,选择出其中的一副图片,提交;E3、跟据用户选择的图片向服务端发送该图片的编号;(4)服务端验证:服务端接收客户端返回的编号,并将编号与预存基准图片编号T对比,如果一样,则通过验证,否则验证失败,重复步骤(2)。[0013]优选地,步骤C所述的对拷贝图扭曲处理是通过如下方法实现扭曲的:C1、将该张拷贝图片按X行Y列划分为X*Y个小方格,X、Y均为大于或等于4的整数,并将每个方格从上往下从左往右依次编号为〇、1、2、3至Χ*Υ。[0014]C2、给该张拷贝图片设定一个参数stable;并通过如下方式求取stable的值:【主权项】1.一种图片验证码的生成方法,其特征在于,包括以下步骤:(1)客户端发送获取验证码请求;(2)服务端接收客户端请求并做如下处理:步骤A,生成基准图:A1、生成四位随机字符写入图片,并在所述的图片中绘制噪点和干扰线,在服务器端保存此图片作为基准图片;A2、生成一个[0,N-1]的随机数字T作为基准图片编号,并在服务器端保存,其中N为大于或等于2的整数;步骤B,以基准图片母版,生成N-1张基准图片的拷贝图片,并依次用[0,N-1]中不等于T的数字作为N-1张拷贝图片的编号P;步骤C,分别对每张张拷贝图片做扭曲处理;步骤D,生成长图:D1、将扭曲处理后的N-1张拷贝图片和基准图片按编号从小到大的顺序排列拼接生成一张长图图片;D2、将生成的长图图片发送给客户端;(3)客户端接收长图并接受用户验证,操作如下:E1、客户端接收到长图并随机显示长图中的一副图片给用户:E2、用户拖动长图图片,选择出其中的一副图片,提交;E3、跟据用户选择的图片向服务端发送该图片的编号;(4)服务端验证:服务端接收客户端返回的编号,并将编号与预存基准图片编号T对比,如果一样,则通过验证,否则验证失败,重复步骤(2)。2.根据权利要求1所述的图片验证码生成的方法,其特征在于:步骤C所述的对拷贝图扭曲处理是通过如下方法实现扭曲的:C1、将该张拷贝图片按X行Y列划分为X*Y个小方格,X、Y均为大于或等于4的整数,并将每个方格从上往下从左往右依次编号为〇、1、2、3至X*Y;C2、给该张拷贝图片设定一个参数stable;并通过如下方式求取stable的值:其中,i=P_lC3、根据stable的值,通过如下方式打乱该张拷贝图片中方格的排列顺序,生成扭曲图片:当stable=0时,图片不发生任何改变;当stable为正值时,将编号为0至stable-1方格的顺序打乱;当stable值为负值时,将编号为X*Y_stable+l至X*Y_1方格的顺序打乱。3.根据权利要求1所述的图片验证码生成的方法,其特征在于:步骤A中所述的随机字符是通过线性同余法生成的。4.根据权利要求1所述的图片验证码生成的方法,其特征在于:步骤E中所述的E2步骤,在显示给用户的长图图片的下方添加有滑块组件,使用户通过左右移动滑块来左右拖动长图图片。5.根据权利要求1所述的图片验证码生成的方法,其特征在于:步骤A中所述的A1步骤,首先将该基准图片压缩成50*50px至500*500px后再将该图片保存。6.根据权利要求1所述的图片验证码生成的方法,其特征在于:步骤D中的所述的步骤D1是将N-1张拷贝图片和基准图片按编号从小到大的顺序排列拼接生成一张首尾相接的长图图片。7.根据权利要求2所述的图片验证码生成的方法,其特征在于:所述的N=30,所述的X=8,所述的Y=8。【专利摘要】本发明涉及一种图片验证码生成的方法,包括首先生成背景图片,加入4个随机生成的字符和数字、噪点、干扰线,由此生成基准图片,并给基准图片随机编号;然后,以基准图片为母板,生成多幅扭曲的图片,并给新生成扭曲的图片编号,并与基准图片按照编号组成一张长图发送给客户端,用户拖动长图挑选出基准图片以此进行验证。该验证方法,通过采用行为式验证获得更高安全、能有效阻止机器人攻击且不需要通过传统键盘输入。【IPC分类】G06T11-60,H04L29-06,G06F21-36【公开号】CN104618350【申请号】CN201510019296【发明人】欧阳建权,王泽颖,罗新高,唐欢容【申请人】湘潭大学【公开日】2015年5月13日【申请日】2015年1月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1