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

下載本文檔

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

文檔簡介

/成績評定表學(xué)生姓名石霖班級學(xué)號37專業(yè)計算機科學(xué)與技術(shù)課程設(shè)計題目網(wǎng)站驗證碼的設(shè)計與實現(xiàn)評語組長簽字:成績?nèi)掌?013年1月4日課程設(shè)計任務(wù)書學(xué)院信息科學(xué)與工程學(xué)院專業(yè)計算機科學(xué)與技術(shù)學(xué)生姓名石霖班級學(xué)號37課程設(shè)計題目網(wǎng)站驗證碼的設(shè)計與實現(xiàn)實踐教學(xué)要求與任務(wù):為了防止網(wǎng)站被非法登陸,網(wǎng)站一般通過驗證碼的方式,防止黑客用軟件非法登陸。驗證碼一般采用干擾后的圖像顯示,人可以識別,但機器識別有困難.本案例用VisualC#.NET開發(fā)一個網(wǎng)站的驗證碼生成軟件,并在網(wǎng)頁上測試該軟件的有效性。工作計劃與進度安排:第18周星期一:設(shè)計任務(wù)分析和總體設(shè)計星期二:軟件算法和流程設(shè)計星期三、四、五:軟件編碼實現(xiàn)第19周周一:軟件總體調(diào)試周二:軟件運行分析周三:答辯、驗收程序周四:答辯、驗收程序周五:書寫課程設(shè)計報告,提交指導(dǎo)教師:2013年1月4日專業(yè)負責(zé)人:2013年1月4日學(xué)院教學(xué)副院長:2013年1月4日

目錄1需求分析………42概要設(shè)計………42.1題目概述…………………42.2功能框圖…………………42。3算法流程圖………………42。3。1驗證碼隨機數(shù)的生成與分配…………52.3.2證碼進行驗證…………63調(diào)試結(jié)果………63.1主頁……………63.2登陸主頁…………………74收獲與體會………85參考文獻………86附錄………91需求分析網(wǎng)絡(luò)對現(xiàn)實生活已經(jīng)產(chǎn)生了非常大的影響,網(wǎng)絡(luò)帶來快捷和方便的同時也產(chǎn)生了許許多多的新問題,例如本案例討論的安全登錄問題。大家都知道網(wǎng)絡(luò)登錄時必須輸入正確的驗證碼才能登錄成功,這是因為機器很難識別驗證碼.本案例就是通過VisualC#.NET語言和實際的操作來研究這一問題。2概要設(shè)計2。1題目概述防止網(wǎng)站被非法登陸,防止黑客用軟件非法登陸,網(wǎng)站要設(shè)置驗證碼。驗證碼一般采用干擾后的圖像顯示,人可以識別,但機器識別有困難。本案例用VisualC#。NET開發(fā)一個網(wǎng)站的驗證碼生成軟件,并在網(wǎng)頁上實現(xiàn)操作.2。2功能框圖網(wǎng)站驗證碼的設(shè)計與實網(wǎng)站驗證碼的設(shè)計與實現(xiàn)輸入驗證碼驗證成功與失敗的顯示隨機生成驗證碼輸入驗證碼驗證成功與失敗的顯示隨機生成驗證碼圖2。2總功能框圖2.3算法流程圖2.3.1驗證碼隨機數(shù)的生成與分配開始開始定義驗證碼定義驗證碼VcodeNum生成驗證碼生成驗證碼i<VcodeNum+1i<VcodeNum+1否否是是驗證碼是否重復(fù)驗證碼是否重復(fù)否否是是i++i++將驗證碼寫入文件將驗證碼寫入文件結(jié)束結(jié)束圖2。3.1驗證碼隨機數(shù)的生成與分配2.3.2證碼進行驗證開始開始輸入驗證碼輸入驗證碼輸入數(shù)據(jù)與給定驗證碼是否相等輸入數(shù)據(jù)與給定驗證碼是否相等驗證失敗!驗證失敗!驗證成功結(jié)束結(jié)束圖2.3.2證碼進行驗證3調(diào)試結(jié)果3.1主頁圖4.1主頁3。2登陸主頁進入登陸主頁面4-2登陸主頁添加用戶名、密碼、驗證碼,提交登陸,顯示驗證成功的信息.圖4—3登陸主頁4收獲與體會一周的課程設(shè)計結(jié)束了,在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計過程中,與同學(xué)分工設(shè)計,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會了合作,學(xué)會了寬容,也學(xué)會了理解課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程。我今天認真的進行課程設(shè)計,學(xué)會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎(chǔ).通過這次課程設(shè)計,本人在多方面都有所提高生獨立工作能力,在這次設(shè)計過程中,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補.在此感謝我們的老師。,老師嚴謹細致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;同時感謝對我?guī)椭^的同學(xué)們,謝謝你們對我的幫助和支持,讓我感受到同學(xué)的友誼。由于本人的設(shè)計能力有限,在設(shè)計過程中難免出現(xiàn)錯誤,懇請老師們多多指教5參考文獻《網(wǎng)站驗證碼的設(shè)計與實現(xiàn)》開發(fā)案例6(附錄)代碼附錄6.1網(wǎng)站驗證碼的生成<%@WebHandlerLanguage="C?!盋lass=”ValidateImage”%〉usingSystem;usingSystem。Web;usingSystem。IO;usingSystem.Drawing;publicclassValidateImage:IHttpHandler,System.Web.SessionState.IRequiresSessionState{publicvoidProcessRequest(HttpContextcontext){che.SetCacheability(HttpCacheability.NoCache);stringvalid="";//定義隨機數(shù)字//生成包含驗證碼的圖片MemoryStreamms=Create(outvalid);//存儲在session中的驗證碼,用于驗證context.Session["validateImage”]=valid;//置空輸出流context。Response。ClearContent();//輸出流格式context.Response.ContentType="image/png”;//輸出context.Response。BinaryWrite(ms。ToArray());context.Response.End();}publicboolIsReusable{get{returnfalse;}}//用來產(chǎn)生2位數(shù)的隨機數(shù)分配的方法privat(yī)estringRndNum(intVcodeNum){stringVchar="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";//拆分到數(shù)組中string[]VcArray=Vchar.Split(newChar[]{’,'});//收集隨機數(shù)stringVNum="”;//記錄最后隨機值,盡量避免同一隨機數(shù)inttemp=-1;Randomrand=newRandom();//通過一個簡單的算法,以確保不同的隨機編號for(inti=1;i〈VcodeNum+1;i++){if(temp!=—1){rand=newRandom(i*temp*unchecked((int)DateTime。Now.Ticks));}intt=rand.Next(55);if(temp?。剑?&&temp==t){returnRndNum(VcodeNum);//如果獲得隨機數(shù)重復(fù),然后遞歸調(diào)用}temp=t;//隨機數(shù)中位數(shù)加一VNum+=VcArray[t];}returnVNum;}//生成隨機數(shù),并將其寫入圖像文件publicMemoryStreamCreate(outstringVNum){VNum=RndNum(3);BitmapImg=null;Graphicsg=null;MemoryStreamms=null;System.Randomrandom=newRandom();Color[]c={Color。Black,Color。Red,Color.DarkBlue,Color.Green,Color.Brown,Color。DarkCyan,Color。Purple};string[]fonts={"Verdana”,"MicrosoftSansSerif","ComicSansMS”,"Arial”,"宋體”};Img=newBitmap((int)VNum.Length*18,32);g=Graphics。FromImage(Img);g。Clear(Color。White);//在背景的隨機位置畫圖for(inti=0;i<100;i++){intx=random。Next(Img。Width);inty=random。Next(Img.Height);g.DrawRectangle(newPen(Color。LightGray,0),x,y,1,1);}//在g中映射驗證碼for(inti=0;i<VNum。Length;i++){intcindex=random.Next(6);intfindex=random.Next(5);//格式Fontf=newSystem.Drawing.Font(fonts[findex],15,System。Drawing。FontStyle。Regular);Brushb=newSystem。Drawing.SolidBrush(c[cindex]);intii=4;if((i+1)%2==0)//控制不同驗證碼字符在垂直方向上的位置{ii=2;}g。DrawString(VNum.Substring(i,1),f,b,3+(i*12),ii);}ms=newMemoryStream();Img.Save(ms,System。Drawing.Imaging.ImageFormat.Jpeg);g.Dispose();Img.Dispose();returnms;}}6.2驗證碼的驗證查看輸入的驗證碼與電腦是否匹配protectedvoidButton1_Click(objectsender,EventArgs

溫馨提示

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

評論

0/150

提交評論