課程設(shè)計(jì)網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)_第1頁
課程設(shè)計(jì)網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)_第2頁
課程設(shè)計(jì)網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)_第3頁
課程設(shè)計(jì)網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)_第4頁
課程設(shè)計(jì)網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 成 績(jī) 評(píng) 定 表學(xué)生姓名石霖班級(jí)學(xué)號(hào)1103050137專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)課程設(shè)計(jì)題目網(wǎng)站驗(yàn)證碼的設(shè)計(jì)與實(shí)現(xiàn)評(píng)語組長(zhǎng)簽字:成績(jī)?nèi)掌?2013年1月4 日課程設(shè)計(jì)任務(wù)書學(xué) 院信息科學(xué)與工程學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名石霖班級(jí)學(xué)號(hào)1103050137課程設(shè)計(jì)題目網(wǎng)站驗(yàn)證碼的設(shè)計(jì)與實(shí)現(xiàn)實(shí)踐教學(xué)要求與任務(wù):為了防止網(wǎng)站被非法登陸,網(wǎng)站一般通過驗(yàn)證碼的方式,防止黑客用軟件非法登陸。驗(yàn)證碼一般采用干擾后的圖像顯示,人可以識(shí)別,但機(jī)器識(shí)別有困難。本案例用Visual C#.NET開發(fā)一個(gè)網(wǎng)站的驗(yàn)證碼生成軟件,并在網(wǎng)頁上測(cè)試該軟件的有效性。工作計(jì)劃與進(jìn)度安排:第18周星期一:設(shè)計(jì)任務(wù)分析和總體設(shè)

2、計(jì)星期二:軟件算法和流程設(shè)計(jì)星期三、四、五:軟件編碼實(shí)現(xiàn)第19周周一:軟件總體調(diào)試周二:軟件運(yùn)行分析周三:答辯、驗(yàn)收程序周四:答辯、驗(yàn)收程序周五:書寫課程設(shè)計(jì)報(bào)告,提交指導(dǎo)教師: 2013年1月4 日專業(yè)負(fù)責(zé)人: 2013年1月4日學(xué)院教學(xué)副院長(zhǎng): 2013年1月4日 目 錄1 需求分析 42 概要設(shè)計(jì) 4 2.1 題目概述 4 2.2 功能框圖 4 2.3算法流程圖 4 2.3.1驗(yàn)證碼隨機(jī)數(shù)的生成與分配5 2.3.2證碼進(jìn)行驗(yàn)證6 3 調(diào)試結(jié)果6 3.1 ASP.NET主頁 6 3.2登陸主頁 7 4 收獲與體會(huì) 8 5 參考文獻(xiàn) 8 6 附錄 91 需求分析網(wǎng)絡(luò)對(duì)現(xiàn)實(shí)生活已經(jīng)產(chǎn)生了非常大

3、的影響,網(wǎng)絡(luò)帶來快捷和方便的同時(shí)也產(chǎn)生了許許多多的新問題,例如本案例討論的安全登錄問題。大家都知道網(wǎng)絡(luò)登錄時(shí)必須輸入正確的驗(yàn)證碼才能登錄成功,這是因?yàn)闄C(jī)器很難識(shí)別驗(yàn)證碼。本案例就是通過Visual C#.NET語言和實(shí)際的操作來研究這一問題。2 概要設(shè)計(jì)2.1 題目概述防止網(wǎng)站被非法登陸,防止黑客用軟件非法登陸,網(wǎng)站要設(shè)置驗(yàn)證碼。驗(yàn)證碼一 般采用干擾后的圖像顯示,人可以識(shí)別,但機(jī)器識(shí)別有困難。本案例用Visual C#.NET開發(fā)一個(gè)網(wǎng)站的驗(yàn)證碼生成軟件,并在網(wǎng)頁上實(shí)現(xiàn)操作。2.2 功能框圖網(wǎng)站驗(yàn)證碼的設(shè)計(jì)與實(shí)現(xiàn)輸入驗(yàn)證碼驗(yàn)證成功與失敗的顯示隨機(jī)生成驗(yàn)證碼 圖2.2 總功能框圖2.3 算法流程

4、圖驗(yàn)證碼隨機(jī)數(shù)的生成與分配開始定義驗(yàn)證碼VcodeNum生成驗(yàn)證碼i < VcodeNum + 1否是驗(yàn)證碼是否重復(fù)否是i+將驗(yàn)證碼寫入文件結(jié)束 圖 2.3.1 驗(yàn)證碼隨機(jī)數(shù)的生成與分配證碼進(jìn)行驗(yàn)證開始輸入驗(yàn)證碼輸入數(shù)據(jù)與給定驗(yàn)證碼是否相等驗(yàn)證失敗!驗(yàn)證成功結(jié)束 圖2.3.2 證碼進(jìn)行驗(yàn)證3 調(diào)試結(jié)果3.1 ASP.NET主頁 圖4.1 ASP.NET主頁3.2登陸主頁進(jìn)入登陸主頁面 4-2登陸主頁添加用戶名、密碼、驗(yàn)證碼,提交登陸,顯示驗(yàn)證成功的信息。 圖4-3登陸主頁4收獲與體會(huì) 一周的課程設(shè)計(jì)結(jié)束了,在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識(shí),也培養(yǎng)了我如何去把握一件事情,如何去做

5、一件事情,又如何完成一件事情。在設(shè)計(jì)過程中,與同學(xué)分工設(shè)計(jì),和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會(huì)了合作,學(xué)會(huì)了寬容,也學(xué)會(huì)了理解課程設(shè)計(jì)是我們專業(yè)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,著是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程我今天認(rèn)真的進(jìn)行課程設(shè)計(jì),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)通過這次課程設(shè)計(jì),本人在多方面都有所提高生獨(dú)立工作能力,在這次設(shè)計(jì)過程中,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。在此感謝我們的老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一

6、格的思路給予我無盡的啟迪;同時(shí)感謝對(duì)我?guī)椭^的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同學(xué)的友誼。 由于本人的設(shè)計(jì)能力有限,在設(shè)計(jì)過程中難免出現(xiàn)錯(cuò)誤,懇請(qǐng)老師們多多指教5 參考文獻(xiàn)網(wǎng)站驗(yàn)證碼的設(shè)計(jì)與實(shí)現(xiàn)開發(fā)案例6 (附錄)代碼附錄6.1 網(wǎng)站驗(yàn)證碼的生成 <% 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 = "" / 定義隨機(jī)數(shù)字/生成包含驗(yàn)證碼的圖片MemoryStream ms = Create(out valid);/ 存儲(chǔ)在session中的驗(yàn)證碼,用于驗(yàn)證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;/用來產(chǎn)生2位數(shù)的隨機(jī)數(shù)分配的方法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"/ 拆分到數(shù)組中string VcArray = Vchar.Split(new Char ',' );/ 收集隨機(jī)數(shù)string VNum = ""/ 記錄最后隨機(jī)值,盡量避免同一隨機(jī)數(shù)int temp = -1;Random rand = new Random();/ 通過一個(gè)簡(jiǎn)單的算法,以確保不同的隨機(jī)編號(hào)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);/如果獲得隨機(jī)數(shù)重復(fù),然后遞歸調(diào)用temp = t;/隨機(jī)數(shù)中位數(shù)加一VNum += VcArrayt;return VNum;/ 生成隨機(jī)數(shù),并將其寫入圖像文件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);/ 在背景的隨機(jī)位置畫圖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中映射驗(yàn)證碼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) / 控制不同驗(yàn)證碼字符在垂直方向上的位置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 驗(yàn)證碼的驗(yàn)證查看輸入的驗(yàn)證碼與電腦是否匹配protected void Button1_Click(object sender, EventArgs e) if (TextBox3.Text = Session"validateImage".ToS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論