一种二级图片验证码的实现方法及系统技术领域
本发明涉及一种二级图片验证码的实现方法及系统,属于网络通信领域。
背景技术
图片验证码的主要功能是区分网络用户是机器还是人,强制人机交互来抵御机器
自动化攻击。因为机器破解验证码的成功率比人低的多,所以不少网站为了防止网络
用户利用机器批量注册、登录、论坛灌水、恶意破解密码、刷票等行为,都采用了图
片验证码作为网站通行的方式。
对于现有的图片验证码,人通过验证的概率大概在80%~90%,而机器通过验证的
成功率为30%左右。但是如果机器进行大量、暴力的破解,不仅会通过验证,使安全
认证的可靠性和网络公平性下降,也会造成大量数据冗余,增加网站服务器的压力。
发明内容
本发明的目的在于,提供一种二级图片验证码的实现方法及系统,它能防止机器暴力破
解验证码行为,增强安全认证的可靠性和网络公平性,减小网站服务器压力。
为解决上述技术问题,本发明采用如下的技术方案:一种二级图片验证码的实现方法,
包括以下步骤:
S1,后台服务器监测用户输入一级图片验证码的错误次数是否达到预设的验证码阈值;
S2,当用户输入验证码的错误次数达到预设的验证码阈值,后台服务器生成二级图片验证
码;
S3,客户端显示二级图片验证码。
所述一级图片验证码是用户登录、发帖、评论等出现异常行为的情况下,网页自动弹出
的。异常行为包括:
a.一台计算机使用同一个IP地址输入用户名和密码登录时出现3次错误;
b.一台计算机使用同一个IP地址一天发帖次数超过20次;
c.一台计算机使用同一个IP地址对同一帖子连续评论超过10次。
前述的一种二级图片验证码的实现方法中,所述步骤S1中的验证码阈值是按照网页的
重要程度设置的,验证码阈值的大小与网页的重要程度成反比,网页的重要程度越高,验
证码阈值越小。
前述的一种二级图片验证码的实现方法中,所述二级图片验证码的图片辨识度低于一级
图片验证码的图片辨识度。
前述的一种二级图片验证码的实现方法中,所述步骤S2中后台服务器生成二级图片验
证码包括:
S21,随机生成N个字符,并标识这N个字符;所述字符包括字母、数字、汉字和符号;二
级图片验证码的字符数N多于一级图片验证码的字符数,增加了验证码的复杂度;
S22,从颜色库中随机选取颜色分配给图片的背景和字符;
S23,将图片分成若干区域,从每个区域中抽取一个点,连接所有点形成干扰线;
S24,加粗字符使相邻两个字符有重叠部分;
S25,将干扰线和字符进行随机扭曲。
实现前述方法的一种二级图片验证码的实现系统,它包括:
监测模块,用于后台服务器监测用户输入一级图片验证码的错误次数是否达到预设的验证
码阈值;
生成模块,用于当用户输入验证码的错误次数达到预设的验证码阈值,后台服务器生成二
级图片验证码;
显示模块,用于客户端显示二级图片验证码;
其中,监测模块、生成模块和显示模块顺次连接。
所述一级图片验证码是用户登录、发帖、评论等出现异常行为的情况下,网页自动弹出
的。异常行为包括:
a.一台计算机使用同一个IP地址输入用户名和密码登录时出现3次错误;
b.一台计算机使用同一个IP地址一天发帖次数超过20次;
c.一台计算机使用同一个IP地址对同一帖子连续评论超过10次。
前述的一种二级图片验证码的实现系统中,所述监测模块中的验证码阈值是按照网页的
重要程度设置的,验证码阈值的大小与网页的重要程度成反比,网页的重要程度越高,验
证码阈值越小。
前述的一种二级图片验证码的实现系统中,所述二级图片验证码的图片辨识度低于一级
图片验证码的图片辨识度。
前述的一种二级图片验证码的实现系统,所述生成模块包括:
生成标识模块,用于随机生成N个字符,并标识这N个字符;所述字符包括字母、数字、
汉字和符号;二级图片验证码的字符数N多于一级图片验证码的字符数,增加了验证码的
复杂度;
颜色分配模块,用于从颜色库中随机选取颜色分配给图片的背景和字符;
干扰模块,用于将图片分成若干区域,从每个区域中抽取一个点,连接所有点形成干扰
线;
加粗模块,用于加粗字符使相邻两个字符有重叠部分;
扭曲模块,用于将干扰线和字符进行随机扭曲;
其中,生成标识模块、颜色分配模块、干扰模块、加粗模块和扭曲模块顺次连接。
与现有技术相比,本发明自动监测用户输入的一级图片验证码的错误次数是否达到网站
服务商预设的验证码阈值,如果达到预设的验证码阈值,就会生成比一级图片验证码复杂
度更高的二级图片验证码。所述验证码阈值的大小与网页的重要程度成反比,网页的重要
程度越高,验证码阈值越小,更智能地限制机器破解验证码行为;二级图片验证码的字符
数较之一级图片验证码更多,又对字符进行干扰扭曲,使得图片辨识度变低,使机器通过
验证的概率从30%降低到20%以下,防止了机器暴力破解验证码行为,增强了安全认证的
可靠性和网络公平性,使服务器对机器批量注册、登录等行为的网络和存储消耗降低
了30%左右,减小了网站服务器压力。
附图说明
图1是本发明的一种实施例的结构示意图;
图2是本发明的一种实施例的工作流程图。
附图标记:1-监测模块,2-生成模块,3-显示模块,4-字符生成模块,5-颜色分配模
块,6-干扰模块,7-加粗模块,8-扭曲模块。
下面结合附图和具体实施方式对本发明作进一步的说明。
具体实施方式
本发明的实施例:一种二级图片验证码的实现方法,包括以下步骤:
S1,后台服务器监测用户输入一级图片验证码的错误次数是否达到预设的验证码阈值;
S2,当用户输入验证码的错误次数达到预设的验证码阈值,后台服务器生成二级图片验证
码;
S3,客户端显示二级图片验证码。
所述一级图片验证码是用户登录、发帖、评论等出现异常行为的情况下,网页自动弹出
的。异常行为包括:
a.一台计算机使用同一个IP地址输入用户名和密码登录时出现3次错误;
b.一台计算机使用同一个IP地址一天发帖次数超过20次;
c.一台计算机使用同一个IP地址对同一帖子连续评论超过10次。
所述步骤S1中的验证码阈值是按照网页的重要程度设置的,验证码阈值的大小与网页
的重要程度成反比,网页的重要程度越高,验证码阈值越小。
所述二级图片验证码的图片辨识度低于一级图片验证码的图片辨识度。
所述步骤S2中后台服务器生成二级图片验证码包括:
S21,随机生成N个字符,并标识这N个字符;所述字符包括字母、数字、汉字和符号;二
级图片验证码的字符数N多于一级图片验证码的字符数,增加了验证码的复杂度;
S22,从颜色库中随机选取颜色分配给图片的背景和字符;
S23,将图片分成若干区域,从每个区域中抽取一个点,连接所有点形成干扰线;
S24,加粗字符使相邻两个字符有重叠部分;
S25,将干扰线和字符进行随机扭曲。
实现前述方法的一种二级图片验证码的实现系统,结构如图1所示,它包括:
监测模块1,用于后台服务器监测用户输入一级图片验证码的错误次数是否达到预设的验证
码阈值;
生成模块2,用于当用户输入验证码的错误次数达到预设的验证码阈值,后台服务器生成二
级图片验证码;
显示模块3,用于客户端显示二级图片验证码;
其中,监测模块1、生成模块2和显示模块3顺次连接。
所述一级图片验证码是用户登录、发帖、评论等出现异常行为的情况下,网页自动弹出
的。异常行为包括:
a.一台计算机使用同一个IP地址输入用户名和密码登录时出现3次错误;
b.一台计算机使用同一个IP地址一天发帖次数超过20次;
c.一台计算机使用同一个IP地址对同一帖子连续评论超过10次。
所述验证码阈值是按照网页的重要程度设置的,它的大小与网页的重要程度成反比,网
页的重要程度越高,验证码阈值越小。
所述二级图片验证码的图片辨识度低于一级图片验证码的图片辨识度。
所述生成模块2包括:
生成标识模块4,用于随机生成N个字符,并标识这N个字符;所述字符包括字母、数
字、汉字和符号;二级图片验证码的字符数N多于一级图片验证码的字符数,增加了验证
码的复杂度;
颜色分配模块5,用于从颜色库中随机选取颜色分配给图片的背景和字符;
干扰模块6,用于将图片分成若干区域,从每个区域中抽取一个点,连接所有点形成干扰
线;
加粗模块7,用于加粗字符使相邻两个字符有重叠部分;
扭曲模块8,用于将干扰线和字符进行随机扭曲;
其中,生成标识模块4、颜色分配模块5、干扰模块6、加粗模块7和扭曲模块8顺次连
接。
本发明的一种实施例的工作流程:(如图2所示)
S1,后台服务器监测用户输入一级图片验证码的错误次数是否达到预设的验证码阈值;
S2,当用户输入验证码的错误次数达到预设的验证码阈值,后台服务器生成二级图片验证
码;
S3,客户端显示二级图片验证码。
本发明的一种实施例的二级图片验证码生成的工作流程:
S21,随机生成N个字符,并标识这N个字符;
S22,从颜色库中随机选取颜色分配给图片的背景和字符;
S23,将图片分成若干区域,从每个区域中抽取一个点,连接所有点形成干扰线;
S24,加粗字符使相邻两个字符有重叠部分;
S25,将干扰线和字符进行随机扭曲。
实例说明:当后台服务器上的监测模块1监测到用户输入一级图片验证码的错误次数达
到网站服务商预设的验证码阈值,后台服务器上的生成模块2会生成二级图片验证码。所
述验证码阈值是按照网页的重要程度设置的,它的大小与网页的重要程度成反比,网页的
重要程度越高,验证码阈值越小,例如:
a.对于用户注册页面,同一台计算机每天使用同一个IP地址被允许输入一级图片验证码的
次数最大值,即验证码阈值为3次;
b.对于用户登录页面,同一台计算机每天使用同一个IP地址被允许输入一级图片验证码的
次数最大值,即验证码阈值为5次;
c.对于加入群或者空间页面,同一台计算机每天使用同一个IP地址被允许输入一级图片验
证码的次数最大值,即验证码阈值为5~6次。
d.对于论坛回帖页面,同一台计算机每天使用同一个IP地址被允许输入一级图片验证码的
次数最大值,即验证码阈值为6次。
生成模块2上的生成标识模块4随机生成N个字符,并标识这N个字符;生成模块2
上的颜色分配模块5从颜色库中随机选取颜色分配给图片的背景和字符;生成模块2上的干
扰模块6将图片分成若干区域,从每个区域中抽取一个点,连接所有点形成干扰线;生成
模块2上的加粗模块7加粗字符,使相邻两个字符有重叠部分;生成模块2上的扭曲模块8
将干扰线和字符进行随机扭曲。通过上述模块生成的二级图片验证码的图片比一级图片验
证码的图片复杂度高,辨识度也比一级图片验证码的图片辨识度低,使得机器通过验证的
概率降低。最后用户通过客户端上的显示模块3显示的二级图片验证码进行二级验证。