gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

ASP.NET圖形驗證碼生成實踐

為什么要使用圖形驗證碼

為了防止攻擊者編寫程序重復提交表單,為其他用戶和網站運行制造麻煩,所以在提交表單之前一般需要使用圖形驗證碼進行驗證,確認提交操作是人為操作,而非機器批量操作。

原理剖析

在生成圖形驗證碼時,主要應用兩方面的技術:

1、生成隨機數或字母

2、將生成的隨機數或者隨機字母轉換成圖片格式并在圖片上加入噪點并顯示出來。

生成方法:

1、前端控件代碼

<asp:TextBox ID="txtValidateNum" runat="server" Width="98px"></asp:TextBox> <asp:Image ID="Image1" runat="server" Height="22px" Width="58px" ImageUrl="~ValidateNum.aspx"/>請輸入圖片中驗證碼!

2、ValidateNum.aspx頁處理步驟

(1) 隨機生成一個長度為N的隨機字符串,N的值可由開發人員自行設置。該字符串包含數字,字母等。

(2) 將隨機生成的字符串創建成圖片并顯示。

(3) 保存驗證碼

首先在ValidateNum .aspx.cs文件中創建一個CreateRandomNum(int n)方法,隨機生成一個長度為n的隨機字符串。為了避免生成重復的隨機數,將通過變量記錄隨機數結果,如果出現于上次隨機數相同的數值,則調用方法本身,以保證生成不同的隨機數。代碼如下:

//生成隨機字符串 private string CreateRandomNum (int n) {     string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";     string[] allCharArray = allChar.Split(',');//拆分成數組     string randomNum = "";     int temp = 1;     Random rand = new Random();     for(int i = 0;i < n;i++)     {         if(temp != -1)         {             rand = new Random(i * temp *((int)DateTime.Now.Ticks));         }         int t = rand.Next(35);         if(temp == t)         {             return CreateRandomNum(n);         }         temp = t;         randomNum += allCharArray[i];     }     return randomNum; }

然后創建CreateImage(string validateNum)方法基于產生的隨機字符串,進一步生成圖形碼,為了進一步保證安全性,為圖形驗證碼加一些干擾色,如隨機背景花紋、文字處理等。代碼如下:

//生成圖片 private void CreateImage(string validateNum) {     if(validateNum == null || validateNum.Trim() == String.Empty)         return;     //生成Bitmap圖像     System.Drawing.Bitmap image = new System.Drawing.Bitmap(validateNum.Length * 12 + 10,22);     Graphics g = Graphics.FromImage(image);     try     {         //生成隨機生成器         Random random = new Random();         //清空圖片背景色         g.Clear(Color.White);         //畫圖片的背景噪音線         for(int i = 0; i < 25; i++)         {             int x1 = random.Next(image.Width);             int x2 = random.Next(image.Width);             int y1 = random.Next(image.Height);             int y2 = random.Next(image.Height);             g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2);         }         Font font = new System.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));         System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);         g.DrawString(validateNum,font,brush,2,2);         //畫圖片的前景噪音點         for(int i = 0;i<100;i++)         {             int x = random.Next(image.Width);             int y = random.Next(image.Height);             image.SetPixel(x,y,Color.FromArgb(random.Next()));         }         //畫圖片的邊框線         g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width - 1,image.Height - 1);         System.IO.MemoryStream ms = new System.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();     } }

最后,在頁面加載事件Page_Load中,創建并顯示驗證碼字符串的圖片,將驗證字符串保存在Session里。

protected void Page_Load(object sender,EventArgs e) {     if(!IsPostBack)     {         string validateNum = CreateRandomNum(4);//生成4位隨機字符串         CreateImage(validateNum);//將隨機字符串繪制成圖片         Session["ValidateNum"] = validateNum;  //將隨機字符串保存在Session中     } }

至此,一個簡單的圖像驗證碼生成算法已經寫完,當然大家可以在這個基礎上增加更加豐富的安全設置,比如Session的過期時間等。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
手机看片福利日韩| 亚洲一区二区中文字幕在线观看| 婷婷中文字幕在线观看| 欧美男女交配视频| 欧美大尺度做爰床戏| 色悠悠久久综合网| 日韩中文字幕a| 婷婷激情小说网| 99久久99精品| 日本免费黄色小视频| 在线观看av的网址| 国产av国片精品| 欧美一区二区三区爽大粗免费| 青青草国产精品视频| 黄色一级视频在线播放| 欧美日韩亚洲一| 一道本在线免费视频| 五月花丁香婷婷| 青青视频免费在线| 欧美一区二区三区爽大粗免费 | 日本丰满大乳奶| 国产精品久久久久久久久电影网| 国产自产在线视频| 天堂av在线网站| 男人j进女人j| 欧美私人情侣网站| 久久99国产精品一区| 日韩欧美视频网站| 国产大片一区二区三区| 中文字幕无码精品亚洲资源网久久| 精品这里只有精品| 中文字幕第一页亚洲| 成人一级片网站| 国产欧美精品aaaaaa片| 中文字幕无码不卡免费视频| 日韩视频在线观看一区二区三区| 久久久久99精品成人片| 免费av网址在线| 男人添女人下部视频免费| 5月婷婷6月丁香| 成人亚洲免费视频| 欧美日韩国产精品激情在线播放| 手机在线国产视频| 久久久一本二本三本| www.亚洲自拍| 邪恶网站在线观看| 凹凸日日摸日日碰夜夜爽1| 妺妺窝人体色www看人体| av中文字幕网址| 小泽玛利亚视频在线观看| 1024精品视频| 日本毛片在线免费观看| 欧美一级欧美一级| 青青草综合在线| 色婷婷一区二区三区在线观看| 欧洲黄色一级视频| 99热这里只有精品免费| 奇米777在线| 国产农村妇女精品久久| 成人黄色一级大片| 奇米视频7777| 成年人网站av| 99精品一区二区三区的区别| 三级性生活视频| 香蕉视频色在线观看| 午夜免费福利视频在线观看| 婷婷六月天在线| 中文av一区二区三区| 手机在线成人免费视频| 天天干天天玩天天操| 天天干天天干天天干天天干天天干| 无码人妻精品一区二区三区66| 妓院一钑片免看黄大片| 亚洲污视频在线观看| 天堂av8在线| 欧美国产视频一区| 欧美狂野激情性xxxx在线观| 成熟丰满熟妇高潮xxxxx视频| 婷婷五月综合缴情在线视频| 国产精品69页| 亚洲第一精品区| 日韩五码在线观看| 亚洲综合在线网站| 91性高潮久久久久久久| 久久久久xxxx| www..com日韩| 一区二区三区入口| 看全色黄大色大片| 日本免费黄视频| 国产系列第一页| 5月婷婷6月丁香| 91亚洲一区二区| 久久精品国产精品亚洲色婷婷| 国产又大又黄又粗又爽| 国产夫妻自拍一区| 亚洲xxxx2d动漫1| 国产 欧美 日韩 一区| 激情视频综合网| 美女av免费观看| 色哟哟精品视频| 久久这里只有精品8| 91女神在线观看| 日韩国产一级片| 欧美性视频在线播放| 精品视频一区二区在线| 无码毛片aaa在线| 在线观看免费av网址| 国产午夜伦鲁鲁| 五月天在线免费视频| 国产免费999| 国产高清精品在线观看| www.日本在线视频| 欧美精品色视频| 欧美日韩中文在线视频| 永久免费网站视频在线观看| av无码精品一区二区三区| 日韩欧美不卡在线| 精品国产一区二区三区在线| 天天操天天摸天天爽| 内射国产内射夫妻免费频道| 欧美高清中文字幕| 免费网站在线观看视频| 艳母动漫在线观看| 日韩成人av免费| 欧美视频国产视频| 国产探花在线观看视频| 污污视频网站在线| 国产大片一区二区三区| 免费看涩涩视频| 日本免费色视频| 日韩视频在线观看一区二区三区| 亚洲国产日韩欧美在线观看| 人妻丰满熟妇av无码区app| 激情网站五月天| 成年人小视频网站| 一区二区免费av| 色香蕉在线观看| 日韩一级特黄毛片| 久久久久久久久久久99| 男女午夜激情视频| 一起操在线视频| 成人高清dvd| 日日碰狠狠添天天爽超碰97| www黄色av| 91香蕉国产线在线观看| 免费看毛片的网址| 免费黄色福利视频| 色www免费视频| 久无码久无码av无码| 国产成人久久婷婷精品流白浆| 天天影视综合色| 国产又粗又大又爽的视频| 国产中文字幕免费观看| 久国产精品视频| 国产一区 在线播放| 中文字幕第21页| 亚洲高潮无码久久| av免费网站观看| 国产女人18毛片| 久草综合在线观看| 亚洲精品天堂成人片av在线播放| 无码人妻丰满熟妇区96| 久久久久xxxx| 鲁一鲁一鲁一鲁一色| 激情 小说 亚洲 图片: 伦| 日韩欧美猛交xxxxx无码| 天堂av在线网站| 男人添女人下面高潮视频| 日本一二三四区视频| 久激情内射婷内射蜜桃| 男女男精品视频站| 国产中文字幕二区| 日本国产中文字幕| 中文字幕免费高清在线| 成人免费无码av| 国产中文字幕二区| 国产爆乳无码一区二区麻豆| 五月激情五月婷婷| 成人亚洲视频在线观看| 777精品久无码人妻蜜桃| 日本黄色播放器| 加勒比av中文字幕| 亚洲高清在线免费观看| 国产二区视频在线播放| 国产欧美综合一区| 粉嫩虎白女毛片人体| 国产九九九九九| 国产自产在线视频| www国产免费| 毛片在线视频观看| 免费看日本黄色| 99精品一区二区三区的区别| av动漫免费观看| 欧美一级特黄aaaaaa在线看片| 手机成人av在线| 97超碰在线视| 欧美一级片免费播放| 免费毛片小视频| 波多野结衣家庭教师在线播放| 一本久道高清无码视频|