动态验证码图片生成方法及装置的制造方法

文档序号:9922214阅读:346来源:国知局
动态验证码图片生成方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种动态验证码图片生成方法及装置。
【背景技术】
[0002]验证码是一种区分用户是计算机还是人的公共全自动程序,可以有效防止黑客对某个特定注册用户使用特定程序暴力破解方式进行不断的登陆尝试,从而防止网络刷票、论坛灌水等行为。使用验证码是现在很多网站通行的方式,最广泛的使用方式是生成验证码图片,将由一些随机字符组成的验证码以图片形式显示,用户将验证码图片中包括的验证码输入系统,如果输入的验证码通过系统的验证,则认为用户当前的请求是有效的,否则当前的请求无效。
[0003]为了阻止计算机破解程序利用OCR (Optical Character Recognit1n,光学字符识别)等技术识别验证码图片上的字符以获得验证码,通常在生成验证码图片时会做以下处理:(1)添加干扰元素,例如干扰点、干扰线或者图片背景;(2)使字符相互连接甚至部分重叠;(3)扭曲图片上的字符。经过上述处理后的验证码图片,人眼可以分辨出字符,但计算机破解程序识别的难度增加。
[0004]但是,使用上述处理方式的验证码图片生成方法,使用方式(I)时如果干扰元素太多,虽然增加了计算机破解程序的识别难度,但同样提高了用户识别的难度,如果干扰元素不够,计算机破解程序只需要进行去噪处理就可以识别出字符,安全性低;使用方式(2)或方式(3)时,如果字符连接或重叠过多,或者过于扭曲,计算机破解程序虽然难以识别,但由于边缘干扰度大或者字符变形严重,也会导致用户很难识别,往往需要分辨重试多次才能输入正确的验证码。因此,现有的验证码图片生成方法,难以兼顾安全性和用户易识别的要求。

【发明内容】

[0005]为克服相关技术中验证码图片难以兼顾安全性和用户易识别要求的问题,本申请提供一种动态验证码图片生成方法及装置。
[0006]根据本申请实施例的第一方面,提供一种动态验证码图片生成方法,包括:
[0007]使用随机字符生成验证码;
[0008]根据所述验证码生成基础静态图层;
[0009]使用随机字符生成多个干扰图层,将所述多个干扰图层分别与所述基础静态图层合并为多个复合帧;
[0010]为得到的多个复合帧预设帧速以生成动态验证码图片。
[0011]优选的,所述预设帧速为0.05?0.2s。
[0012]优选的,所述预设帧速为Is。
[0013]优选的,所述干扰图层中随机字符随机分布。
[0014]优选的,所述基础静态图层中字符与背景使用对比色,所述验证码的各个字符相互分离。
[0015]优选的,所述干扰图层的背景颜色与所述基础静态图层的背景颜色相同,所述干扰图层中的字符与所述基础静态图层中的字符颜色、字体和大小相同。
[0016]相应于本申请实施例的第一方面,根据本申请实施例的第二方面,提供一种动态验证码图片生成装置,包括:
[0017]验证码生成模块,用于使用随机字符生成验证码;
[0018]基础静态图层生成模块,用于根据所述验证码生成基础静态图层;
[0019]复合帧生成模块,用于使用随机字符生成多个干扰图层,将所述多个干扰图层分别与所述基础静态图层合并为多个复合帧;
[0020]动态验证码图片生成模块,用于为得到的多个复合帧预设帧速以生成动态验证码图片。
[0021]优选的,所述复合帧生成模块,包括:
[0022]干扰图层生成子模块,用于使用随机字符生成多个干扰图层;
[0023]帧合成子模块,用于将所述多个干扰图层分别与所述基础静态图层合并为多个复合帧。
[0024]优选的,所述预设帧速为0.05?0.2s。
[0025]优选的,所述预设帧速为Is。
[0026]优选的,所述干扰图层中随机字符随机分布。
[0027]本申请实施例提供的技术方案可以包括以下有益效果:将验证码包含在基础静态图层中,并生成多个干扰图层,干扰图层中包含随机字符,将每个干扰图层与基础静态图层合并成复合帧,得到多个复合帧,再为多个复合帧预设帧速以生成动态验证码图片,且所述预设帧速满足视觉暂留的要求。因此动态验证码图片在动态变化时,在视觉上,虽然干扰图层中的字符呈现不断变化的状态,但验证码由于视觉暂留而保持静止不变且清楚可见,而且带随机字符的多个干扰图层能够有效防止计算机破解程序识别验证码且不妨碍人眼对验证码的识别,由此本申请实施例提供的技术方案不仅能提高验证码的安全性,而且得到的验证码人眼易识别,提高用户体验。
[0028]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
【附图说明】
[0029]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为本申请一示例性实施例示出的一种动态验证码图片生成方法的流程示意图。
[0031]图2为基础静态图层示例图。
[0032]图3为复合帧的示例图。
[0033]图4为本申请一示例性实施例示出的一种动态验证码图片生成装置的框图。
【具体实施方式】
[0034]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0035]为了全面理解本申请,在以下详细描述中提到了众多具体的细节,但是本领域技术人员应该理解,本申请可以无需这些具体细节而实现。在其他实施例中,不详细描述公知的方法、过程、组件和电路,以免不必要地导致实施例模糊。
[0036]根据本申请实施例的第一方面,提供一种动态验证码图片生成方法。图1为本申请一示例性实施例示出的一种动态验证码图片生成方法的流程示意图,如图1所示,所述方法包括:
[0037]步骤S101,使用随机字符生成验证码。
[0038]其中,所述随机字符为随机生成的数字、字母或中文汉字等,也可以为数字、字母或中文汉字的任意组合。由于在终端上输入数字相对较为方便,从方便用户输入验证码的角度而言,优选使用随机数字生成验证码。
[0039]步骤S102,根据所述验证码生成基础静态图层。
[0040]其中,设置一个静态图层,在静态图层中加入所述验证码,将加入验证码的静态图层作为基础静态图层。基础静态图层可以在验证码可辨认的前提下,设置不同的背景颜色或者花纹等,同样在验证码可辨认的前提下,验证码在基础静态图层的位置可以任意分布以及设置与背景颜色不同的颜色。为了增加验证码的人眼辨识度,优选的是所述基础静态图层中字符与背景使用对比色,所述验证码的各个字符相互分离。图2为基础静态图层示例图,以随机生成的数字“4859”为验证码,数字为黑色,背景颜色为白色。
[0041]步骤S103,使用随机字符生成多个干扰图层,将所述多个干扰图层分别与所述基础静态图层合并为多个复合帧。
[0042]其中,设置多个图层,并新生成多个随机字符,将随机字符加入该多个图层中,作为干扰图层。所述随机字符为随机生成的数字、字母或中文汉字等,也可以为数字、字母或中文汉字的任意组合。每个图层中随机字符的个数可以与验证码所包含的字符个数相同,也可以不同。将每个干扰图层与基础静态图层合并为一个复合帧,所述合并使用常规的图层合并方法。
[0043]由于所述随机字符是随机生成的,因此即使每个干扰图层中随机字符的个数与验证码所包含的字符个数相同,干扰图层中的随机字符与验证码重复的概率也极小,因而对于每个复合帧而言,不仅增加了计算机破解程序区分干扰图层中的随机字符和验证码的难度,也增加了验证码的人眼辨识度。
[0044]干扰图层的个数可以根据需要来设定,层数越多对计算机破解程序的干扰越大,但过多的层数也影响人眼对验证码的辨识。
[0045]如果合并后每个干扰图层中随机字符在复合帧中的位置与验证码在复合帧中的位置相同,将妨碍人眼对验证码的辨识,因此较优选的是每个干扰图层中随机字符的位置都不相同,每个图层中随机字符可以按规律分布,例如按顺时针的次序,设干扰图层有4个,第一个干扰图层中随机字符都位于干扰图层的左上角,第二个干扰图层随机字符都位于干扰图层的右上角,以此类推。优选的是,每个干扰图层中随机字符随机分布,不仅更易实现,有利于人眼对验证码的辨识,而且由于随机字符分布无规律,进一步增加了计算机破解程序破解的难度。
[0046]由于干扰图层与基础静态图层合并为复合帧。如果干扰图层的背景颜色和基础静态图层的背景颜色不同,所得到的复合帧的背景颜色可能会发生变化且导致覆盖验证码或者干扰图层中随机字符的颜色,使验证码不可辨识或者干扰图层中的随机字符不可见,但在验证码可辨识和随机字符可显示的前提下,干扰图层的背景颜色和基础静态图层的背景颜色可以不同。在一种优选的实施方式中,干扰图层的背景颜色与基础静态图层的背景颜色相同,避免复合帧的背景颜色对验证码的覆盖。在另一种优选的实施方式中,干扰图层的背景颜色与基础静态图层的背景颜色相同,且干扰图层中的随机字符与所述验证码的颜色、字体和大小相同,这样不仅使验证码的辨识度高,干扰图层中与验证码颜色、字体和大小相同的字符也更容易对计算机破解程序形成误导,增加计算机破解程序的破解难度。图3为复合帧的示例图,图中“4859”为验证码,其余数字为干扰图层中的随机字符,验证码和随机字符都是黑色宋体四号字,基础静态图层和干扰图层的背景颜色都是白色。
[0047]步骤S104,为得
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1