一种生成验证码图片的方法和装置制造方法及图纸

技术编号:8106158 阅读:168 留言:0更新日期:2012-12-21 05:18
本发明专利技术公开了一种生成验证码图片的方法,包括:获取当前验证码参数,所述验证码参数包括用户设定参数和随机参数;根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片;根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片;根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景后,生成最终验证码图片。本发明专利技术还公开了一种生成验证码图片的装置。

【技术实现步骤摘要】

本专利技术涉及互联网安全
,尤其涉及一种生成验证码图片的方法和装置
技术介绍
随着互联网应用的日益普及,其市场地位越来越重要,一些人试图在互联网服务这个开放式平台中制作或使用“注册机”软件,用于自动填写网络上的各种登陆表单,从而达到发送大量垃圾信息的目的。在互联网
,通常使用一种能区分某一个请求背后的用户是计算机还是人的公共全自动程序来避免“注册机”带来的安全隐患,这类模块称为验证码,常见于图像的形式。 目前验证码图片的应用比较普遍,对于生成的一张验证码图片,电脑前的用户通过目测可以比较容易的得到需要获取的答案,如图片上的文字是什么,然后填写答案提交给提供验证码的服务器,服务器通过后台验证来确定是否输入正确,若正确则进入下一环节,这样可以在一定程度上干扰“注册机”软件程序的进度使之识别率降低,从而在一定程度上防止了“注册机”软件对互联网服务的攻击。目前验证码类型众多,包括输入数字、字母或中文的方式,靠移动鼠标完成简单的任务的方式,或解答一些简单逻辑问题的方式等坐寸ο但是在现有技术中,在同一网站的不同页面中一般只能生成同一风格甚至是同一字体的验证码,但是,不同网页对验证码的难度需求却不尽相同,现有技术未针对不同网站提供一套通用的生成验证码图片的方法,用以为不同网站的不同网页生成包括不同难易程度的验证码的验证码图片,因此不适合互联网当前的发展需求。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种生成验证码图片的方法和装置,实现了为网站中的不同网页提供不同难易程度的验证码图片的目的。为实现上述目的,本专利技术提供的一种生成验证码图片的方法,包括获取当前验证码参数,所述验证码参数包括用户设定参数和随机参数;根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片;根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片;根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景后,生成最终验证码图片。优选的,在上述方法中,所述根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片包括根据所述随机参数中的字符串长度参数和字符串内容参数,生成属于用户设定参数中字体集参数所对应的字符范围内的验证码字符串;调用计算机内部字符贴图函数,按所述用户设定参数中的字体参数和字体集参数将所述验证码字符串中的每个字符以设定字体分别贴图到对应的空白字符图像画布中;根据所述用户设定参数中的难易度参数和所述随机参数中的字符特效处理参数,按照随机设定的旋转角度和缩放倍数对所述字符图像画布中的单个字符进行旋转和/或缩放的处理;将处理后的所有字符图像画布以所述用户设定参数中的图像质量参数所设定的图像清晰度依次贴图到一个空白的验证码图像画布中;调整所述验证码图像画布中每相邻两个字符之间的距离; 根据所述用户设定参数中的难易度参数和所述随机参数中的图片特效处理参数,对字符距离调整后的验证码图像画布作抗破解变换后生成初始验证码图片。优选的,在上述方法中,所述将处理后的所有字符图像画布以所述用户设定参数中的图像质量参数所设定的图像清晰度依次贴图到一个空白的验证码图像画布中之前还包括根据所述用户设定参数中的难易度参数和所述随机参数中的字符特效处理参数,对所述旋转和/或缩放后的单个字符进行字体特效处理,所述字体特效处理包括随机立体感和/或空心字体处理;优选的,在上述方法中,所述根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片之前还包括对从所述背景图库中选取的背景图片进行模糊处理。优选的,在上述方法中,所述对从所述背景图库中选取的背景图片进行模糊处理包括将第一背景图片划分为N个设定尺寸的区域,所述第一背景图片为未进行模糊处理前的原始图片,N彡1,N为整数;对所述第一背景图片中的每个区域进行模糊处理,以使每个区域的图像模糊度均大于或等于第一阈值;融合所述第一背景图片中经模糊处理后的每相邻两个区域的边缘,以使所述第一背景图片的所有区域合成为一个整体图片后得到第二背景图片;计算所述第二背景图片的图像模糊度;判断所述第二背景图片的图像模糊度是否大于或等于第二阈值,如果是,则对所述第二背景图片进行伽马变换,用以增强所述第二背景图片的色彩,如果否,则执行将所述第二背景图片划分为N个设定尺寸的区域并对每个区域进行模糊处理的步骤。优选的,在上述方法中,所述对所述第一背景图片中的每个区域进行模糊处理包括对所述第一背景图片中的一个区域进行高斯模糊处理后,计算所述一个区域的图像模糊度;如果所述一个区域的图像模糊度小于所述第一阈值,则对模糊处理后的一个区域再次进行高斯模糊处理,直到所述一个区域的图像模糊度大于或等于所述第一阈值为止。优选的,在上述方法中,所述根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景包括根据所述随机参数中的区域选取参数随机选取所述背景图片中的第一区域和第二区域,所述第一区域与所述第二区域的尺寸与所述初始验证码图片的尺寸相同;对所述第一区域进行色彩变换,用以增强所述第一区域与所述第二区域之间的色彩差异度;利用经色彩变换后的第一区域填充所述初始验证码图片中的验证码字符区域,并利用所述第二区域填充所述初始验证码图片的背景区域。优选的,上述方法还包括根据所述用户设定参数中的输出验证码图片尺寸参数,调整所述最终验证码图片 为预设尺寸和预设格式后,在预设的显示位置向用户显示所述最终验证码图片。本专利技术提出的一种生成验证码图片的装置,包括获取模块,用于获取当前验证码参数,所述验证码参数包括用户设定参数和随机参数;第一生成模块,用于根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片;选取模块,用于根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片;第二生成模块,用于根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景后,生成最终验证码图片。优选的,在上述装置中,所述第一生成模块包括第一生成单元,用于根据所述随机参数中的字符串长度参数和字符串内容参数生成属于用户设定参数中字体集参数所对应的字符范围内的验证码字符串;字符贴图单元,用于调用计算机内部字符贴图函数,按所述用户设定参数中的字体参数和字体集参数将所述验证码字符串中的每个字符以设定字体分别贴图到对应的空白字符图像画布中;第一处理单元,用于根据所述用户设定参数中的难易度参数和所述随机参数中的字符特效处理参数,按照随机设定的旋转角度和缩放倍数对所述字符图像画布中的单个字符进行旋转和/或缩放的处理;整体贴图单元,用于将处理后的所有字符图像画布以所述用户设定参数中的图像质量参数所设定的图像清晰度依次贴图到一个空白的验证码图像画布中;调整单元,用于调整所述验证码图像画布中每相邻两个字符之间的距离;第二生成单元,用于根据所述用户设定参数中的难易度参数和所述随机参数中的图片特效处理参数,对字符距离调整后的验证码图像画布作抗破解变换后本文档来自技高网...

【技术保护点】
一种生成验证码图片的方法,其特征在于,包括:获取当前验证码参数,所述验证码参数包括用户设定参数和随机参数;根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片;根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片;根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景后,生成最终验证码图片。

【技术特征摘要】
1.一种生成验证码图片的方法,其特征在于,包括 获取当前验证码参数,所述验证码参数包括用户设定参数和随机参数; 根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片; 根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片; 根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景后,生成最终验证码图片。2.根据权利要求I所述的方法,其特征在于,所述根据所述用户设定参数中的至少一个参数和所述随机参数中的至少一个参数生成初始验证码图片包括 根据所述随机参数中的字符串长度参数和字符串内容参数,生成属于用户设定参数中字体集参数所对应的字符范围内的验证码字符串; 调用计算机内部字符贴图函数,按所述用户设定参数中的字体参数和字体集参数将所述验证码字符串中的每个字符以设定字体分别贴图到对应的空白字符图像画布中; 根据所述用户设定参数中的难易度参数和所述随机参数中的字符特效处理参数,按照随机设定的旋转角度和缩放倍数对所述字符图像画布中的单个字符进行旋转和/或缩放的处理; 将处理后的所有字符图像画布以所述用户设定参数中的图像质量参数所设定的图像清晰度依次贴图到一个空白的验证码图像画布中; 调整所述验证码图像画布中每相邻两个字符之间的距离; 根据所述用户设定参数中的难易度参数和所述随机参数中的图片特效处理参数,对字符距离调整后的验证码图像画布作抗破解变换后生成初始验证码图片。3.根据权利要求2所述的方法,其特征在于,所述将处理后的所有字符图像画布以所述用户设定参数中的图像质量参数所设定的图像清晰度依次贴图到一个空白的验证码图像画布中之前还包括 根据所述用户设定参数中的难易度参数和所述随机参数中的字符特效处理参数,对所述旋转和/或缩放后的单个字符进行字体特效处理,所述字体特效处理包括随机立体感和/或空心字体处理。4.根据权利要求I所述的方法,其特征在于,所述根据所述随机参数中的背景图选取参数从预先建立的背景图库中随机选取一幅背景图片之前还包括对从所述背景图库中选取的背景图片进行模糊处理。5.根据权利要求4所述的方法,其特征在于,所述对从所述背景图库中选取的背景图片进行模糊处理包括 将第一背景图片划分为N个设定尺寸的区域,所述第一背景图片为未进行模糊处理前的原始图片,N彡1,N为整数; 对所述第一背景图片中的每个区域进行模糊处理,以使每个区域的图像模糊度均大于或等于第一阈值; 融合所述第一背景图片中经模糊处理后的每相邻两个区域的边缘,以使所述第一背景图片的所有区域合成为一个整体图片后得到第二背景图片;计算所述第二背景图片的图像模糊度; 判断所述第二背景图片的图像模糊度是否大于或等于第二阈值,如果是,则对所述第二背景图片进行伽马变换,用以增强所述第二背景图片的色彩,如果否,则执行将所述第二背景图片划分为N个设定尺寸的区域并对每个区域进行模糊处理的步骤。6.根据权利要求5所述的方法,其特征在于,在对所述第一背景图片中的每个区域进行模糊处理的步骤中,对其中一个区域进行模糊处理具体包括 对所述第一背景图片中的一个区域进行高斯模糊处理后,计算所述一个区域的图像模糊度; 如果所述一个区域的图像模糊度小于所述第一阈值,则对模糊处理后的一个区域再次进行高斯模糊处理,直到所述一个区域的图像模糊度大于或等于所述第一阈值为止。7.根据权利要求I所述的方法,其特征在于,所述根据所述随机参数中的区域选取参数从所述背景图片中获取随机选取的区域,并利用所述随机选取的区域填充所述初始验证码图片的字符和背景包括 根据所述随机参数中的区域选取参数随机选取所述背景图片中的第一区域和第二区域,所述第一区域与所述第二区域的尺寸与所述初始验证码图片的尺寸相同; 对所述第一区域进行色彩变换,用以增强所述第一区域与所述第二区域之间的色彩差异度; 利用经色彩变换后的第一区域填充所述初始验证码图片中的验证码字符区域,并利用所述第二区域填充所述初始验证码图片的背景区域。8.根据权利要求I至7任一项所述的方法,其特征在于,所述方法还包括 根据所述用户设定参数中的输出验证码图片尺寸参数,调整所述最终验证码图片为预设尺寸和预设格式后,在预设的显示位置向用户显示所述最终验证码图片。9.一种生成验证码图片的装置,其特征在于,包括 获取模块,用于获取当前验证码参数,所述验证码参数包括用户设定参数和随机参数; 第一生成模块,用于根据所述用户设定参数中的至少一个参数和所述随机参数中的...

【专利技术属性】
技术研发人员:傅凌进潘照明周森汪源陈刚
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1