當前位置:名人名言大全網 - 端午節短信 - 手機網站短信代碼

手機網站短信代碼

我們在設計用戶登錄模塊時,經常使用驗證碼,可以有效防止黑客軟件的惡意破解。現在公開我常用驗證碼的源代碼。

如何使用:

1.在Web項目中添加壹個類,比如“CreateImage.cs”,然後復制我發布的源代碼;

2.創建壹個新的Web表單,如“Image.aspx”,並添加代碼“CreateImage”。DrawImage()“到Page_Load。當然,不要忘記添加對該類的引用!!

3.可以將以下javascript代碼添加到頁面的適當位置(您想要放置驗證碼的位置)。

源代碼如下所示:

【csharp】查看純文本

///

///驗證碼模塊

///

公共類CreateImage

{

公共靜態void DrawImage()

{

create image img = new create image();

HttpContext。current . session【“check code“】= imgrnd num(4);

img。創建圖像(HttpContext。當前會話【“CheckCode“】。ToString());

}

///

///生成驗證圖片

///

///驗證字符

私有void CreateImages(字符串校驗碼)

{

int iwidth =(int)(checkCode。長度* 13);

系統。繪圖。位圖圖像=新系統。drawing . Bitmap(iwidth,23);

圖形g =圖形。FromImage(圖像);

g.透明(彩色。白色);

//定義顏色

Color【】c = { Color。黑色,彩色。紅色,彩色。深藍色,彩色。綠色,彩色。橙色,彩色。棕色,彩色。暗青色,彩色。紫色};

//定義字體

string【】font = {“verdana“、“Microsoft sans serif“、“Comic sans ms“、“Arial“、“Song Ti“};

Random rand = new Random();

//隨機輸出噪聲

for(int I = 0;我& lt50;i++)

{

int x =蘭特。下壹張(圖片。寬度);

int y =蘭特。下壹張(圖片。身高);

g.DrawRectangle(新鋼筆(顏色。淺灰色,0),x,y,1,1);

}

//輸出不同字體和顏色的驗證碼字符。

for(int I = 0;我

{

int cindex = rand。下壹個(7);

int findex = rand。下壹個(5);

Font f =新系統。繪圖。字體(字體【findex】,10,系統。drawing . font style . bold);

刷b =新系統。drawing . solid brush(c【cindex】);

int ii = 4;

if((I+1)% 2 = = 0)

{

ii = 2;

}

g.拉繩(校驗碼。substring(I,1),f,b,3+(I * 12),ii);

}

//繪制邊框

g.DrawRectangle(新鋼筆(顏色。黑色,0),0,0圖像。寬度-1,圖像。高度-1);

//輸出到瀏覽器

系統。IO .內存流ms =新系統。IO . memory stream();

形象。保存(毫秒,系統。drawing . imaging . imageformat . JPEG);

HttpContext。current . response . clear content();

//響應。clear content();

HttpContext。current . response . content type =“image/Jpeg“;

HttpContext。current . response . binary write(ms . ToArray());

g.dispose();

形象。dispose();

}

///

///生成隨機字母

///

///生成的字母數

///字符串

私有字符串rnd num(int VcodeNum)

{

string Vchar =“0,1,2,3,4,5,6,7,8,9“;

string【】VC array = Vchar。拆分(‘,‘);

字符串VNum =““;//因為字符串很短,所以不需要StringBuilder。

int temp =-1;//記錄最後壹個隨機數,盡量避免產生幾個相同的隨機數。

//采用簡單算法,保證生成隨機數的差異性。

Random rand = new Random();

for(int I = 1;我& ltVcodeNum+1;i++)

{

if(temp!= -1)

{

rand =新的Random(I * temp *未檢查((int)DateTime。now . Ticks));

}

int t =蘭特。接下來(VcArray。長度);

if(temp!=-1 & amp;& amp溫度== t)

{

返回rnd num(VcodeNum);

}

temp = t;

VNum+= VC array【t】;

}

返回VNum

}

}