麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

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

2019-11-17 02:13:24
字體:
供稿:網(wǎng)友

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

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

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

1、繪制純數(shù)字的網(wǎng)站驗證碼

本實(shí)例實(shí)現(xiàn)的是數(shù)字驗證碼技術(shù),即隨機(jī)生成4位數(shù)字作為驗證碼。在開發(fā)繪制會員登錄驗證模塊時可以使用數(shù)字驗證碼技術(shù)。

■設(shè)計過程

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

{

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

}

else

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

}

2、繪制數(shù)字與字母組合的網(wǎng)站驗證碼

和純數(shù)字的很相似,具體區(qū)別在隨機(jī)生成字符串的方法中

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{//生成隨機(jī)生成器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);//畫圖片的前景噪音點(diǎn)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();}}

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

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>");

}

}

那么有關(guān)于數(shù)字與字母組合的網(wǎng)站驗證碼就生成了。

3、四則運(yùn)算式的驗證碼

其他的和數(shù)字和字母混合生成的驗證碼相似,我就不寫了,具體區(qū)別在隨機(jī)生成四則運(yùn)算式的方法中,如下

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;

}

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 性高跟鞋xxxxhd4kvideos | 亚洲片在线观看 | 美女黄网站免费观看 | 成人免费观看av | 国产免费最爽的乱淫视频a 毛片国产 | 深夜福利视频免费观看 | 久久久久久久久久久影视 | 人成免费a级毛片 | 色呦呦一区二区三区 | 在线免费视频a | 亚洲国产视频在线 | 夜夜看| 久久影院免费观看 | 99精品视频免费 | 蜜桃精品视频 | av在线播放免费观看 | 午夜精品在线视频 | 毛片网站视频 | 中国的免费的视频 | 欧美亚洲一区二区三区四区 | 福利在线小视频 | 国产一区二区三区影视 | 欧美日韩一| 亚洲午夜久久久久 | 国产精品视频自拍 | 三人弄娇妻高潮3p视频 | 精品久久久久久久久久久久 | 国产精品成人亚洲一区二区 | 毛片在线免费观看视频 | 免费黄色入口 | 一级做a爱片性色毛片高清 日本一区二区在线看 | av成人免费在线观看 | 特黄一区二区三区 | 3344永久免费 | 红杏亚洲影院一区二区三区 | 欧美日韩大片在线观看 | 日韩中字在线 | 亚洲一区二区三区精品在线观看 | 一级黄色在线免费观看 | 久夜tv| 免费观看一区 |