图片验证码的实现方法

文档序号:7851114阅读:386来源:国知局

专利名称::图片验证码的实现方法
技术领域
:本发明涉及一种在网络中用于防止页面被恶意程序攻击的图片验证码实现方法。
背景技术
:目前,在网络浏览器界面中多采用数字或数字加图片背景的形式作为用户注册输入验证码,保证网页中注册信息及信息的安全性。在输入用户名及静态密码后,会增加一个随机的认证码,此密码多数情况是采用数字、字母或数字与字母的结合等认证码方式。用户通过肉眼识别其中验证码信息,输入表单提交网站验证,验证成功后才能正确登录使用。当前使用比较流行的是生成4个随机数字和杂乱背景的图片(即增加一定的干扰像素),数字和背景颜色在每一次输入请求时随机变化。现有的数字认证码形式比较单一,不能完全适应网络的发展,特别是保证防止网络中网页串改及恶意注册的需要。
发明内容本发明要解决的技术问题是提供一种图片验证码实现方法,它可以防止页面被恶意程序攻击并进行恶意注册,增强密码破解的难度,增强安全认证的可靠性。为解决上述技术问题,本发明图片验证码实现方法,在用户每一次请求的时候,系统从已经存在的大量图片列表中随机取出N(N≥4)张不完全重复的图片,把N张图片的序号和名称放入用户会话中,并将图片有效像素的分布保存在一个二维矩阵中,组合成为一张图片作为验证图片显示在对话框中,以便用户验证使用;从N张已经存在的图片中随机选取M张图片作为验证图片中用户选择的图片,其中,1≤M≤N/2,并把该图片的名称和序号保存在用户会话中;用户在使用曾选择的图片作为图片验证码进行验证过程中,如果从页面中显示的N张图片选中图片验证码,则验证通过,如果点击错误,则对话窗口出现输入验证码错误的信息提示。由于采用本发明的方法,采用图片形式作为认证码输入的形式,通过大量的图片,类似的颜色,随机的位置和图片来加强被破解的难度。这样既克服了数字认证码形式比较单一的不足,又有利于保证防止网页被恶意程序攻击等。采用0~9这10个数字组合成的验证码,网页设计中的普通脚本即可读到字符串形式的数字。本发明提出的图片验证码的形式,其安全性非常高,如果恶意攻击者想按照以前数字验证的模式进行破解,必须要解决“如何提取图片中的验证“这一问题。本发明有效地利用了图片验证中的复杂及防破解难度大这一特点,保证了例如网络注册等恶意攻击上的安全性。具体实施例方式本发明图片验证码实现方法,是一种使用N(N≥4)张随机图片进行认证的密码认证方法。首先,在系统图片库中放置大量的图片,用户点击输入验证码的窗口时,由系统在像素的范围内(例如,96*96像素)为每张图片随机寻找N个不同的位置,作为N张图片的显示位置,并把这N个位置的坐标保存在用户会话中。然后按照图片的序号和位置把N张图片生成一张图片。通过一个web页面把该图片显示到用户的浏览器中。同时把用户要选择的图片名称也显示到用户浏览器中。在用户每一次请求的时候,从N张已经存在的图片中随机取M张图片作为验证图片中用户选择的图片(即图片验证码),并把该图片验证码的名称和序号保存在用户会话中。其中,1≤M≤N/2。生成的图片验证码作为页面中Form(表单)的提交按钮,用户按照页面的提示点击验证码图片上的相应图片。然后页面提交到服务器,在服务器端获取用户点击图片的坐标。根据所述的生成图片的位置,把从客户端获取的用户点击的位置换算成每个图片的坐标体系,然后遍历保存在用户会话中的每个图片的二维矩阵。如果该坐标落在系统制定要选择的图片有效像素的范围内,并且该坐标上没有图片重叠的话,就认为用户选择正确;如果该坐标上有图片重叠,则显示在最外层,也就是图片序号最大的图片是系统指定用户要选择的图片,也认为用户选择是正确的;否则认为用户选择是错误的。验证完成后,把用户该次的会话信息清除。生成的验证图片是带有Alpha通道(设置数字图像透明度)的PNG(PortableNetworkGraphics一种图像格式)矢量透明图片。在进行图片透底处理的时候不会留下黑边,图片大小为48*48像素。作为验证码的图片采用颜色接近,甚至是相同的大量的图片,能有效限制程序破解者通过颜色来破译认证程序,同时N幅图片的放置是重叠的,重叠的程度是随机的,使得破解者无法得到一个完整的图片轮廓,增强了防破解的难度。本发明的图片验证码与目前使用的数字及符号验证码比较,其输入方式采用直接点击选择,不需要输入文字或符号信息,简捷、实用,防破解功能强,适用于各种需要认证码的环境。权利要求1.一种图片验证码实现方法,其特征在于在用户每一次请求的时候,系统从已经存在的大量图片列表中随机取出N张不完全重复的图片,其中,N≥4;把N张图片的序号和名称放入用户会话中,并将图片有效像素的分布保存在一个二维矩阵中,组合成为一张图片作为验证图片显示在对话框中,以便用户验证使用;从N张已经存在的图片中随机选取M张图片作为验证图片中用户选择的图片,其中,1≤M≤N/2,并把该图片的名称和序号保存在用户会话中;用户在使用曾选择的图片作为图片验证码进行验证过程中,如果从页面中显示的N张图片选中图片验证码,则验证通过,如果点击错误,则对话窗口出现输入验证码错误的信息提示。2.根据权利要求1所述的图片验证码实现方法,其特征在于所述将随机取出的N张图片组合成为一张图片的方法是,首先,在系统图片库中放置大量的图片,用户点击输入验证码的窗口时,由系统在像素范围内为每张图片随机寻找N个不同的位置,作为N张图片的显示位置,并把这N个位置的坐标保存在用户会话中;然后,按照图片的序号和位置把N张图片合成一张图片。3.根据权利要求1或2所述的图片验证码实现方法,其特征在于所述由N张图片生成的一张图片,通过一个web页面把该图片显示到用户的浏览器中,同时把用户要选择的图片名称也显示到用户浏览器中。4.根据权利要求1或2所述的图片验证码实现方法,其特征在于使用图片验证码进行验证的过程是生成的图片验证码作为页面中Form的提交按钮,用户按照页面的提示点击验证码图片上的相应图片;然后页面提交到服务器,在服务器端获取用户点击图片的坐标;根据生成图片的位置,把从客户端获取的用户点击的位置换算成每个图片的坐标体系,然后遍历保存在用户会话中的每个图片的二维矩阵;如果该坐标落在系统制定要选择的图片有效像素的范围内,并且该坐标上没有图片重叠的话,就认为用户选择正确;如果该坐标上有图片重叠,则显示在最外层,也就是图片序号最大的图片是系统指定用户要选择的图片,也认为用户选择是正确的;否则认为用户选择是错误的;验证完成后,把用户该次的会话信息清除。5.根据权利要求1或2所述的图片验证码实现方法,其特征在于生成的验证图片是带有Alpha通道的PNG矢量透明图片。6.根据权利要求1或2所述的图片验证码实现方法,其特征在于生成的验证图片采用颜色接近或相同的大量的图片,同时N幅图片的放置是重叠的,重叠的程度是随机的。全文摘要本发明公开了一种在网络中用于防止页面被恶意程序攻击的图片验证码实现方法,采用图片形式作为认证码,系统从已经存在的大量图片列表中随机取出N(N≥4)张不完全重复的图片,并将图片有效像素的分布保存在一个二维矩阵中,组合成为一张图片作为验证图片显示在对话框中;从N张已经存在的图片中随机选取M张图片作为验证图片中用户选择的图片,其中,1≤M≤N/2;用户在使用图片验证码进行验证过程中,如果从页面中显示的N张图片选中图片验证码,则验证通过,如果点击错误,则对话窗口出现输入验证码错误的信息提示。本发明可以防止网络中浏览页面被恶意程序攻击,可以防止人为的恶意注册,增强网络信息的安全性。文档编号H04L9/32GK1988442SQ20051011190公开日2007年6月27日申请日期2005年12月23日优先权日2005年12月23日发明者梁中华申请人:上海盛大网络发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1