<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 深圳網(wǎng)站制作公司中如何去實(shí)現(xiàn)asp.net(c#)驗(yàn)證碼

            2021-10-25    分類: 網(wǎng)站制作

            思考驗(yàn)證碼的用處
            1.認(rèn)為圖片驗(yàn)證碼沒有什么用,并且也特別的煩人(每次上移動(dòng)的網(wǎng)站都要頻頻地輸入驗(yàn)證碼),但人家要求,也只好弄一個(gè)。
            2.驗(yàn)證碼有用,有什么作用

            比如某黑客獲得一銀行賬號(hào),然后打開賬號(hào)的開戶銀行的網(wǎng)上銀行登錄界面。
            (1)沒有驗(yàn)證碼,只需要輸入用戶名和密碼就能進(jìn)入。
            黑客:馬上寫了一個(gè)程序,用來模擬瀏覽器向網(wǎng)上銀行服務(wù)器提交賬號(hào)和密碼嘗試登錄。(枚舉字典攻擊 )由于取款密碼是6位阿拉伯?dāng)?shù)字,黑客的電腦從六個(gè)零開始測試一直到六個(gè)九(也就有一百萬種組合),這一定會(huì)測試出真正的密碼。
            黑客:找到一臺(tái)寬帶高速上網(wǎng)的電腦,假設(shè)這臺(tái)電腦1秒能測試10個(gè)密碼,于是花費(fèi)10萬秒的時(shí)間肯定能找到密碼。10萬秒也就是27小時(shí),一天多點(diǎn)的時(shí)間,實(shí)際上很可能用不了那么長的時(shí)間。黑客外頭轉(zhuǎn)了一圈回來,發(fā)現(xiàn)密碼已經(jīng)找到了,于是馬上登錄網(wǎng)上銀行撈錢,或者偽造一個(gè)銀行卡去aTM機(jī)上提取現(xiàn)金。也就是說黑客最多花了一天時(shí)間即可獲得數(shù)目不可預(yù)知的非法收入。
            (2)采用了驗(yàn)證碼技術(shù)
            用戶登錄時(shí)除了要輸入賬號(hào)和取款密碼,瀏覽器還顯示一個(gè)圖片,里面顯示了一些潦草的字符,用戶需要辨認(rèn)這些字符然后再輸入進(jìn)去,瀏覽器向服務(wù)器提交表單時(shí)會(huì)附加用戶輸入的驗(yàn)證碼,服務(wù)器接受表單數(shù)據(jù)后除了校驗(yàn)賬號(hào)和取款密碼后,還要檢查驗(yàn)證碼是否輸入正確,若登錄信息校驗(yàn)失敗,則服務(wù)器端則會(huì)提示重新登錄,而且還生成包含隨機(jī)內(nèi)容的新的驗(yàn)證碼,用戶在次登錄時(shí)又得重新識(shí)別新的驗(yàn)證碼了。
            由于正確的驗(yàn)證碼文本是保存在服務(wù)器上的,客戶端的黑客程序不可能獲得,驗(yàn)證碼的內(nèi)容是隨機(jī)的,黑客程序也無法找到規(guī)律,只能辨認(rèn)從服務(wù)器端發(fā)出的包含驗(yàn)證碼的圖片來獲得驗(yàn)證碼。這里就體現(xiàn)了電腦和人腦的差別了,人腦在圖形識(shí)別方面遠(yuǎn)遠(yuǎn)超過了目前的電腦,服務(wù)器端使用一些技術(shù)生成的書寫潦草,充滿隨機(jī)分布的雜點(diǎn)的圖片,人腦是可以相當(dāng)容易的識(shí)別的,但目前的電腦是難以識(shí)別的。黑客程序無法識(shí)別驗(yàn)證碼,只能顯示圖片讓黑客親自辨認(rèn),這時(shí)每測試一次密碼,黑客都得仔細(xì)辨認(rèn)一下驗(yàn)證碼圖片,然后手工輸入驗(yàn)證碼文本。最多要輸入一百萬次。

            新建頁面checkimage.aspx

            checkimage.aspx.cs代碼:

            using System;
            using System.Collections;
            using System.Configuration;
            using System.Data;
            using System.Web;
            using System.Web.Security;
            using System.Web.UI;
            using System.Web.UI.HtmlControls;
            using System.Web.UI.WebControls;
            using System.Web.UI.WebControls.WebParts;
            using System.Drawing;
            using System.IO;
            namespace jgy_keshi_lyb
            {
            public partial class checkimage : System.Web.UI.Page
            {
            Random ran = new Random();
            protected void Page_Load(object sender, Eventargs e)
            {
            string str = getRandomValidate(4);
            Session["check"] = str;
            //這一步是為了將驗(yàn)證碼寫入Session,進(jìn)行驗(yàn)證,不能缺省,也可一使用cookie
            getImageValidate(str);
            }
            //得到隨機(jī)字符串,長度自己定義
            private string getRandomValidate(int len)
            {
            int num;
            int tem;
            string rtuStr = "";
            for (int i = 0; i < len; i++)
            {
            num = ran.Next();
            /*
            * 這里可以選擇生成字符和數(shù)字組合的驗(yàn)證碼
            */
            tem = num % 10 + 0;//生成數(shù)字
            //tem = num % 26 + a;//生成字符
            rtuStr += Convert.ToChar(tem).ToString();
            }
            return rtuStr;
            }
            //生成圖像
            private void getImageValidate(string strValue)
            {
            //string str = "OO00"; //前兩個(gè)為字母O,后兩個(gè)為數(shù)字0
            int width = Convert.ToInt32(strValue.Length * 12); //計(jì)算圖像寬度
            Bitmap img = new Bitmap(width, 23);
            Graphics gfc = Graphics.FromImage(img); //產(chǎn)生Graphics對象,進(jìn)行畫圖
            gfc.Clear(Color.White);
            drawLine(gfc, img);
            //寫驗(yàn)證碼,需要定義font
            font font = new font("arial", 12, fontStyle.Bold);
            System.Drawing.Drawing2D.LinearGradientBrush brush =
            new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.DarkOrchid, Color.Blue, 1.5f, true);
            gfc.DrawString(strValue, font, brush, 3, 2);
            drawPoint(img);
            gfc.DrawRectangle(new Pen(Color.DarkBlue), 0, 0, img.Width - 1, img.Height - 1);
            //將圖像添加到頁面
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            //更改Http頭
            Response.ClearContent();
            Response.ContentType = "image/gif";
            Response.BinaryWrite(ms.Toarray());
            //Dispose
            gfc.Dispose();
            img.Dispose();
            Response.End();
            }
            private void drawLine(Graphics gfc, Bitmap img)
            {
            //選擇畫10條線,也可以增加,也可以不要線,只要隨機(jī)雜點(diǎn)即可
            for (int i = 0; i < 10; i++)
            {
            int x1 = ran.Next(img.Width);
            int y1 = ran.Next(img.Height);
            int x2 = ran.Next(img.Width);
            int y2 = ran.Next(img.Height);
            gfc.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2); //注意畫筆一定要淺顏色,否則驗(yàn)證碼看不清楚
            }
            }
            private void drawPoint(Bitmap img)
            {
            /*
            //選擇畫100個(gè)點(diǎn),可以根據(jù)實(shí)際情況改變
            for (int i = 0; i < 100; i++)
            {
            int x = ran.Next(img.Width);
            int y = ran.Next(img.Height);
            img.SetPixel(x,y,Color.Fromargb(ran.Next()));//雜點(diǎn)顏色隨機(jī)
            }
            */
            int col = ran.Next();//在一次的圖片中雜店顏色相同
            for (int i = 0; i < 100; i++)
            {
            int x = ran.Next(img.Width);
            int y = ran.Next(img.Height);
            img.SetPixel(x, y, Color.Fromargb(col));
            }
            }

            }
            }

            在login.aspx頁面中使用驗(yàn)證碼,并實(shí)現(xiàn)雙擊更換圖片功能:

            <img src="checkimage.aspx"
            alt=看不清楚,雙擊圖片換一張。
            ondblclick="this.src= checkimage.aspxflag= + Math.random() "
            border="1" height="24" />

            新聞標(biāo)題:深圳網(wǎng)站制作公司中如何去實(shí)現(xiàn)asp.net(c#)驗(yàn)證碼
            新聞來源:http://www.jbt999.com/news48/132848.html

            網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項(xiàng)目有網(wǎng)站制作

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 高清中文字幕在线A片 | 99热99官方网站 | 丰满老熟女一级AA片色欲 | 红桃视频亚洲 | 手机A V在线 |