注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jiwenxu的博客

CODE

 
 
 

日志

 
 

验证码技术在网站中的应用[转]  

2006-10-30 14:50:36|  分类: .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
private void Page_Load(object sender, System.EventArgs e)
  {
   //在此处放置用户代码以初始化页面
   //RndNum是一个自定义函数
   stringVNum=RndNum(4); //这里的数字4代表显示的是4位的验证字符串!
   Session["VNum"]=VNum;
   ValidateCode(VNum);
  }

  //生成图像函数
  private voidValidateCode(string VNum)
  {
   intGheight=(int)(VNum.Length * 7);
   //gheight为图片宽度,根据字符长度自动更改图片宽度
   System.Drawing.BitmapImg = new System.Drawing.Bitmap(Gheight,12);
   Graphics g =Graphics.FromImage(Img);
   g.DrawString(VNum,newSystem.Drawing.Font("宋体",9),newSystem.Drawing.SolidBrush(Color.Red),0,0);
   //在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)
   System.IO.MemoryStreamms=new System.IO.MemoryStream();
   Img.Save(ms,System.Drawing.Imaging.ImageFormat.Png);
   Response.ClearContent();//需要输出图象信息 要修改HTTP头
   Response.ContentType="image/Png";
   Response.BinaryWrite(ms.ToArray());
   g.Dispose();
   Img.Dispose();
   Response.End();
  }

  //生成随机数函数中从Vchar数组中随机抽取
  //字母区分大小写
  public string RndNum(intVcodeNum)
  {
   string Vchar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z";
  
   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));
      
    //intt =  rand.Next(35) ;
    intt=rand.Next(35);
    if(temp != -1 && temp == t)
    {
     returnRndNum( VcodeNum );
    }
    temp= t  ;
    VNum+= VcArray[t];

   }
   return VNum;
  }

  评论这张
 
阅读(33)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018