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

技术编号:7759847 阅读:175 留言:0更新日期:2012-09-14 02:44
本发明专利技术涉及网络安全技术领域,特别是涉及一种图片验证码生成方法和装置,所述方法包括:获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;根据所述第一验证码参数生成第二验证码参数;随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;将生成的验证码图片输出显示。本发明专利技术提供的方法可以为不同的页面设置不同的难易程度和图片效果,可以适应各种不同页面的需要,通用性强;另一方面,增加了验证码的复杂度,使得验证码图片更加难以破解,进而提高了网络安全性。

【技术实现步骤摘要】

本专利技术涉及网络安全
,特别是涉及一种图片验证码生成方法和装置
技术介绍
随着网络技术的发展,互联网已经渗透到人们工作、生活、学习的各个领域。互联网开放的特性,给人们获取各种信息资源带来了便利,也给网络安全带来了挑战。目前,一些人试图在互联网这个开放平台中植入机器人程序,用于自动填写各种表单,以达到发送大量垃圾信息或者暴力破解用户账户的目的。机器人程序的出现给网络安全带来巨大挑战,造成网络带宽恶意占用、垃圾信息泛滥、服务器负荷加重、用户账户信息资源丢失等严重后果。为了保证网络安全,预防此类非正常使用情况的发生,需要一种方法来分辨网络使用者是机器人程序还是人类。全自动区分计算机和人类的图灵测试(Completely Automated Public Turingtest to tell Computers and Humans Apart, CAPTCHA)是一种区分用户是计算机还是人类的公共安全全自动程序,中文简称验证码。验证码主要用于分辨网络使用者是计算机程序还是人类。现有技术中,普遍的验证码生成方式为在图片中包含有字符,让网络使用者回答图片中显示了哪些字符来判断网络使用者是人类还是机器人程序。人类通过自己的判断可以比较容易地识别图片中的字符,而机器人程序对字符的识别率并不是很高。因此,通过验证码机制,可以认为回答正确的是人类,而一直回答错误的会被认为是机器人程序,从而区分了人类和机器人程序。验证码机制的出现正是用于干扰机器人程序,在一定程度上防止其对互联网服务的自动攻击,从而保证了真正的人类对互联网服务的使用。 在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下问题在现有技术中,同一网站的验证码系统往往只采用单一风格的验证码,而不同页面对验证码难易程度的需求往往是不一样的,现有技术的方法不能根据不同的页面、应用场合设置风格、难易程度不同的验证码,不能适应不同页面的需要,而且随着机器人程序上线时间增加,很容易破解验证码程序,给网络安全带来隐患。另一方面,验证码程序一旦生成,就不能够更改所生成验证码的外观效果,适应性和通用性不强,不适应网络发展的需要。
技术实现思路
为解决上述技术问题,本专利技术实施例提供了一种图片验证码生成方法和系统,可以根据用户的需要,设置难易程度不同的验证码,通用性强、且不易破解,提高网络安全性。技术方案如下—方面,本专利技术实施例公开了一种图片验证码生成方法,所述方法包括获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;根据所述第一验证码参数生成第二验证码参数;随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;将生成的验证码图片输出显示。优选地,所述第一验证码参数还包括以下任意一种或多种参数字符长度参数、字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。优选地,当所述第一验证码参数包括字符长度参数时,所述字符长度参数为大于等于N小于等于M的整数;所述根据所述第一验证码参数生成第二验证码参数为在大于等于N小于等于M的整数中选取一个整数作为验证码字符的长度,所述选取过程是随机的。优选地,所述随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片为从第一字符集中随机选取一个字符作为验证码字符;判断所述验证码字符是否为第一个字符;如果是,直接进入特效处理步骤;如果否,进入与前一个验证码字符进行距离估算与修正处理步骤;与前一个验证码字符进行距离估算与修正处理;根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理;判断所述验证码字符是否为最后一个字符,如果否,进入从第一字符集中随机选取一个字符作为验证码字符的步骤,直至处理完最后一个验证码字符。优选地,所述根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理包括以下任意一个或多个步骤当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理;当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。优选地,在将生成的验证码图片输出显示之前,所述方法还包括根据所述难度参数,对所述验证码图片进行后期处理。优选地,所述根据所述难度参数,对验证码图片进行后期处理包括以下任意一个或多个步骤对所述验证码图片中的验证码字符进行扭曲变形处理;在所述验证码图片中加入随机噪点;在所述验证码图片中加入随机干扰线;在所述验证码图片中加入干扰字符。优选地,在将生成的验证码图片输出显示之前,所述方法还包括对所述验证码图片进行领域色彩变换处理,使所述验证码图片中字符的前景、背景色调保持一致。优选地,所述将生成的验证码图片输出显示为将生成的验证码图片进行插值处理,缩放到预设的大小,转换为预设格式数据输出显示。另一方面,本专利技术实施例还公开了一种图片验证码生成装置,所述装置包括获取单元,用于获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;第一生成单元,用于根据所述第一验证码参数生成第二验证码参数;第二生成单元,用于随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;显示单元,用于将生成的验证码图片输出显示。优选地,所述第一验证码参数还包括以下任意一种或多种参数字符数量参数、字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。优选地,所述第二生成单元包括选取单元,用于从第一字符集中随机选取一个字符作为验证码字符;第一判断单元,用于判断所述验证码字符是否为第一个字符;如果是,进入特效处理单元;如果否,进入距离估算与修正单元;距离估算与修正单元,用于与前一个验证码字符进行距离估算与修正处理,获取处理结果,将所述处理结果输入特效处理单元;特效处理单元,用于根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理;第二判断单元,用于判断所述验证码字符是否为最后一个字符,如果否,进入选取单元,直至处理完最后一个验证码字符。优选地,所述特效处理单元包括以下任意一个或多个子单元第一特效处理子单元,用于当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理; 第二特效处理子单元,用于当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;第三特效处理子单元,用于当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;第四特效处理子单元,用于当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。优选地,所述装置还包括图片处理单元,用于根据所述难度参数,对所述验证码图片进行后期处理。优选地,所述图片处理单元包括以下任意一个或多个子单元第一图片处理子单元,用于对所述验证码图片中的验证码字符进行扭曲变形处理;第二图片处理子单元,用于在所述验证码图片中加入随机噪点;第三图片处理子单元,用于在所述验证码图片中加入随机干扰线;第本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:傅凌进潘照明周森
申请(专利权)人:杭州朗和科技有限公司
类型:发明
国别省市:

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

1