深圳網站制作公司中如何去實現asp.net(c#)驗證碼

2021-10-25    分類: 網站制作

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

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

新建頁面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;
//這一步是為了將驗證碼寫入Session,進行驗證,不能缺省,也可一使用cookie
getImageValidate(str);
}
//得到隨機字符串,長度自己定義
private string getRandomValidate(int len)
{
int num;
int tem;
string rtuStr = "";
for (int i = 0; i < len; i++)
{
num = ran.Next();
/*
* 這里可以選擇生成字符和數字組合的驗證碼
*/
tem = num % 10 + 0;//生成數字
//tem = num % 26 + a;//生成字符
rtuStr += Convert.ToChar(tem).ToString();
}
return rtuStr;
}
//生成圖像
private void getImageValidate(string strValue)
{
//string str = "OO00"; //前兩個為字母O,后兩個為數字0
int width = Convert.ToInt32(strValue.Length * 12); //計算圖像寬度
Bitmap img = new Bitmap(width, 23);
Graphics gfc = Graphics.FromImage(img); //產生Graphics對象,進行畫圖
gfc.Clear(Color.White);
drawLine(gfc, img);
//寫驗證碼,需要定義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條線,也可以增加,也可以不要線,只要隨機雜點即可
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); //注意畫筆一定要淺顏色,否則驗證碼看不清楚
}
}
private void drawPoint(Bitmap img)
{
/*
//選擇畫100個點,可以根據實際情況改變
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()));//雜點顏色隨機
}
*/
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頁面中使用驗證碼,并實現雙擊更換圖片功能:

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

本文名稱:深圳網站制作公司中如何去實現asp.net(c#)驗證碼
瀏覽地址:http://m.kartarina.com/news/132848.html

網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 亚洲av无码潮喷在线观看| 亚洲国产精品无码久久一区二区| 久久AV高潮AV无码AV| 亚洲人成网亚洲欧洲无码| 亚洲AV无码成人精品区狼人影院| 久久久国产精品无码一区二区三区| 无码专区6080yy国产电影| 无码GOGO大胆啪啪艺术| 免费无遮挡无码视频网站| 亚洲va无码va在线va天堂| 亚洲爆乳AAA无码专区| 国产a级理论片无码老男人| 在线精品自偷自拍无码中文| 国精品无码一区二区三区在线| 永久免费无码网站在线观看| 18禁免费无码无遮挡不卡网站 | 无码专区天天躁天天躁在线| 无码中文在线二区免费| 人妻丰满熟妇AV无码区乱| 久久久久亚洲AV无码专区桃色| 亚洲国产精品无码久久久| 国产亚洲美日韩AV中文字幕无码成人| 亚洲Av永久无码精品一区二区| 色综合久久久久无码专区| 中文字幕日韩精品无码内射| 无码任你躁久久久久久老妇| 99久久无码一区人妻a黑| 久久久久久亚洲av成人无码国产 | 狠狠躁夜夜躁无码中文字幕| 人妻少妇精品无码专区漫画| 日韩AV无码中文无码不卡电影| 亚洲国产综合无码一区| 中文字幕无码精品亚洲资源网| 无码激情做a爰片毛片AV片 | 亚洲精品无码激情AV| 成人年无码AV片在线观看| 无码一区18禁3D| 国产精品亚洲а∨无码播放不卡| 人妻av中文字幕无码专区| 亚洲精品无码日韩国产不卡av| 久久久久av无码免费网|