版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 成 绩 评 定 表学生姓名石霖班级学号1103050137专 业计算机科学与技术课程设计题目网站验证码的设计与实现评语组长签字:成绩日期 2013年1月4 日课程设计任务书学 院信息科学与工程学院专 业计算机科学与技术学生姓名石霖班级学号1103050137课程设计题目网站验证码的设计与实现实践教学要求与任务:为了防止网站被非法登陆,网站一般通过验证码的方式,防止黑客用软件非法登陆。验证码一般采用干扰后的图像显示,人可以识别,但机器识别有困难。本案例用Visual C#.NET开发一个网站的验证码生成软件,并在网页上测试该软件的有效性。工作计划与进度安排:第18周星期一:设计任务分析和总体设
2、计星期二:软件算法和流程设计星期三、四、五:软件编码实现第19周周一:软件总体调试周二:软件运行分析周三:答辩、验收程序周四:答辩、验收程序周五:书写课程设计报告,提交指导教师: 2013年1月4 日专业负责人: 2013年1月4日学院教学副院长: 2013年1月4日 目 录1 需求分析 42 概要设计 4 2.1 题目概述 4 2.2 功能框图 4 2.3算法流程图 4 2.3.1验证码随机数的生成与分配5 2.3.2证码进行验证6 3 调试结果6 3.1 ASP.NET主页 6 3.2登陆主页 7 4 收获与体会 8 5 参考文献 8 6 附录 91 需求分析网络对现实生活已经产生了非常大
3、的影响,网络带来快捷和方便的同时也产生了许许多多的新问题,例如本案例讨论的安全登录问题。大家都知道网络登录时必须输入正确的验证码才能登录成功,这是因为机器很难识别验证码。本案例就是通过Visual C#.NET语言和实际的操作来研究这一问题。2 概要设计2.1 题目概述防止网站被非法登陆,防止黑客用软件非法登陆,网站要设置验证码。验证码一 般采用干扰后的图像显示,人可以识别,但机器识别有困难。本案例用Visual C#.NET开发一个网站的验证码生成软件,并在网页上实现操作。2.2 功能框图网站验证码的设计与实现输入验证码验证成功与失败的显示随机生成验证码 图2.2 总功能框图2.3 算法流程
4、图验证码随机数的生成与分配开始定义验证码VcodeNum生成验证码i < VcodeNum + 1否是验证码是否重复否是i+将验证码写入文件结束 图 2.3.1 验证码随机数的生成与分配证码进行验证开始输入验证码输入数据与给定验证码是否相等验证失败!验证成功结束 图2.3.2 证码进行验证3 调试结果3.1 ASP.NET主页 图4.1 ASP.NET主页3.2登陆主页进入登陆主页面 4-2登陆主页添加用户名、密码、验证码,提交登陆,显示验证成功的信息。 图4-3登陆主页4收获与体会 一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做
5、一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,也学会了理解课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础通过这次课程设计,本人在多方面都有所提高生独立工作能力,在这次设计过程中,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢我们的老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一
6、格的思路给予我无尽的启迪;同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教5 参考文献网站验证码的设计与实现开发案例6 (附录)代码附录6.1 网站验证码的生成 <% WebHandler Language="C#" Class="ValidateImage" %>using System;using System.Web;using System.IO;using System.Drawing;public class ValidateImag
7、e : IHttpHandler,public void ProcessRequest (HttpContext context) context.Response.Cache.SetCacheability(HttpCacheability.NoCache);string valid = "" / 定义随机数字/生成包含验证码的图片MemoryStream ms = Create(out valid);/ 存储在session中的验证码,用于验证context.Session"validateImage" = valid;/置空输出流 context.
8、Response.ClearContent();/输出流格式context.Response.ContentType = "image/png"/输出context.Response.BinaryWrite(ms.ToArray();context.Response.End(); public bool IsReusable 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,
9、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 ',' );/ 收集随机数string VNum = ""/ 记录最后随机值,尽量避免同一随机数int temp = -1;Random rand = new Random();/ 通过一个简单的算法,以确保不同的随机编号for (int i = 1; i < Vcode
10、Num + 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(VcodeNum);/如果获得随机数重复,然后递归调用temp = t;/随机数中位数加一VNum += VcArrayt;return VNum;/ 生成随机数,并将其写入图像文件public MemoryStream Create(out string VNum)VNum
11、= RndNum(3);Bitmap Img = null;Graphics g = null;MemoryStream ms = null;System.Random random = new Random();Color c = Color.Black, Color.Red, Color.DarkBlue, Color.Green,Color.Brown, Color.DarkCyan, Color.Purple;string fonts = "Verdana", "Microsoft Sans Serif", "Comic Sans MS
12、", "Arial", "宋体" ;Img = new Bitmap(int)VNum.Length * 18, 32);g = Graphics.FromImage(Img);g.Clear(Color.White);/ 在背景的随机位置画图for (int i = 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);/
13、在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, System.Drawing.FontStyle.Regular);Brush b = new System.Drawing.SolidBrush(ccindex);int ii = 4;if (i + 1) % 2 = 0) / 控制不同验证码字符在垂直方向上的位置ii = 2;g.
14、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"validateImage".ToS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年南阳科技职业学院单招职业技能考试题库附参考答案详解(基础题)
- 2026年信阳艺术职业学院单招职业倾向性考试题库及一套答案详解
- 2026年内蒙古能源职业学院单招职业倾向性考试题库及答案详解(名校卷)
- 2026年南阳工艺美术职业学院单招职业适应性测试题库附答案详解(完整版)
- 2026年航空物流公司社交媒体推广管理制度
- 2026年江西省新建二中高三“五校”联考语文试题含解析
- 辽宁省丹东市通远堡高中2026届高三数学试题理第三次调研考试试题解析含解析
- 上海市宝山区行知实验2026年高三下学期第二次“战疫”线上教学综合测试数学试题含解析
- 重庆市西北狼联盟2026年青浦高中高三下开学考英语试题含解析
- 2026届上海市宝山区通河中学招生全国统一考试仿真卷(十)-高考英语试题仿真试题含解析
- 2026年AR辅助医疗手术报告及医疗科技前沿报告
- 中国人身保险业经验生命表2025
- 农业合作社管理与运营实操指南
- 外伤性脑出血病例分析与管理流程
- 大类资产配置量化模型研究系列之五:不同协方差矩阵估计方法对比分析
- 产前筛查设备管理制度
- 木工机械日常点检表
- 古代汉语(第2版)PPT完整全套教学课件
- (完整word)长沙胡博士工作室公益发布新加坡SM2考试物理全真模拟试卷(附答案解析)
- GB/T 4108-2004镁粉和铝镁合金粉粒度组成的测定干筛分法
- GB/T 12805-2011实验室玻璃仪器滴定管
评论
0/150
提交评论