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

下载本文档

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

文档简介

沈阳理工大学课程设计专用纸 Noi 沈阳理工大学 摘 要 网络对现实生活已经产生了非常大的影响 它在为我们提供了许许多多的方便和快捷的 同时也为我们带来了一些问题 例如本案例讨论的安全登录问题 在网络中安全是一个 不可忽视的问题 如果处理不好会多我们的财产和隐私带来巨大的威胁 所以不论用户 还是网站的设计者都对这一问题十分重视 例如本案例中的验证码就是为了登陆安全所 特别设计的 本次实训就是用 Visual C NET 语言和实际的操作来完成验证码的设计和实 现 沈阳理工大学课程设计专用纸 Noii 沈阳理工大学 目目 录录 1 课程设计目的与要求 1 2 设计分析 1 2 1 软件开发过程 1 2 2 流程图 7 3 程序代码 9 4 调试结果 12 5 总结 14 6 参考文献 14 沈阳理工大学课程设计专用纸 No1 沈阳理工大学 1 课程设计目的课程设计目的与要求与要求 为了防止网站被非法登陆 网站一般通过验证码的方式 防止黑客用软件非法登陆 验 证码一般采用干扰后的图像显示 人可以识别 但机器识别有困难 本案例用 Visual C NET 开发一个网站的验证码生成软件 并在网页上测试该软件的有效性 2 设计分析设计分析 2 12 1 软件开发过程软件开发过程 1 建立网站 打开 Visual C NET 2010 通过 文件 新建 网站 打开 新建网站 对话 框 选择 ASP NET 网站 在 Web 位置 选择保存网站的目录 单击确定按钮 如图所示 2 建立 ValidateImage ashx 文件 右击解决方案名称 在弹出的菜单中选择 新建项目 打开 添加新项 对话框 选择 一般处理程序 文件名称改为 ValidateImage ashx 单击 添加 按钮 如图所示 沈阳理工大学课程设计专用纸 No2 沈阳理工大学 3 写入代码 在 ValidateImage ashx 中写入随机生成验证码的代码 如图所示 沈阳理工大学课程设计专用纸 No3 沈阳理工大学 4 建立测试验证码的链接 在解决方案上右击 选择 添加新项 然后选择 Web 窗体 模板 名称为 loginform aspx 单击 添加 按钮 如图所示 沈阳理工大学课程设计专用纸 No4 沈阳理工大学 在 loginform aspx 窗体中放入多个控件 控件说明如下 1 Label 控件 名称 Label1 text 属性为 用户名 2 TextBox 控件 名称 TextBox1 3 Label 控件 名称 Label2 text 属性为 密码 4 TextBox 控件 名称为 TextBox2 TextMode 为 password 5 Label 控件 名称为 Label3 text 属性为 验证码 6 TextBox 控件 名称为 TextBox3 7 Image 控件 名称为 Image1 ImageUrl 属性设置为 ValidateImage ashx 8 HyperLink 控件 名称为 HyperLink1 Text 属性为 看不清 换一张 NavigateUrl 设置 为 loginform aspx 9 Button 控件 名称为 Button1 Text 属性为 提交 如图所示 沈阳理工大学课程设计专用纸 No5 沈阳理工大学 5 调试验证码输入界面 在 logoinform aspx 中选择 设计 调整界面 如图所示 6 完成验证码输入成功或失败的显示 双击 loginform aspx 中的提交按钮 进入按钮的响应事件处理程序 加入检验输入验 证码是否正确的代码 如图所示 沈阳理工大学课程设计专用纸 No6 沈阳理工大学 7 在网站主页建立一个连接到登陆页面的链接 在 default aspx 主页上添加 loginform 的链接 在主页上加入 HyperLink 控件 其 NavigateUrl 置为 loignform aspx 如图所示 沈阳理工大学课程设计专用纸 No7 沈阳理工大学 2 1流程图流程图 1 总功能图 网站验证码的设计与实现 输入 验证 码 验证码 是否正 确的显 示 随机生 成验证 码 2 验证码正确性验证 开始 输入验证码 输入数据与给定验 证码是否相等 验证成功 验证失败 是 否 结束 沈阳理工大学课程设计专用纸 No8 沈阳理工大学 3 随机产生验证码 开始 定义验证码 VcodeNum 生成验证码 i VcodeNum 1 验证码是否重复 i 将验证码写入文件 结束 否 是 否 是 沈阳理工大学课程设计专用纸 No9 沈阳理工大学 3程序代码程序代码 1 生成网站验证码 using System using System Web using System IO using System Drawing public class ValidateImage IHttpHandler System Web SessionState IRequiresSessionState public void ProcessRequest HttpContext context context Response Cache SetCacheability HttpCacheability NoCache string valid 定义随机数字 生成包含验证码的图片 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 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 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 沈阳理工大学课程设计专用纸 No10 沈阳理工大学 通过一个简单的算法 以确保不同的随机编号 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 随机数中位数加一 VNum VcArray t 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 Color 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 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 Session validateImage 沈阳理工大学课程设计专用纸 No12 沈阳理工大学 4调试结果调试结果 4 1 ASP NET 主页主页 4 2 登陆主页登陆主页 进入登陆主页面进入登陆主页面 登陆失败登陆失败 沈阳理工大学课程设计专用纸 No13 沈阳理工大学 登陆成功登陆成功 沈阳理工大学课程设计专用纸 No14 沈阳理工大学 5 总结总结 在这一周的时间里 我通过这次的实训加强了自己掌握和理解 C 原理和用法的能力 培养了自己的实际动手能力与综合设计能力 并提高了自己的技术素质 实训一向是我 比较喜欢的实践项目 因为从中学到许多东西 既体验了我们前段时间理论知识的学习 效果 又锻炼了我的动手实践能力 通过这次实训 本人在多方面都有所提高生独立工作能力 在这次设计过程中 体 会了学以致用 突出自己劳动成果的喜悦心情 从中发现自己平时学习的不足和薄弱环 节 从而加以弥补 实训为我们提供了一个既动手动脑 独立参加实践的好机会 要求我们将理论知识 和实际情况有机地结合起来 锻炼我们的分析问题 解决实际问题的

温馨提示

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

评论

0/150

提交评论