课程设计网站验证码的实现_第1页
课程设计网站验证码的实现_第2页
课程设计网站验证码的实现_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩评定表学生姓名石霖班级学号1103050137专业计算机科学与技术课程设计题目网站验证码的设计与实现评语组长签字:成绩日期2013年1月4日课程设计任务书学院信息科学与工程学院专业计算机科学与技术学生姓名石霖班级学号1103050137课程设计题目网站验证码的设计与实现实践教学要求与任务:为了防止网站被非法登陆,网站一般通过验证码的方式,防止黑客用软件非法登陆。验证码一般采用干扰后的图像显示,人可以识别,但机器识别有困难。本案例用Visual C#.NET开发一个网站的验证码生成软件,并在网页上测试该软件的有效性。工作计划与进度安排:第18周星期一:设计任务分析和总体设计星期二:软件算法和

2、流程设计星期三、四、五:软件编码实现第19周周一:软件总体调试周二:软件运行分析周三:答辩、验收程序周四:答辩、验收程序周五:书写课程设计报告,提交指导教师:2013年1月4日专业负责人:2013年1月4日学院教学副院长:2013年1月4日目录1需求分析 42概要设计42.1 题目概述422 功能框图42.3算法流程图4验证码随机数的生成与分配52.3.2证码进行验证 63 调试结果 63.1 ASP.NET 主页63.2 登陆主页74 收获与体会85 参考文献86 附录1需求分析网络对现实生活已经产生了非常大的影响,网络带来快捷和方便的同时也产生了许 许多多的新问题,例如本案例讨论的安全登录

3、问题。大家都知道网络登录时必须输入正 确的验证码才能登录成功,这是因为机器很难识别验证码。本案例就是通过VisualC#.NET语言和实际的操作来研究这一问题。2概要设计2.1题目概述防止网站被非法登陆,防止黑客用软件非法登陆,网站要设置验证码。验证码一 般采用干扰后的图像显示,人可以识别,但机器识别有困难。本案例用Visual C#.NET开发一个网站的验证码生成软件,并在网页上实现操作。2.2功能框图图2.2总功能框图2.3算法流程图验证码随机数的生成与分配图2.3.1验证码随机数的生成与分配232证码进行验证图2.3.2 证码进行验证3调试结果3.1 ASP.NET 主页<砂“置迪

4、gs 柚 irwwJHitm 歸近氛«我的ASP.NET应用程序弘 j i"T w» 3E1KFI fltivi SftBi STV*WlHi c春+- <> -t!boiKiiMtiJe ®Ba*童.儿73 -S M总 牙址工盘Le-r-:n":L - s LMsfo LjSfe KB *9F3=u- 4 丽 *K9 on”耳总世倉占豊录 JRlSt&MJ A5P.NET1肯丁帼飛于 陋几hfT犷?斗nm 1債呀问ftMbUKaMMWm"垃duh5C和上工二汕PfF!丈色7 t <&m ss-Lff

5、ff <m > 3 < tm -图 4.1 ASP.NET 主页3.2登陆主页进入登陆主页面* Mtn/H H«l biifll i4<|hf+'fa- Mpfl t11 ' -pi n» q nn "Bdi'4rQ *胡 lb MJiilhWPlw « a :fit "声II曹 Wft *1 F申 |g> IfeiEl; IhriK *0U豎1«母8; 囲1 fFfl.据弋回户岳iiilF.put ki4-2登陆主页添加用户名、密码、验证码,提交登陆,显示验证成功的信息。* 崛缶

6、FJlzd.”阳#Hid怙科呕寸詔 电血t如iFg *“ E甲WfFIdH】“削卍兰户上一 “E 闻,|图4-3登陆主页4收获与体会一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我 如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同 学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,也 学会了理解课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作 前一个必不少的过程我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为 明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次课程设计,本人在多

7、方面都有所提高生独立工作能力,在这次设计过程中,体 会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环 节,从而加以弥补。在此感谢我们的老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样; 老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教5参考文献网站验证码的设计与实现开发案例6 (附录)代码附录6.1 网站验证码的生成<% WebHandler Language="C#" Class

8、="ValidateImage" %>using System;using System.Web;using System.IO;using System.Drawing;public class ValidateImage : IHttpHandler,public void ProcessRequest (HttpContext context) context.Response.Cache.SetCacheability(HttpCacheability.NoCache); string valid = "" /定义随机数字/ 生成包含验证码

9、的图片MemoryStream ms = Create(out valid);/ 存储在 session 中的验证码,用于验证 context.Session"validateImage" = valid;/ 置空输出流context.Response.ClearContent();/ 输出流格式context.Response.ContentType = "image/png" / 输出 context.Response.BinaryWrite(ms.ToArray(); context.Response.End();public bool IsReu

10、sable get return false;/ 用来产生 2位数的随机数分配的方法 private string RndNum(int VcodeNum) string Vchar = "1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,m,n,p,q" + ",r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z" / 拆分到数组中string VcArray = Vchar.Split(new Char ',' );/ 收集随

11、机数string VNum = ""/ 记录最后随机值,尽量避免同一随机数int temp = -1;Random rand = new Random();/ 通过一个简单的算法,以确保不同的随机编号for (int i = 1; i < VcodeNum + 1; i+)if (temp != -1)rand = new Random(i * temp * unchecked(int)DateTime.Now.Ticks); int t = rand.Next(55);if (temp != -1 && temp = t)return RndNum(

12、VcodeNum);/ 如果获得随机数重复,然后递归调用temp = t;/ 随机数中位数加一VNum += VcArrayt;return VNum;/ 生成随机数,并将其写入图像文件public MemoryStream Create(out string VNum)VNum = RndNum(3);Bitmap Img = null;Graphics g = null;MemoryStream ms = null;System.Random random = new Random();Color c = Color.Black, Color.Red, Color.DarkBlue, Co

13、lor.Green,宋体" ;Color.Brown, Color.DarkCyan, Color.Purple;string fonts = "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", " Img = new Bitmap(int)VNum.Length * 18, 32);g = Graphics.FromImage(Img); g.Clear(Color.White);/ 在背景的随机位置画图for (int i

14、 = 0; i < 100; i+)int x = random.Next(Img.Width);int y = random.Next(Img.Height); g.DrawRectangle(new Pen(Color.LightGray, 0), x, y, 1, 1);/在g中映射验证码for (int i = 0; i < VNum.Length; i+)int cindex = random.Next(6);int findex = random.Next(5);/ 格式Font f = new System.Drawing.Font(fontsfindex, 15,

15、System.Drawing.FontStyle.Regular); Brush b = new System.Drawing.SolidBrush(ccindex);int ii = 4;if (i + 1) % 2 = 0) /控制不同验证码字符在垂直方向上的位置ii = 2; g.DrawString(VNum.Substring(i, 1), f, b, 3 + (i * 12), ii);ms = new MemoryStream();Img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose();Img.Dispose();return ms;6.2 验证码的验证查看输入的验证码与电脑是否匹配protected void Button1_Click(object sender, EventArgs e) if (TextBox3.Text = Session"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论