亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

生成驗證碼的方法集合(一)

2019-11-17 02:13:24
字體:
來源:轉載
供稿:網友

生成驗證碼的方法集合(一)

  用戶在注冊或登錄時,為了進一步保證安全性,越來越多的網站開始采用動態生成的圖形碼或附加碼進行驗證。驗證碼技術就是在服務器端生成一個隨機數,并將其保存在內存中,然后將隨機數寫入設計好的圖片中,發送給瀏覽器,并以圖片形式顯示給最終用戶。前幾天,在完成一個利用Script進行用戶注冊及登錄的驗證時,在加入驗證碼這一塊的時候,發現了各種生成驗證碼的方式,就利用空余時間做了一個整理及重寫。那么我的博客之旅就從這篇驗證碼的生成開始了。

下面主要是幾種不同的生成驗證碼的方式:

1、繪制純數字的網站驗證碼

本實例實現的是數字驗證碼技術,即隨機生成4位數字作為驗證碼。在開發繪制會員登錄驗證模塊時可以使用數字驗證碼技術。

■設計過程

在一個新建的窗體CheckCode.aspx中編寫生成數字驗證碼的方法:

{

Response.Write("<script>alert('驗證碼錯誤!')</script>");

}

else

Response.Write("<script>alert('驗證碼正確!')</script>");

}

2、繪制數字與字母組合的網站驗證碼

和純數字的很相似,具體區別在隨機生成字符串的方法中

privatestringGenerateCheckCode(){intnumber;charcode;stringcheckCode=String.Empty;Randomrandom=newRandom();for(inti=0;i<4;i++){number=random.Next();if(number%2==0)code=(char)('0'+(char)(number%10));elsecode=(char)('A'+(char)(number%26));checkCode+=code.ToString();}Response.Cookies.Add(newHttpCookie("CheckCode",checkCode));returncheckCode;}

字符串生成后,接下來就是將該字符串繪制成圖片顯示出來。代碼如下:

privatevoidCreateCheckCodeImage(stringcheckCode){if(checkCode==null||checkCode.Trim()==String.Empty)return;System.Drawing.Bitmapimage=newSystem.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*12.5)),22);Graphicsg=Graphics.FromImage(image);try{//生成隨機生成器Randomrandom=newRandom();//清空圖片背景色g.Clear(Color.White);//畫圖片的背景噪音線for(inti=0;i<2;i++){intx1=random.Next(image.Width);intx2=random.Next(image.Width);inty1=random.Next(image.Height);inty2=random.Next(image.Height);g.DrawLine(newPen(Color.Black),x1,y1,x2,y2);}Fontfont=newSystem.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold));System.Drawing.Drawing2D.LinearGradientBrushbrush=new

    System.Drawing.Drawing2D.LinearGradientBrush(  

    newRectangle(0,0,image.Width,image.Height),

    Color.Blue,Color.DarkRed,1.2f,true);

g.DrawString(checkCode,font,brush,2,2);//畫圖片的前景噪音點for(inti=0;i<100;i++){intx=random.Next(image.Width);inty=random.Next(image.Height);image.SetPixel(x,y,Color.FromArgb(random.Next()));}//畫圖片的邊框線g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);System.IO.MemoryStreamms=newSystem.IO.MemoryStream();image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);Response.ClearContent();Response.ContentType="image/Gif";Response.BinaryWrite(ms.ToArray());}finally{g.Dispose();image.Dispose();}}

在登錄的窗口進行驗證碼輸入是否正確的判斷:

protectedvoidButton1_Click(objectsender,EventArgse)

{

HttpCookiecookie=Request.Cookies["CheckCode"];

if(cookie.Value==this.TextBox1.Text.Trim())

{

Response.Write("<script>alert('驗證碼正確!')</script>");

}

else

{

Response.Write("<script>alert('驗證碼錯誤!')</script>");

}

}

那么有關于數字與字母組合的網站驗證碼就生成了。

3、四則運算式的驗證碼

其他的和數字和字母混合生成的驗證碼相似,我就不寫了,具體區別在隨機生成四則運算式的方法中,如下

privatestringGenerateCheckCode()

{

Randomrd=newRandom();

intResults=0;

intNum1=rd.Next(10);

intNum2=rd.Next(10);

stringExpressions="";

intF=(rd.Next(4)+1);

switch(F)

{

case1:

Results=Num1+Num2;

Expressions=Num1+"+"+Num2;

break;

case2:

Results=Num1-Num2;

Expressions=Num1+"-"+Num2;

break;

case3:

Results=Num1*Num2;

Expressions=Num1+"*"+Num2;

break;

case4:

if(Num2>0)

{

Results=Convert.ToInt16(Num1/Num2);

Expressions=Num1+"/"+Num2;

}

else

{

Results=Num1;

Expressions=Num1+"/1";

}

break;

}

session["Code"]=Results.ToString();

returnExpressions;

}

這篇主要講了三種方法,在下一篇中會介紹另一種方法——中文彩色驗證碼,因代碼篇幅較長就放在下一篇中介紹了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国内精品视频| 色哟哟亚洲精品一区二区| 日韩欧美高清视频| 亚洲国产一区二区三区在线观看| 97成人在线视频| 亚洲欧美一区二区三区久久| 国产日韩在线播放| 亚洲精品欧美极品| 久久91亚洲精品中文字幕| 亚洲二区在线播放视频| 日韩av理论片| 欧美日韩裸体免费视频| 亚洲天堂av网| 欧美在线精品免播放器视频| 色偷偷av一区二区三区| 日韩精品免费一线在线观看| 欧美精品成人91久久久久久久| 福利视频导航一区| 亚洲性xxxx| 国产日韩欧美视频在线| 亚洲精品成人久久| 久久久久国色av免费观看性色| www.国产一区| 粉嫩老牛aⅴ一区二区三区| 欧美成人免费全部| 色偷偷av亚洲男人的天堂| 92版电视剧仙鹤神针在线观看| 91精品视频大全| 精品国产一区二区三区久久狼5月| 欧美wwwxxxx| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久久久亚洲| 亚洲国产精品嫩草影院久久| 欧美午夜www高清视频| 欧美午夜xxx| 一区二区三区国产在线观看| 欧美日韩xxx| 欧美老少配视频| 国产亚洲精品久久久久动| 国产日韩欧美中文在线播放| 久久69精品久久久久久久电影好| 日韩精品在线播放| 国产精品入口尤物| 久久人91精品久久久久久不卡| 亚洲一区av在线播放| 国产va免费精品高清在线观看| 国产91精品不卡视频| 一区二区三区视频观看| 中文字幕国产亚洲2019| 午夜精品一区二区三区在线| 欧美高跟鞋交xxxxxhd| 中文字幕亚洲国产| 欧美乱大交xxxxx另类电影| 日韩亚洲精品电影| 精品国产一区二区三区久久狼黑人| 97免费在线视频| 亚洲女同性videos| 中文字幕亚洲一区二区三区| 欧美一区二区.| 欧美成在线观看| 91日韩在线视频| 91精品国产91久久久久久最新| 亚洲免费成人av电影| 成人免费视频a| 日韩精品欧美激情| 2020欧美日韩在线视频| 国内精品在线一区| 日韩欧美精品中文字幕| 国产日本欧美一区二区三区在线| 国产精品激情自拍| 久久人体大胆视频| 久久天天躁日日躁| 久久精品国产亚洲一区二区| 福利一区视频在线观看| 久久久免费电影| xxxx欧美18另类的高清| 中文字幕日韩欧美| 久久精品这里热有精品| 中文字幕亚洲一区二区三区五十路| 国模精品视频一区二区三区| 亚洲精品福利在线观看| 亚洲精品短视频| 久久久91精品国产一区不卡| 国产日韩欧美自拍| 91精品久久久久久久久久| 国产伊人精品在线| 久久久噜久噜久久综合| 亚洲精品国产精品久久清纯直播| 青青草99啪国产免费| 国产在线观看一区二区三区| 亚洲的天堂在线中文字幕| 欧美在线中文字幕| 国产精品视频精品| 久久手机免费视频| 国产一区二区丝袜| 国产999视频| 亚洲成av人片在线观看香蕉| 欧美国产亚洲视频| 日韩网站在线观看| 98精品国产自产在线观看| 国产精品678| 91精品中文在线| 国产精品久久久久久久7电影| 亚洲人高潮女人毛茸茸| 国产精品电影在线观看| 精品无人区太爽高潮在线播放| 91精品久久久久久久久青青| 国产精品成人免费视频| 亚洲午夜精品久久久久久性色| 久久久久久国产精品三级玉女聊斋| 日韩美女视频免费看| 国产精品永久免费视频| 国产精品v片在线观看不卡| 精品亚洲夜色av98在线观看| 国产精品wwww| 色偷偷888欧美精品久久久| 欧美一级淫片播放口| 欧美成aaa人片免费看| 永久555www成人免费| 国产精品一区av| 91色在线观看| 欧美日韩国产va另类| 成人激情免费在线| 欧美激情视频在线免费观看 欧美视频免费一| 欧美日韩午夜剧场| 深夜精品寂寞黄网站在线观看| 国产欧美一区二区三区久久| 日韩免费视频在线观看| 亚洲天堂色网站| 亚洲国产中文字幕久久网| 成人免费xxxxx在线观看| 日韩h在线观看| 久久免费高清视频| 日韩性xxxx爱| 国产精品扒开腿爽爽爽视频| 国产一区二区日韩精品欧美精品| 国产亚洲视频在线| 亚洲国产私拍精品国模在线观看| 韩剧1988免费观看全集| 欧美日韩精品在线| 久久天天躁狠狠躁夜夜躁| 精品国产鲁一鲁一区二区张丽| 成人激情视频在线播放| 亚洲国产精彩中文乱码av在线播放| 久久精品久久久久| 欧美成aaa人片免费看| 九九热最新视频//这里只有精品| 欧美精品手机在线| 91亚洲午夜在线| 亚洲激情 国产| 国产精品爽黄69| 66m—66摸成人免费视频| 国产精品久久久久久久久免费看| 亚洲最大福利视频网| 成人做爽爽免费视频| 亚洲人成网站999久久久综合| 97国产在线观看| 亚洲精品久久久久中文字幕二区| 亚洲国产精品人人爽夜夜爽| 中文在线资源观看视频网站免费不卡| 成人两性免费视频| 欧美在线视频一区| 亚洲成人激情小说| 国产一区二区三区在线|