CN102663672B - 一种图片验证码生成方法和装置 - Google Patents

一种图片验证码生成方法和装置 Download PDF

Info

Publication number
CN102663672B
CN102663672B CN2012101353961A CN201210135396A CN102663672B CN 102663672 B CN102663672 B CN 102663672B CN 2012101353961 A CN2012101353961 A CN 2012101353961A CN 201210135396 A CN201210135396 A CN 201210135396A CN 102663672 B CN102663672 B CN 102663672B
Authority
CN
China
Prior art keywords
identifying code
character
picture
parameter
random
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2012101353961A
Other languages
English (en)
Other versions
CN102663672A (zh
Inventor
傅凌进
潘照明
周森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Zhiqi Technology Co Ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN2012101353961A priority Critical patent/CN102663672B/zh
Publication of CN102663672A publication Critical patent/CN102663672A/zh
Application granted granted Critical
Publication of CN102663672B publication Critical patent/CN102663672B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)

Abstract

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

Description

一种图片验证码生成方法和装置
技术领域
本发明涉及网络安全技术领域,特别是涉及一种图片验证码生成方法和装置。
背景技术
随着网络技术的发展,互联网已经渗透到人们工作、生活、学习的各个领域。互联网开放的特性,给人们获取各种信息资源带来了便利,也给网络安全带来了挑战。目前,一些人试图在互联网这个开放平台中植入机器人程序,用于自动填写各种表单,以达到发送大量垃圾信息或者暴力破解用户账户的目的。机器人程序的出现给网络安全带来巨大挑战,造成网络带宽恶意占用、垃圾信息泛滥、服务器负荷加重、用户账户信息资源丢失等严重后果。为了保证网络安全,预防此类非正常使用情况的发生,需要一种方法来分辨网络使用者是机器人程序还是人类。
全自动区分计算机和人类的图灵测试(Completely Automated PublicTuring test to tell Computers and Humans Apart,CAPTCHA)是一种区分用户是计算机还是人类的公共安全全自动程序,中文简称验证码。验证码主要用于分辨网络使用者是计算机程序还是人类。现有技术中,普遍的验证码生成方式为在图片中包含有字符,让网络使用者回答图片中显示了哪些字符来判断网络使用者是人类还是机器人程序。人类通过自己的判断可以比较容易地识别图片中的字符,而机器人程序对字符的识别率并不是很高。因此,通过验证码机制,可以认为回答正确的是人类,而一直回答错误的会被认为是机器人程序,从而区分了人类和机器人程序。验证码机制的出现正是用于干扰机器人程序,在一定程度上防止其对互联网服务的自动攻击,从而保证了真正的人类对互联网服务的使用。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:在现有技术中,同一网站的验证码系统往往只采用单一风格的验证码,而不同页面对验证码难易程度的需求往往是不一样的,现有技术的方法不能根据不同的页面、应用场合设置风格、难易程度不同的验证码,不能适应不同页面的需要,而且随着机器人程序上线时间增加,很容易破解验证码程序,给网络安全带来隐患。另一方面,验证码程序一旦生成,就不能够更改所生成验证码的外观效果,适应性和通用性不强,不适应网络发展的需要。
发明内容
为解决上述技术问题,本发明实施例提供了一种图片验证码生成方法和系统,可以根据用户的需要,设置难易程度不同的验证码,通用性强、且不易破解,提高网络安全性。
技术方案如下:
一方面,本发明实施例公开了一种图片验证码生成方法,所述方法包括:
获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;
根据所述第一验证码参数生成第二验证码参数;
随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;
将生成的验证码图片输出显示;
其中,当所述第一验证码参数还包括字符长度参数时,所述字符长度参数为大于等于N小于等于M的整数;其中,0<N≤M;
所述根据所述第一验证码参数生成第二验证码参数为:
在大于等于N小于等于M的整数中选取一个整数作为验证码字符的长度,所述选取过程是随机的。
优选地,所述第一验证码参数还包括以下任意一种或多种参数:字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。
优选地,所述随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片为:
从第一字符集中随机选取一个字符作为验证码字符;
判断所述验证码字符是否为第一个字符;如果是,直接进入特效处理步骤;如果否,进入与前一个验证码字符进行距离估算与修正处理步骤;
与前一个验证码字符进行距离估算与修正处理;
根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理;
判断所述验证码字符是否为最后一个字符,如果否,进入从第一字符集中随机选取一个字符作为验证码字符的步骤,直至处理完最后一个验证码字符。
优选地,所述根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理包括以下任意一个或多个步骤:
当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理;
当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;
当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;
当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。
优选地,在将生成的验证码图片输出显示之前,所述方法还包括:
根据所述难度参数,对所述验证码图片进行后期处理。
优选地,所述根据所述难度参数,对验证码图片进行后期处理包括以下任意一个或多个步骤:
对所述验证码图片中的验证码字符进行扭曲变形处理;
在所述验证码图片中加入随机噪点;
在所述验证码图片中加入随机干扰线;
在所述验证码图片中加入干扰字符。
优选地,在将生成的验证码图片输出显示之前,所述方法还包括:
对所述验证码图片进行领域色彩变换处理,使所述验证码图片中字符的前景、背景色调保持一致。
优选地,所述将生成的验证码图片输出显示为:
将生成的验证码图片进行插值处理,缩放到预设的大小,转换为预设格式数据输出显示。
另一方面,本发明实施例还公开了一种图片验证码生成装置,所述装置包括:
获取单元,用于获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;
第一生成单元,用于根据所述第一验证码参数生成第二验证码参数;其中,当所述第一验证码参数还包括字符长度参数时,所述根据所述第一验证码参数生成第二验证码参数具体为:在大于等于N小于等于M的整数中选取一个整数作为验证码字符的长度,所述选取过程是随机的;所述字符长度参数为大于等于N小于等于M的整数;其中,0<N≤M;
第二生成单元,用于随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;
显示单元,用于将生成的验证码图片输出显示。
优选地,所述第一验证码参数还包括以下任意一种或多种参数:字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。
优选地,所述第二生成单元包括:
选取单元,用于从第一字符集中随机选取一个字符作为验证码字符;
第一判断单元,用于判断所述验证码字符是否为第一个字符;如果是,进入特效处理单元;如果否,进入距离估算与修正单元;
距离估算与修正单元,用于与前一个验证码字符进行距离估算与修正处理,获取处理结果,将所述处理结果输入特效处理单元;
特效处理单元,用于根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理;
第二判断单元,用于判断所述验证码字符是否为最后一个字符,如果否,进入选取单元,直至处理完最后一个验证码字符。
优选地,所述特效处理单元包括以下任意一个或多个子单元:
第一特效处理子单元,用于当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理;
第二特效处理子单元,用于当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;
第三特效处理子单元,用于当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;
第四特效处理子单元,用于当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。
优选地,所述装置还包括:
图片处理单元,用于根据所述难度参数,对所述验证码图片进行后期处理。
优选地,所述图片处理单元包括以下任意一个或多个子单元:
第一图片处理子单元,用于对所述验证码图片中的验证码字符进行扭曲变形处理;
第二图片处理子单元,用于在所述验证码图片中加入随机噪点;
第三图片处理子单元,用于在所述验证码图片中加入随机干扰线;
第四图片处理子单元,用于在所述验证码图片中加入干扰字符。
优选地,所述装置还包括:
色彩变换单元,用于对所述验证码图片进行领域色彩变换处理,使所述验证码图片中字符的前景、背景色调保持一致。
优选地,所述显示单元还用于将生成的验证码图片进行插值处理,缩放到预设的大小,转换为预设格式数据输出显示
本发明实施例能够达到的有益效果为:本发明实施例提供了一种图片验证码生成方法,通过设置页面与第一验证码参数的对应关系,使得用户可以根据具体应用场合为不同的页面设置不同的验证码难易程度和效果。在具体生成图片验证码时,通过获取与当前页面对应的第一验证码参数,根据所述第一验证码参数生成第二验证码参数;进而随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;将生成的验证码图片输出显示。由于用户可以根据具体的应用场合,为不同的页面设置不同的难易程度和图片效果,因此可以适应各种不同页面的需要,通用性强;另一方面,由于不同页面对应的验证码参数不同,由此随机产生的验证码图片也会不同,增加了验证码的复杂度,使得验证码图片更加难以破解,进而提高了网络安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的图片验证码生成方法第一实施例流程图;
图2为本发明提供的图片验证码生成方法第二实施例流程图;
图3为本发明实施例提供的图片验证码生成方法生成的图片验证码效果示意图;
图4为本发明实施例提供的图片验证码装置示意图。
具体实施方式
现有技术中,普遍的验证码生成方式为在图片中包含有字符,让网络使用者回答图片中显示了哪些字符来判断网络使用者是人类还是机器人程序。电脑前的互联网服务使用者可以通过自己的判断得到图片中的字符是什么,然后提交答案给服务器,服务器通过后台验证来确定是否输入正确,如果正确则进入下一环节。但目前的验证码风格比较单一,防破解手段也比较单一,同一网站的各个页面验证码风格相同,如果特定为其开发验证码识别破解算法,则比较容易被破解,提高了页面被攻击的风险,降低了网络安全性。而图形验证码的识别与破解技术概括而言就是进行验证码字符的分割和识别,具体来说一般包括图像预处理、去噪点、前背景分割、二值化、字符分割、特征提取、匹配识别等步骤。如果针对以上步骤在验证码图片生成方法中添加一些防止轻易让其成功的技术手段既能够对后期的机器识别破解产生干扰,从而降低恶意程序的成功率。验证码机制的引进,可以使得论坛、微博、邮箱等服务中减少由机器人发送的垃圾信息,防止网络资源被滥用,提高网络安全性。验证码的抗机器人破解能力往往与视觉体验有相反关系,人眼容易识别的验证码往往也有较大被自动识别的风险。因此,显示效果和防破解能力是验证码设计中需要综合考虑的因素。通常需要根据具体应用场合和目的选择风格、难易程度合适的验证码。而现有技术则不能解决这一问题。
而本发明正是为了解决上述技术问题,提供了一种图片验证码生成方法和系统,可以根据用户的需要,设置难易程度不同的验证码,通用性强、且不易破解,提高了网络安全性。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参见图1,为本发明提供的图片验证码生成方法第一实施例流程图。
所述方法包括:
S101,获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述当前页面与所述第一验证码参数具有对应关系。
在现有技术中,同一网站的不同页面往往采用同一风格、同一难易程度的验证码图片,但网站页面对验证码难易程度的需求往往是不同的。本发明可以根据不同应用场景的需要,为不同的页面设置难易程度不同的验证码。例如,对于一些注册表单填写页面,对验证码的复杂度要求不高,可以设置难度较低的验证码;而对于一些需要填写用户账号、密码信息的页面,则可以设置难度较高的验证码。本发明实施例提供的图片验证码生成装置,为用户提供了一个用户输入设置接口,用于接收用户对第一验证码参数的输入。这里,用户是指互联网服务的提供者或管理者,并不是互联网服务的最终使用者。当用户输入了针对不同页面的第一验证码参数后,即保存第一验证码参数与页面的对应关系。在具体应用本发明实施例提供的图片验证码生成方法时,首先获取与当前页面对应的第一验证码参数。其中,所述第一验证码参数至少包括难度参数。具体的,可以设置难度参数的取值范围为(-1,1),其中,取值越大难度越低。当然,也可以相反的设置,即取值越大难度越高。
可选的,第一验证码参数还可以包括以下任意一种或多种参数的组合:
(1)第一字符长度参数。
即图片验证码中包含多少个字符。用户可以输入两个参数N和M,其中0<N≤M。也就是说,用户可以根据具体的需要指定一个验证码字符长度的区间。而在具体生成验证码时,系统会在用户指定的长度区间中任意选取一个整数作为验证码字符的长度。选取的过程是随机的,也就是说,每一次生成的验证码字符长度是不一样的。这样,可以防止机器人程序的暴力破解。
在本发明另一实施例中,也可以让用户输入固定字符长度,这样,对于同一页面每一次生成的验证码字符的长度是固定的。
(2)字体风格参数。系统提供一个字体库,包含当前系统支持的各种字体。所述字体库可以根据用户需要进行扩展。可以根据用户的需要设置各种不同的字体,例如宋体、楷体、黑体、Arial字体等。通过不同字体的设置,可以对生成的图片验证码字符的形态产生影响。
(3)字符集参数。可以选择验证码字符采用英文字符或中文字符集,或者中英文混合字符集,以增加验证码识别难度。
(4)图片品质参数。例如,可以设置参数的取值范围为(0,1),取值越大,图像细节越清晰。也可以进行相反的设置,本发明对此不进行限定。
(5)验证码图片大小参数。用于设置最终验证码图片的输出尺寸,即显示图片的宽度和高度,单位可以为像素。
当用户对第一验证码参数未设定或部分设定时,未设定的参数采用系统默认参数。
S102,根据所述第一验证码参数生成第二验证码参数。
在本发明第二实施例中,第二验证码参数是系统根据用户设定的第一验证码随机生成的验证码参数,以提高安全性能。根据第一验证码参数的不同,第二验证码参数可以包括以下参数:
(1)第二字符长度参数。前面提到,用户可以根据具体的需要指定一个验证码字符长度的区间,例如用户可以输入两个参数N和M,其中0<N≤M。而在具体生成验证码时,系统会在用户指定的长度区间中任意选取一个整数作为验证码字符的长度。选取的过程是随机的,也就是说,每一次生成的验证码字符长度是不一样的。这样,可以进一步防止机器人程序的暴力破解。
(2)验证码图片背景色和字符前景色。验证码图片的背景色和字符前景色的生成可以是随机的,也就是说,每一次生成验证码图片时,其背景色和字符前景色可以不同,进一步提高了验证码图片的防破解能力。
(3)验证码图片中每个字符的特效。特效可以包括空心章效果、空心字效果、上下划线效果、立体字效果等。
S103,随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片。
具体的,步骤S103具体可以通过以下步骤实现:
S103A,从第一字符集中随机选取一个字符作为验证码字符。
其中,第一字符集为用户指定的中文字符集或英文字符集或中英文混合字符集。
S103B,判断所述验证码字符是否为第一个字符;如果是,直接进入S103D特效处理步骤;如果否,进入S103C与前一个验证码字符进行距离估算与修正处理步骤。
S103C,与前一个验证码字符进行距离估算与修正处理。
S103D,根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理。
S103E,判断所述验证码字符是否为最后一个字符,如果否,进入从第一字符集中随机选取一个字符作为验证码字符的步骤,直至处理完最后一个验证码字符。
S104,将生成的验证码图片输出显示。
最终将验证码图片压缩成设定的格式发送至前端显示模块输出显示。
在本发明第一实施例中,通过设置页面与第一验证码参数的对应关系,使得用户可以根据具体应用场合为不同的页面设置不同的验证码难易程度和效果。在具体生成图片验证码时,通过获取与当前页面对应的第一验证码参数,根据所述第一验证码参数生成第二验证码参数;进而随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;将生成的验证码图片输出显示。由于用户可以根据具体的应用场合,为不同的页面设置不同的难易程度和图片效果,因此可以适应各种不同页面的需要,通用性强;另一方面,由于不同页面对应的验证码参数不同,由此随机产生的验证码图片也会不同,增加了验证码的复杂度,使得验证码图片更加难以破解,进而提高了网络安全性。
参见图2,为本发明提供的图片验证码生成方法第二实施例流程图。
S201,接受用户输入的第一验证码参数。
具体的,系统可以提供一个用户输入设置接口,用于接收用户对第一验证码参数的输入。。当用户输入了针对不同页面的第一验证码参数后,即保存第一验证码参数与页面的对应关系。
S202,获取与当前页面对应的第一验证码参数。
S203,根据所述第一验证码参数生成第二验证码参数。
与第一实施例不同的是,在本发明第二实施例中,第二验证码参数还可以包括图片处理参数。具体的,图片处理参数用于随机生成验证码图片中的字符扭曲、干扰曲线、噪点、干扰字符的位置和强度。
S204,初始化验证码主画布,并拷贝一份作为副画布。
具体的,在本发明实施例中,是根据用户在第一验证码参数中设置的图像品质参数初始化验证码主画布,并拷贝一份作为副画布。一般的,图像品质参数的取值越大,验证码主画布的尺寸越大,图像越清晰。优选的,画布的背景色为RGB三通道均大于230的高明度中性色。而前景色即字符色为低明度中性色或者中、高彩度的低、中、高明度彩色,保持基于国际标准显示三原色的SRGB的均匀色空间CIELAB中色差△E>50,使得有足够的对比度能够让人眼识别。具体的,前背景色彩值由步骤S203随机生成。同时,根据用户设定的字体风格参数和字符集参数初始化字符贴图引擎。
S205,从第一字符集中随机选取一个字符作为验证码字符,随机旋转一定的角度。
在本发明第二实施例中,第一字符集为用户指定的字符集。在这一实施例中,是依次生成一个验证码字符对其进行处理后,再生成下一个验证码字符的。可选的,在本发明另一实施例中,也可以在步骤S203中,在随机生成验证码图片字符的长度之后,随机生成验证码字符的内容,即验证码字符包括哪几个字符。这时,第一字符集即为在步骤S203生成验证码字符内容中的字符集。例如,在步骤S203中,确定了验证码图片字符长度为5,从用户选定的字符集中随机选取了5个字符作为验证码图片的内容,这时即从这5个字符中随机选取一个作为第一个字符,再依次进行后续的处理。
S206,判断所述验证码字符是否为第一个字符,如果是,进入步骤S210;如果否,进入步骤S207.
S207,在副画布上画上所述验证码字符。
S208,估算所述字符与上一个字符之间的距离。
一般的,验证码字符是从左到右依次放置,为了得到更好的用户体验效果、提高验证码的防破解能力,在本发明实施例中,设置主画布和副画布,以便进行距离先验估算和修正处理使得验证码各个字符间相连且能够使每个字符保持完整、人眼易辨的轮廓。具体的,在每次处理验证码字符时,当判断所处理的字符不是第一个字符时,预先在副画布上用同样的参数进行字符贴图。并计算所述验证码字符与前一个字符之间的距离。
S209,根据难度参数对所述距离进行修正处理。
根据用户设定难度参数,将字符间距修正到合适的距离。字符间的距离与设定的难度参数具有对应关系,一般的,难度参数越高,字符间的距离越近。通过此步骤可以使得验证码图片中的每个字符整体间的轮廓保持清晰但又能使机器更加难以分割每个字符。
S210,根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理。
具体的,步骤S210可以包括以下任意一个或多个步骤:
当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理;
当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;
当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;
当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。
可选的,也可以预先设定一个第五阈值,用于表明一个总的特效难度阈值。当判断难度参数小于设定的第五阈值时,则直接跳过特效处理阶段,进入下一步骤。当判断难度参数大于设定的第五阈值时,再进入上述判断步骤。即判断难度参数是否大于第一阈值、第二阈值......第四阈值的步骤。
可选的,在进行步骤S203时,也可以根据随机产生的第二验证码参数,为每一类特效设定不同的标识符,用以表示验证码字符采用哪些特效。例如,可以通过判断某个特效的标识符的数值是否大于设定的阈值,如果是,则以该特效处理该字符。
S211,在主画布上画上所述字符。
调用默认字符贴图引擎在主画布合适位置上写入处理后的字符。
S212,判断所述字符是否为最后一个字符,如果否,进入步骤S205,直至处理完所有字符。如果是,进入步骤S213。
S213,进行主画布字符有效区域评估处理。具体的,对主画布中字符的有效区域进行评估,截取含有字符的部分,去除空白部分。
S214,根据所述难度参数,对所述验证码图片进行后期处理。
具体的,步骤S214可以包括以下任意一个或多个步骤:
(1)对所述验证码图片中的验证码字符进行扭曲变形处理。具体的,可以进行水平方向和水质方向两个方向的扭曲效果。
(2)在所述验证码图片中加入随机噪点。
(3)在所述验证码图片中加入随机干扰线;
(4)在所述验证码图片中加入干扰字符。
判断是否需要对验证码图片进行上述处理与步骤S210类似,也可以通过判断难度参数是否大于设定阈值进行判断。例如,当所述难度参数大于预设的第六阈值时,对所述验证码图片中的验证码字符进行扭曲变形处理;当所述难度参数大于预设的第七阈值时,在所述验证码图片中加入随机噪点;当所述难度参数大于预设的第八阈值时,在所述验证码图片中加入随机干扰线;当所述难度参数大于预设的第九阈值时,在所述验证码图片中加入干扰字符对所述验证码字符进行立体效果处理。
可选的,也可以预先设定一个第十阈值,用于表明一个总的特效难度阈值。当判断难度参数小于设定的第十阈值时,则直接跳过特效处理阶段,进入下一步骤。当判断难度参数大于设定的第五阈值时,再进入上述判断步骤。即判断难度参数是否大于第六阈值、第七阈值......第九阈值的步骤。
对验证码图片进行后期处理,可以进一步提高验证码的防破解能力。
S215,对字符前景色进行领域色彩变换。
对处理后的画布进行领域色彩变化,保持字符色调的视觉一致性,利用随机参数将字符颜色唯一的RGB色彩值做领域上的映射,使所述验证码图片中字符的前景、背景色调保持一致,防止被轻易分割前背景。
S216,将生成的验证码图片进行插值处理,缩放到预设的大小。
通过双三次差值方法将验证码图片插值到用户指定的尺寸。
S217,转换为预设格式数据输出显示。将验证码图片打包成可显示的图像格式数据流供前端调用显示。
在本发明第二实施例中,不仅可以根据用户的设定生成适合当前页面的不同验证码图片。进一步的,在生成字符贴图前,进行了距离先验估算使得验证码字符不易被恶意程序分割而又保持了字符的可读性。另一方面,还可以根据难度参数决定是否启用特效处理、验证码图片后期处理等,进一步提高了验证码的复杂度,提高了抗破解能力,提高了网络的安全性。
参见图3,为本发明实施例提供的图片验证码生成方法生成的图片验证码效果示意图。
其中,假设用户指定的第一验证码参数如下所示:
(1)字体:Arial
(2)字集:English
(3)图像品质:0.5
(4)输出尺寸:高50像素,宽150像素
(5)难易程度:0.0
(6)验证码长度:5
图3中A为保持其它参数不变,调整难易程度分别为-1.0、-0.5、0.0、0.5和1.0的验证码生成效果示意图。
图3中B为保持其它参数不变,调整图像品质分别为0.2、0.5和0.8的验证码生成效果示意图。
图3中C为保持其它参数不变,调整字符集分别为中文和英文的验证码生成效果示意图。
图3中D为保持其它参数不变,调整字符长度分别为3、4、7和10的验证码生成效果示意图。
参见图3,可以看出难易程度的引入可在不同页面需求下调整验证码的安全程度,本发明中难易程度可在局部范围内影响相邻字符,当间距拉大,字符会更清晰,难度则会降低。各个参数可以由用户设定,又可以在具体生成验证码字符时,发生变化,提高了验证码的复杂度,进一步提高了防破解能力。本发明生成的验证码图片可以有效做到防止机器人的攻击,方便、快捷地设置为符合当前页面需求的样式,适用于互联网中各种环节的应用。
参见图4,为本发明实施例提供的图片验证码装置示意图。
一种图片验证码生成装置,所述装置包括:
获取单元401,用于获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系。
第一生成单元402,用于根据所述第一验证码参数生成第二验证码参数;
第二生成单元403,用于随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;
显示单元404,用于将生成的验证码图片输出显示。
优选的,所述装置进一步包括一个用户输入设置接口,用于接收用户对第一验证码参数的输入。这里,用户是指互联网服务的提供者或管理者,并不是互联网服务的最终使用者。当用户输入了针对不同页面的第一验证码参数后,即保存第一验证码参数与页面的对应关系。
可选的,所述第一验证码参数还包括以下任意一种或多种参数:字符数量参数、字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。
进一步的,所述第二生成单元包括:
选取单元,用于从第一字符集中随机选取一个字符作为验证码字符。
第一判断单元,用于判断所述验证码字符是否为第一个字符;如果是,进入特效处理单元;如果否,进入距离估算与修正单元。
距离估算与修正单元,用于与前一个验证码字符进行距离估算与修正处理,获取处理结果,将所述处理结果输入特效处理单元。
特效处理单元,用于根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理。
第二判断单元,用于判断所述验证码字符是否为最后一个字符,如果否,进入选取单元,直至处理完最后一个验证码字符。
进一步的,所述特效处理单元包括以下任意一个或多个子单元:
第一特效处理子单元,用于当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理。
第二特效处理子单元,用于当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理。
第三特效处理子单元,用于当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理。
第四特效处理子单元,用于当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。
进一步的,所述装置还包括:
图片处理单元,用于根据所述难度参数,对所述验证码图片进行后期处理。
进一步的,所述图片处理单元包括以下任意一个或多个子单元:
第一图片处理子单元,用于对所述验证码图片中的验证码字符进行扭曲变形处理。
第二图片处理子单元,用于在所述验证码图片中加入随机噪点。
第三图片处理子单元,用于在所述验证码图片中加入随机干扰线。
第四图片处理子单元,用于在所述验证码图片中加入干扰字符。
进一步的,所述装置还包括:
色彩变换单元,用于对所述验证码图片进行领域色彩变换处理,使所述验证码图片中字符的前景、背景色调保持一致。
进一步的,所述显示单元还用于将生成的验证码图片进行插值处理,缩放到预设的大小,转换为预设格式数据输出显示。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (16)

1.一种图片验证码生成方法,其特征在于,所述方法包括:
获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;
根据所述第一验证码参数生成第二验证码参数;
随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;
将生成的验证码图片输出显示;
其中,当所述第一验证码参数还包括字符长度参数时,所述字符长度参数为大于等于N小于等于M的整数;其中,0<N≤M;
所述根据所述第一验证码参数生成第二验证码参数为:
在大于等于N小于等于M的整数中选取一个整数作为验证码字符的长度,所述选取过程是随机的。
2.根据权利要求1所述的方法,其特征在于,所述第一验证码参数还包括以下任意一种或多种参数:字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。
3.根据权利要求1所述的方法,其特征在于,所述随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片为:
从第一字符集中随机选取一个字符作为验证码字符;
判断所述验证码字符是否为第一个字符;如果是,直接进入特效处理步骤;如果否,进入与前一个验证码字符进行距离估算与修正处理步骤;
与前一个验证码字符进行距离估算与修正处理;
根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理;
判断所述验证码字符是否为最后一个字符,如果否,进入从第一字符集中随机选取一个字符作为验证码字符的步骤,直至处理完最后一个验证码字符。
4.根据权利要求3所述的方法,其特征在于,所述根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理包括以下任意一个或多个步骤:
当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理;
当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;
当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;
当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。
5.根据权利要求1所述的方法,其特征在于,在将生成的验证码图片输出显示之前,所述方法还包括:
根据所述难度参数,对所述验证码图片进行后期处理。
6.根据权利要求5所述的方法,其特征在于,所述根据所述难度参数,对验证码图片进行后期处理包括以下任意一个或多个步骤:
对所述验证码图片中的验证码字符进行扭曲变形处理;
在所述验证码图片中加入随机噪点;
在所述验证码图片中加入随机干扰线;
在所述验证码图片中加入干扰字符。
7.根据权利要求1所述的方法,其特征在于,在将生成的验证码图片输出显示之前,所述方法还包括:
对所述验证码图片进行领域色彩变换处理,使所述验证码图片中字符的前景、背景色调保持一致。
8.根据权利要求1所述的方法,其特征在于,所述将生成的验证码图片输出显示为:
将生成的验证码图片进行插值处理,缩放到预设的大小,转换为预设格式数据输出显示。
9.一种图片验证码生成装置,其特征在于,所述装置包括:
获取单元,用于获取与当前页面对应的第一验证码参数,所述第一验证码参数至少包括难度参数;其中,所述第一验证码参数与所述当前页面具有对应关系;
第一生成单元,用于根据所述第一验证码参数生成第二验证码参数;其中,当所述第一验证码参数还包括字符长度参数时,所述根据所述第一验证码参数生成第二验证码参数具体为:在大于等于N小于等于M的整数中选取一个整数作为验证码字符的长度,所述选取过程是随机的;所述字符长度参数为大于等于N小于等于M的整数;其中,0<N≤M;
第二生成单元,用于随机生成验证码的内容,根据所述验证码的内容、所述第一验证码参数以及所述第二验证码参数生成验证码图片;
显示单元,用于将生成的验证码图片输出显示。
10.根据权利要求9所述的装置,其特征在于,所述第一验证码参数还包括以下任意一种或多种参数:字体风格参数、字符集参数、图片品质参数、验证码图片大小参数。
11.根据权利要求9所述的装置,其特征在于,所述第二生成单元包括:
选取单元,用于从第一字符集中随机选取一个字符作为验证码字符;
第一判断单元,用于判断所述验证码字符是否为第一个字符;如果是,进入特效处理单元;如果否,进入距离估算与修正单元;
距离估算与修正单元,用于与前一个验证码字符进行距离估算与修正处理,获取处理结果,将所述处理结果输入特效处理单元;
特效处理单元,用于根据所述难度参数和第二验证码参数对所述验证码字符进行特效处理;
第二判断单元,用于判断所述验证码字符是否为最后一个字符,如果否,进入选取单元,直至处理完最后一个验证码字符。
12.根据权利要求11所述的装置,其特征在于,所述特效处理单元包括以下任意一个或多个子单元:
第一特效处理子单元,用于当所述难度参数大于预设的第一阈值时,对所述验证码字符进行空心章效果处理;
第二特效处理子单元,用于当所述难度参数大于预设的第二阈值时,对所述验证码字符进行上划线或下划线效果处理;
第三特效处理子单元,用于当所述难度参数大于预设的第三阈值时,对所述验证码字符进行空心效果处理;
第四特效处理子单元,用于当所述难度参数大于预设的第四阈值时,对所述验证码字符进行立体效果处理。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
图片处理单元,用于根据所述难度参数,对所述验证码图片进行后期处理。
14.根据权利要求13所述的装置,其特征在于,所述图片处理单元包括以下任意一个或多个子单元:
第一图片处理子单元,用于对所述验证码图片中的验证码字符进行扭曲变形处理;
第二图片处理子单元,用于在所述验证码图片中加入随机噪点;
第三图片处理子单元,用于在所述验证码图片中加入随机干扰线;
第四图片处理子单元,用于在所述验证码图片中加入干扰字符。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
色彩变换单元,用于对所述验证码图片进行领域色彩变换处理,使所述验证码图片中字符的前景、背景色调保持一致。
16.根据权利要求9所述的装置,其特征在于,所述显示单元还用于将生成的验证码图片进行插值处理,缩放到预设的大小,转换为预设格式数据输出显示。
CN2012101353961A 2012-05-03 2012-05-03 一种图片验证码生成方法和装置 Expired - Fee Related CN102663672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101353961A CN102663672B (zh) 2012-05-03 2012-05-03 一种图片验证码生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101353961A CN102663672B (zh) 2012-05-03 2012-05-03 一种图片验证码生成方法和装置

Publications (2)

Publication Number Publication Date
CN102663672A CN102663672A (zh) 2012-09-12
CN102663672B true CN102663672B (zh) 2013-12-04

Family

ID=46773151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101353961A Expired - Fee Related CN102663672B (zh) 2012-05-03 2012-05-03 一种图片验证码生成方法和装置

Country Status (1)

Country Link
CN (1) CN102663672B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731403B (zh) * 2012-10-12 2017-06-23 阿里巴巴集团控股有限公司 一种验证码生成系统及方法
CN103970781A (zh) * 2013-01-30 2014-08-06 深圳市同洲电子股份有限公司 嵌入式浏览器图片解码装置及方法
CN104298912B (zh) * 2013-07-15 2018-12-11 深圳市腾讯计算机系统有限公司 抗破解的验证码实现方法、生成方法及装置
CN103873481B (zh) * 2014-03-31 2018-01-30 百度在线网络技术(北京)有限公司 验证方法、开放平台、服务端及验证系统
CN105323227A (zh) * 2014-07-30 2016-02-10 腾讯科技(深圳)有限公司 验证码图片生成方法、装置及电子设备
CN104408194B (zh) * 2014-12-15 2017-11-21 北京国双科技有限公司 网络爬虫请求的获取方法及装置
CN104468616B (zh) * 2014-12-24 2019-04-05 广州华多网络科技有限公司 一种图片验证码的生成方法及客户端
CN104700441B (zh) * 2015-02-05 2018-03-30 北京京东尚科信息技术有限公司 一种图片验证码生成方法及系统
CN106161023B (zh) * 2015-04-02 2019-11-05 深圳市腾讯计算机系统有限公司 基于图片验证码的验证响应方法和系统
CN106161388B (zh) * 2015-04-16 2020-07-28 深圳市腾讯计算机系统有限公司 信息验证方法、服务器及系统
CN105512596B (zh) * 2015-11-27 2018-01-19 深圳Tcl数字技术有限公司 去除二维码扫描干扰的处理方法及系统
CN107154924B (zh) 2016-03-04 2021-01-05 阿里巴巴集团控股有限公司 基于验证码的验证处理方法及装置
CN106778199A (zh) * 2016-11-29 2017-05-31 深圳中兴网信科技有限公司 图片验证码的处理方法及处理装置
CN109711136A (zh) * 2017-10-26 2019-05-03 武汉极意网络科技有限公司 存储设备、验证码图片生成方法和装置
CN108874756B (zh) * 2018-06-29 2022-05-20 广东智媒云图科技股份有限公司 一种验证码优化方法
CN109117624A (zh) * 2018-08-03 2019-01-01 上海掌门科技有限公司 生成验证码图像的方法、电子设备和计算机可读介质
CN109495275A (zh) * 2018-12-27 2019-03-19 北京航天福道高技术股份有限公司 生成随机验证码的设置方法
CN112565292B (zh) * 2020-12-22 2023-05-02 咪咕文化科技有限公司 验证码验证方法、电子设备及存储介质
CN112948812B (zh) * 2021-03-29 2022-07-08 天津车之家数据信息技术有限公司 一种验证码的分配方法、计算设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006123872A1 (en) * 2005-05-19 2006-11-23 Chang-Mo Kim Method of wireless contents broadcasting service and system for implementing the same
CN101237324B (zh) * 2007-01-31 2010-12-08 中国移动通信集团公司 图片验证码的生成方法及生成装置
CN101178813B (zh) * 2007-12-19 2010-04-14 腾讯科技(深圳)有限公司 一种图片验证码的生成方法和装置
CN102255880A (zh) * 2011-01-20 2011-11-23 北京开心人信息技术有限公司 一种二级图片验证码的实现方法及系统
CN102255913A (zh) * 2011-07-14 2011-11-23 北京百度网讯科技有限公司 一种用于基于验证安全等级提供语音验证码的方法与设备
CN102360505B (zh) * 2011-08-16 2013-11-13 北京新媒传信科技有限公司 一种图形验证码生成方法

Also Published As

Publication number Publication date
CN102663672A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102663672B (zh) 一种图片验证码生成方法和装置
CN102831568B (zh) 一种生成验证码图片的方法和装置
KR101791798B1 (ko) 인터넷 주소 식별 방법 및 장치
US11645379B2 (en) Security verification method and relevant device
CN102893287B (zh) 用于基于屏蔽的质询响应测试的方法和装置
CN104994060B (zh) 一种用于为用户登录提供验证的方法和装置
CN103312512A (zh) 一种图片验证码的生成方法及装置、身份验证方法及装置
CN104834839B (zh) 一种条码生成方法、基于条码的鉴权方法及相关终端
CN109409349B (zh) 信贷证件鉴别方法、装置、终端及计算机可读存储介质
CN108647683B (zh) 一种基于频域加噪的字符对抗验证码生成方法和系统
CN101237324A (zh) 图片验证码的生成方法及生成装置
EP3998583A2 (en) Method and apparatus of training cycle generative networks model, and method and apparatus of building character library
US20220189083A1 (en) Training method for character generation model, character generation method, apparatus, and medium
CN113344826B (zh) 图像处理方法、装置、电子设备及存储介质
EP3264309B1 (en) Information processing method and terminal, and a computer storage medium
CN109902475B (zh) 验证码图像生成方法、装置和电子设备
CN105551044B (zh) 一种图片对比方法和装置
CN108108299B (zh) 一种用户界面测试方法及装置
CN107844696B (zh) 一种验证码干扰方法及服务器
CN111368835A (zh) 验证码自动识别方法及装置
CN104935436A (zh) 一种用户验证方法及系统
CN115376137B (zh) 一种光学字符识别处理、文本识别模型训练方法及装置
CN110334301B (zh) 一种页面还原方法及装置
CN108200043B (zh) 图片验证码验证方法和图片验证码验证装置
CN109189683A (zh) 一种用于app测试中验证码自动输入的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210926

Address after: 310051 Room 408, building 3, No. 399, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Netease Zhiqi Technology Co.,Ltd.

Address before: 310013 Room 604-605, 6th floor, 18 Jiaogong Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131204