文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>验证码

验证码

时间:2011-03-12  来源:奋斗张

验证码技术是会员登录最常用的验证技术,利用该技术可以防止用户利用机器人程序自动注册,登录,灌水,所谓验证码就是一串随机产生的数字和英文字母组合成德4位字符串,并且背景是带有一些干扰元素的图片,这样人通过肉眼可以辨识,但机器人程序就无能为力了。

1.自定义函数GenerateCheckCode()实现动态产生4个随机数或字母

 private string generateChdeckCode(){

 int number;//定义变量

 char code;

 string checkCode=String.Empty;

Random random=new Random()//定义随机变量实例

for(int i=0;i<4;i++){

 number=random.Next();

if(number%2==0){
code=(char)('0'+(char)(number%10));

}else{

 code=(char)('A'+(char)(number%26));

checkCode+=code.ToString();

}

}

Response.Cookies.Add(new HttpCookie("CheckCode",checkCode))

return chekcCode;

}

2.自定义函数CreateCheckCodeImage()实现动态生成会员登录验证码

private void CreateCheckCodeImage(string chekcCode){

 if(checkCode==null||checkCode.trim()==String.Empty){

 return;

}

System.Drawing.Bitmap image=new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*12.5)),22)

Graphics g=Graphics.FromImage(image);

try{

 Random random=new Random();

g.Clear(Color.White);

for(int i=0;i<2;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.Black),x1,y1,x2,y2);

}

Font font=new System.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold));

System.Drawing.Drawing2D.LinearGradientBrush brush=new System.Draeing.Drawing2D.LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);

g.DrawString(checkCode,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(ranom.Next()));

}

g.DrawRectangel(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1);

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

image.Safe(ms,System.Drawing.Imageing.ImageFormat.Gif);

Respon.ClearContent();

respon.ContentType="image/Gif";

Respon.BinaryWrite(ms.ToArray());
}finally{

g.Dispose();

image.Disponse();

}

}

调用方法:

CreateCheckCodeImage(GenerateCheckCode);

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载