當前位置:編程學習大全網 - 源碼下載 - 求用程序代碼實現向手機發送短信息的代碼,最好是c#語言.net或php的

求用程序代碼實現向手機發送短信息的代碼,最好是c#語言.net或php的

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

使用方法:

1、在Web項目中添加壹個類,如“CreateImage.cs”,然後將我公布的源代碼Copy進去;

2、再新建壹個Web窗體,如“Image.aspx”,在Page_Load中加入代碼 “CreateImage.DrawImage ();”當然別忘了加上對類的引用哦!!

3、在頁面的合適位置上(妳想放驗證碼的位置)上加上如下javascript代碼就OK 了,

源代碼如下: 

[csharp] view plaincopy

///

/// 驗證碼模塊

///

public class CreateImage

{

public static void DrawImage()

{

CreateImage img=new CreateImage();

HttpContext.Current.session["CheckCode"]=img.RndNum(4);

img.CreateImages(HttpContext.Current.Session["CheckCode"].ToString());

}

///

/// 生成驗證圖片

///

/// 驗證字符

PRivate void CreateImages(string checkCode)

{

int iwidth = (int)(checkCode.Length * 13);

System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 23);

Graphics g = Graphics.FromImage(image);

g.Clear(Color.White);

//定義顏色

Color[] c = {Color.Black,Color.Red,Color.DarkBlue,Color.Green,Color.Orange,Color.Brown,Color.DarkCyan,Color.Purple};

//定義字體

string[] font = {"Verdana","Microsoft Sans Serif","Comic Sans MS","Arial","宋體"};

Random rand = new Random();

//隨機輸出噪點

for(int i=0;i<50;i++)

{

int x = rand.Next(image.Width);

int y = rand.Next(image.Height);

g.DrawRectangle(new Pen(Color.LightGray, 0),x,y,1,1);

}

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

for(int i=0;i

{

int cindex = rand.Next(7);

int findex = rand.Next(5);

Font f = new System.Drawing.Font(font[findex], 10, System.Drawing.FontStyle.Bold);

Brush b = new System.Drawing.SolidBrush(c[cindex]);

int ii=4;

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

{

ii=2;

}

g.DrawString(checkCode.Substring(i,1), f, b, 3+(i*12), ii);

}

//畫壹個邊框

g.DrawRectangle(new Pen(Color.Black,0),0,0,image.Width-1,image.Height-1);

//輸出到瀏覽器

System.IO.MemoryStream ms = new System.IO.MemoryStream();

image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);

HttpContext.Current.Response.ClearContent();

//Response.ClearContent();

HttpContext.Current.Response.ContentType = "image/Jpeg";

HttpContext.Current.Response.BinaryWrite(ms.ToArray());

g.Dispose();

image.Dispose();

}

///

/// 生成隨機的字母

///

/// 生成字母的個數

/// string

private string RndNum(int VcodeNum)

{

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

string[] VcArray = Vchar.Split(',') ;

string VNum = "" ; //由於字符串很短,就不用StringBuilder了

int temp = -1 ; //記錄上次隨機數值,盡量避免生產幾個壹樣的隨機數

//采用壹個簡單的算法以保證生成隨機數的不同

Random rand =new Random();

for ( int i = 1 ; i < VcodeNum+1 ; i++ )

{

if ( temp != -1)

{

rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks));

}

int t = rand.Next(VcArray.Length ) ;

if (temp != -1 && temp == t)

{

return RndNum( VcodeNum );

}

temp = t ;

VNum += VcArray[t];

}

return VNum ;

}

}

  • 上一篇:PHP權限分配思路
  • 下一篇:x86版安卓系統x86版安卓
  • copyright 2024編程學習大全網