验证码的设计与实现

2024-09-11

验证码的设计与实现(共5篇)

验证码的设计与实现 篇1

随着计算机网络的迅猛发展,网络安全已经成为当今网络研究的重点方向。通常人们可以通过网页注册成为网站的用户并合理浏览、使用该网站的资源,但是有时网站也会受到客户机的恶意攻击,如:非法用户使用机器人程序批量注册和登录、暴力破解密码、恶意灌水、非法使用网络资源等。当今流行的判断用户合法性的手段之一就是使用验证码技术,这相当于为合法用户除用户名、密码的匹配外,又设置了一道防火墙。因此,验证码技术在网站上得到了广泛的使用,而最为广泛采用的是图片验证码。

所谓图片验证码,就是通过程序产生一串随即产生的字符和数字的序列,并生成一副图片,并对该图片进行干扰像素的设定,由用户识别图片中的字符序列,在指定位置输入并提交给网站进行验证,验证成功后方能执行下一步操作。

1 常见的验证码类型

1)文本验证码:在网页中以文本的形式写在用户浏览到的网页中,也是最原始的验证码,安全性较差,目前很少网站采用这种形式的验证码。

2)图片验证码:在网页中以图片的形式将验证码呈现给用户,该形式可以在一定程度上有效防止非法用户对网站的攻击,但是通过一些图像识别技术,还是有可能破解图片验证码的信息,因此需要对图片验证码进行模糊化,即产生干扰,降低被识别的概率。

3)邮件验证码:用户在网页中输入自己的邮箱地址,系统将以邮件的形式将验证码发送到用户指定的邮箱中,从时间成本和效率上来说,这种方式较为麻烦。

4)手机验证码:网站要求用户提供自己的手机号码,系统以短信的形式将验证码发送到用户手机上。这种方式较易受到用户的抵触,除银行、通讯等较为隐私的服务外,一般网站不采用这种形式。

综上所述,使用图片验证码是以上验证码类型中较为合适的方式。

2 产生图片验证码的步骤及代码

本文采用ASP.NET技术,编程语言采用C#,实现图片验证码,主要步骤如下:

1)首先创建一个“网站”项目,如笔者创建的为“web Site2”。

2)在该网站自动创建的默认主页即“Default.aspx”页面的设计窗口中放置一个文本框(ID:Text Box_code)及一个确定按钮(ID Button_commit)。代码如下:

5)由于源代码中涉及到绘图,故需要引用“System.Drawing”。

6)转到“Default.aspx”页面的代码窗口,在文本框及确定按钮之间添加一个图片标签,并设置其src属性为“Create VCode.aspx”。代码如下:

此时,若运行网站,将得到如图1所示的效果。

但是尚未对该验证码进行验证,而其实验证码已经保存在Session对象中,故对验证码验证的过程其实是判断用户输入的验证码与Session中的是否一致。

3 图片验证码的验证

1)选择“Default.aspx”页面的代码窗口,为确定按钮设定事件及方法。代码如下:

上述代码编写了Button_commit_Click方法,该方法用于获取用户在文本框中输入的信息,并与Session中的信息进行比对,如果两者一致,将得到如图2所示的效果,用户可进行下一步操作。若输入不一致,将得到如图3所示的效果,图片验证码将自动刷新,由用户重新输入。

4 结束语

验证码技术是为防止非法用户恶意攻击、批量注册的有效方法,用ASP.NET技术实现带干扰的图片验证码,具有使用价值。但是本文中使用的字符较少,仍可被较高级的图片识别技术准确识别。因此,仍具有安全隐患,具体解决方法还有待于进一步研究。

摘要:该文讲述使用ASP.NET技术实现当今互联网登陆模块中流行的验证码,简述验证码的原理、作用、产生方式、并对该验证码进行有效验证。通过该文的阐述,可以帮助网络用户加强互联网安全性的意识,为网站编程爱好者提供技术的参考,防止非法用户使用注册机批量注册、登陆网站。

关键词:互联网,验证码,ASP.NET,C#,验证

参考文献

[1]谢世煊.C#程序设计及基于工作过程的项目开发[M].西安:西安电子科技大学出版社,2010.

[2]密君英.ASP.NET动态网站开发技术实用教程[M].北京:中国电力出版社,2008.

[3]王小科,吕双.C#从入门到精通[M].北京:清华大学出版社,2009.

网页验证码的研究与实现 篇2

在计算机网络高速发展的今天,网络安全问题越来越被人们所重视。大部分的网站都采用了会员登录制,必须首先注册成为会员后才能正常使用网站的各项功能(如BBS论坛、电子商务网站等)。但是总有那么一些不法分子利用网站在设计上的漏洞批量注册账号用以论坛灌水、刷信誉、反复享受网站的各项优惠政策,这些行为给普通用户和网站管理者带来了极大的烦恼。针对这一现象,各项安全技术孕育而生,验证码是其中最为常见的一种技术。

验证码是防范网络上有人利用机器自动批量注册、暴力破解密码的一种安全措施,它可以甄别访问者是个人用户还是机器。从技术上看,验证码其实是服务器端随机生成的一串字符,它一般直接显示在网页上,由浏览器端用户肉眼识别字符信息,输入表单后提交到网站服务器验证,验证成功后才能继续访问网页[1]。验证码的实现方法很多,PHP技术是目前常用的网站开发环境,使用这种技术能方便、快速有效地实现验证码功能,增强网站的安全性和可靠性。

1 关键技术分析

验证码技术原理是:在每次向网页提交信息的时候,系统会自动随机产生一串数字或符号(即验证码),只有在指定的地方正确输入这些验证码才能成功提交信息[2]。

验证码的形式很多,有数字验证码、图形验证码、文字验证码。利用图像处理技术创建的验证码更加丰富多彩,要利用该技术必须首先在PHP技术中加载GD库以及完成Jpgraph的安装和配置。

1.1 GD库和Jpgraph绘图组件

GD库是一个开放的、动态创建图像的、源代码公开的函数库,用于对图像的处理。GD库在PHP中是默认安装的,但要激活GD库,需要设置php.ini文件[3]]。将文件中的“;extension=php_gd2.dll”选项前的分号删除后保存并重新启动Apache,加载成功后可以使用phpinfo()函数查看GD函数库的信息,从而验证该函数库是否加载成功。

Jpgraph是一个强大的绘图组件,可以根据用户提供的数据调用绘图函数在页面上绘制各种图形,Jpgraph组件的运行需要GD库的支持,使用Jpgraph组件和GD库就可以实现丰富多彩的图形图像。而在产生验证码过程中,给验证码添加彩色背景比呆板的纯数字验证码更加美观,更能引起用户的关注。

1.2 Smarty模板

Smarty模板是PHP项目开发的常用模板,可以实现网页代码控制和页面美工分离,从而使得开发过程更加清晰明了,也利于项目后期的修改和完善。而且Smarty运行速度极快;效率高;模板只需被解析一次,无需重复[4],正是由于Smarty模板的高效性以及合理的开发模式,使得Smarty模板在网站开发过程中成为开发人员的有力臂膀。

2 验证码技术实现

2.1 在PHP文件中利用GD函数生成验证码

为了给验证码添加如下图所示的随机背景,可以使用GD函数库中的Imagecreate()函数创建一个画布,使用mt_rand()函数随机生成验证数字的字体、位置、颜色,这样不仅可以使页面每次刷新后都能显示不同样式的验证码,而且也可以有效的防止对网站的恶意攻击。

产生验证码的核心文件yzm.php如下所示:

2.2 在网页模板中加载PHP文件输出验证码

要在网页上显示验证码只需要在页面加载过程中调用上述产生的两个js函数即可,在页面载入后显示随机验证码,点击“换一张”链接可以实现验证码的刷新显示。实现效果如图2所示。

网站的安全问题是网民们考虑的首要问题,因此网站应该要向用户提供一个安全的环境,使用验证码技术能有效的避免网站上常见的“身份欺骗”现象,使网站用户能享有一个公平、安全的网络环境。因此,网站设计者在设计网站时要充分考虑到安全问题,采用多种技术提高网站的安全性,同时,用户也要提高自己的安全意识,消除安全隐患。

摘要:随着计算机通信技术的日趋成熟,网络与人们的关系愈加密切,网络安全问题越来越被人们所重视。网页验证码是一种常用的网络安全技术,可以有效防止不法分子非法大量注册网站账号,保障网站的正常运转,提高网站系统的安全性和可靠性。本文介绍了网页验证码的基本工作原理,并用PHP技术实现了在网页注册登录界面通过验证码验证用户的功能。

关键词:PHP,验证码,网络安全

参考文献

[1]龚莎.网页验证码技术综述[J].信息与电脑,2014.

[2]欧志敏.关于验证码原理与应用的探讨[J].华南金融电脑,2007.

[3]明日科技.PHP从入门到精通[M].北京:清华大学出版社,2012.

验证码的设计与实现 篇3

1 验证码的作用与原理

验证码是Completely Automated Public Turing test to tell Computers and Humans Apart的缩写。中文意思是“全自动区分计算机和人类的图灵测试”。实际上,验证码就是将一串随机产生的数字或符号,生成一副图片,图片里加上一些干扰元素,由用户肉眼识别其中的验证码信息,然后输入表单提交网站验证,验证成功后才能使用某项功能。

验证码通常用在用户登录或留言的网页界面中,当用户在浏览器端输入验证码之后,将用户名、密码和验证码等信息提交到服务器,服务端获取用户的提交之后,判断用户提交的验证码字符与服务器端保存的字符是否相同。如果相同,则用户提交信息验证通过;否则将提交没有通过验证的提示信息。

验证码的验证原理及流程如图1所示。

2 验证码的几种验证方式

随着人们对网络安全的日益重视,验证码技术的发展越来越迅速。通常情况下,验证码有以下几种验证方式。

(1)随机数字验证码,这种验证方式通常是一组随机的数字字符串,一般由4位数字组成。随机数字验证码是最原始的验证码,验证原理比较简单,验证作用不是很大,以网络黑客的安全防范作用也不是很强,因此在网站应用中也很少见。

(2)图文验证码,随机数字验证只包含数字,与随机数字验证不同,图文验证包括图片和文字两部分。在使用图文验证之前,需要首先生成带有背景图片和字符的验证码。这是一种最常用的验证方式。

(3)汉字验证码,将验证码中的字符换成汉字的图文验证码便是汉字验证码。相对于包含有字母和数字的图文验证码而言,汉字验证码比较难于识别,因此使用汉字验证码对网站的安全防范更高。本文着重对汉字验证码进行研究与实现。

3 汉字验证码

3.1 汉字验证码的实现流程

汉字验证码也是一种图文验证码。汉字验证码包括图片和汉字两部分。设计汉字验证码模块的实现流程如图2所示。

3.2 汉字验证码的实现

在使用汉字验证码进行验证之前,首先需要生成带有背景图片和汉字字符的验证码。生成汉字验证码的关键代码是:

4 结语

验证码技术是网络中应用比较广泛的技术,为了防止一些网络机器人的自动注册和自动发帖,目前网站和论坛的注册和发帖功能都需要验证码。汉字验证码代码中应用GB2312编码表和Random对象相结合的方式,生成随机汉字字符串。在生成背景图片时,首先需要设置生成图片的大小,然后再进行图片背景的颜色、字体和噪音线等相关设置,最后保存生成的验证码背景图片。

摘要:网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。通常的验证码有数字验证码、图文验证码和汉字验证码。汉字验证码比较难于识别,使用汉字验证码对网站的安全防范更高。本文介绍了汉字验证码的设计与实现。

关键词:ASP.NET,汉字验证码,区位码

参考文献

[1]高宏,李俊民.ASP.NET典型模块与项目实战大全[M].清华大学出版社,2012.

[2]刘明利.基于数据库技术的汉字验证码的设计与实现[J].科技信息,2012(35).

[3]汤阳.防非法登录的验证码技术的设计与实现[J].数字技术与应用,2012(6).

验证码的设计与实现 篇4

关键词:Java语言,图形验证码

1 前言

网站的安全是开发人员必须考虑的中重要因素,考虑不全面就会给系统使用者和管理者带来严重问题,例如恶意用户频繁发送相同信息造成不良影响,或者通过不断尝试盗取用户名和密码,为了解决这样的问题,可以使用验证码技术。验证码从理论上是是一种区分用户是计算机和人的公共全自动程序。通过验证码可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,验证码通常使用一些线条和一些不规则的字符组成,主要作用是为了防止一些黑客把密码数据化盗取。

2 验证码技术的发展

经历了3个阶段:早期是使用数字形式显示在网页上,恶意者可以很容易地通过复制粘贴来输入(或者直接使用软件来获取),接着出现了规则数字图片,也就是直接用网页产生数字图片,不能被复制粘贴,但是恶意者可以使用OCR功能用软件来自动判断图片上的数字,现在一般使用对图片显示的数字或文字进行特殊处理,增加其他杂色,来干扰OCR软件的读取。

下面利用比较简易的方式实现了网站验证码功能,具有一定的通用性。

3 图形验证码的实现

为了限制浏览者利用软件来暴力猜测密码,通过在服务器端编程的方式来实现验证码。首先,通过服务器端程序产生一个验证码,然后在登录页面显示生成的验证码,最后让浏览者把验证码手工填写在相应的地方,为了不增加浏览者的麻烦,验证码不宜过长,通常为4个随机字符。具体步骤如下:

(1)编写登录页面代码Login.jsp,在该页面显示验证码图片,代码如下:

程序运行如图1所示。

(2)创建服务器端程序CheckCode,产生带有随机验证码的图片:

(3)创建服务器端程序Logon,用来处理登录表单的请求:

(4)最后,在web.xml中对上述Servlet进行配置:

4 结语

在Java Web开发中,图形验证码是普遍使用的一项技术,通过编程实现指定字符集的图形验证码的生成,为了避免程序的自动识别,对验证码添加干扰点,算法具有完整注释说明,读者可以在理解基础上,进一步完善,使之适应各种情况。

参考文献

[1]李俊青.Java EE Web开发与项目实战.华中科技大学出版社,2011.

[2]刘斌.精通Java Web整合开发.电子工业出版社,2011.4.

验证码的设计与实现 篇5

传统的Web开发模式是同步进行,基于Ajax的开发模式是异步进行,客户端只需按需取数据,用户的行为经过Ajax引擎处理,服务器只有取数据时才工作,因此提高了运行效率,异步模式在Web系统开发中广泛应用。

传统的Web系统身份认证是用户输入用户名等信息提交后进行验证,如果有一项输入错误,所有的认证表单信息都得重新填写。而Ajax模式下,用户输入一项表单信息后,即可给出输入信息正确与否的提示,用户不用等待,其中一项错误,只需改正此项输入信息,其它信息不受影响。这种方式提高了系统运行效率,高效实现了Web系统的身份认证功能。

传统的在Web系统一般只采用口令认证方式,很容易被不法分子攻击,系统安全系数不高,同时数据库中如果有只能被授权用户访问和使用的重要资源很不安全。为了提高系统的安全性,在基本的身份认证基础上,利用图形验证码和权限访问控制功能实现身份认证,可防止非法用户的访问。

1 Ajax原理及优势

Ajax[1]是Asynchronous JavaScript And XML(异步JavaScript 和 XML)缩写,它并不是一项新技术,而是多种成熟技术的集合。包括DOM、XML和XSLT、XHTML和CSS、XMLHttpRequest对象和JavaScript等。

1.1 Ajax工作原理

Ajax原理[1,2]相当于在用户和服务器间增加一个中间层—Ajax引擎,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,一些数据验证和处理由Ajax在客户端来完成,只有确需从服务器读取数据时,才由客户端通过JavaScript调用Ajax引擎,向服务器端发出请求,不需等待请求响应,用户可以继续进行其它操作。服务器端返回数据时,Ajax引擎接收数据,JavaScript函数完成结果处理工作。不用刷新整个页面,部分页面的数据更新已完成。服务器负担的一些工作转接到客户端,利用客户端的闲置能力来处理,服务器和浏览器之间交换数据大量减少,从而减轻服务器和带宽负担。Ajax开发工作流程为一个异步通信过程:对象初始化-发送请求-服务器接受-服务器返回-客户端接受-更新客户端页面内容。

1.2 Ajax的优势

Ajax具有很多优点:减轻服务器负担,Ajax的原则是“按需取数据”,可最大程度的减少冗余请求和相应服务器造成的负担;局部刷新页面,减少用户等待时间,具有更好的用户体验;服务器负担的部分工作转嫁到客户端,利用客户端闲置的能力来处理,减轻了服务器和带宽的负担,节约空间和带宽租用成本;可调用外部数据;基于标准化并广泛支持技术,不需要下载插件或小程序;使Web中页面呈现与数据分离等。

2 Web系统身份认证设计思路

用户在Web页面的用户名表单输入用户名信息后,鼠标离开,触发表单的onBlur事件,数据信息传递给Ajax引擎,由Ajax引擎来处理,用JavaScript编写的程序代码实现Ajax引擎功能。Ajax引擎实例化为一个XMLHttpRequest对象,通过该对象向服务器发出所需的数据,将其结果返回给客户端浏览器,页面即可显示用户是否存在的结果信息。

如果用户存在,下一步验证密码信息输入是否正确,验证方法同用户名。

图形验证码是Web系统进行身份认证的有效措施,用户打开Web页面,验证码显示在页面上,用户输入验证码后,触发表单的onBlur事件,由Ajax对象的XMLHttpRequest对象完成用户输入的验证码与数据库存放的验证码验证过程,并给出相应的提示。如果输入错误,Ajax的XMLHttpRequest对象会异步动态地向服务器的图形验证码程序所要新的验证码图片,同时数据库的验证码数据记录及时更新。XMLHttpRequest对象将图形验证码返回客户端显示在表单页面的指定区域。验证码使用一次后,由服务器端的图形验证码生成程序产生新的验证码,验证码数据库与页面表单同时刷新,因此验证码具有一次性特点。图形验证码是以点阵非文本方式呈现给用户的,多变验证码与加上多种方式处理过的背景合成图形验证码。经过以上各种技术的综合处理,图形验证码信息很难被非法用户捕获及识别。

如果用户通过了用户名、密码、图形验证码验证后,下一步进行用户权限的身份认证,不同身份用户具有不同的访问权限,根据系统管理员分配的权限,用户进入相应功能页面。此功能对身份认证功能实现具有积极意义。

综上所述,Web系统身份认证高效、安全、可防止攻击者的破坏活动。

3 实现Ajax异步身份认证功能的实例

以用户名检测为例来说明具体实现过程:

下面使用XMLHttpRequest对象的open()方法向服务器发送请求取得数据,主要代码如下:

处理服务器返回数据,判断数据是否存在,根据结果给出响应的提示信息:

经过以上步骤向服务器发出请求完毕,且取得了数据。在表单失去焦点的事件中激发Ajax引擎,动态更新浏览器中从服务器返回的内容,更新时不用重载页面的所有内容,只需更新部分即可。触发焦点代码:

实现Web系统身份认证功能的界面如下:

验证通过后,根据用户的访问权限不同,分配给用户访问不同功能的页面。代码如下:

5 结束语

本文采用Ajax异步交互方式来进行用户名、密码和验证码的检测,提高了系统的验证速度;采用图形验证码点阵存储信息的特点,提高Web系统安全性;采用权限访问控制进一步增强系统安全。

参考文献

[1]潘凯华,邹天思.PHP开发实战宝典[M].北京:清华大学出版社,2010.

上一篇:跨国零售商下一篇:光感测器