生成验证码的源码

原创 2004年10月13日 15:37:00

参照别人的一个:
ASP.Net实现验证码
-----------------------------------start----------------------------------------------
using System.Drawing;
using System.Drawing.Imaging;
private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   //RndNum是一个自定义函数
   string VNum=RndNum(4); //这里的数字4代表显示的是4位的验证字符串!
   Session["VNum"]=VNum;
   ValidateCode(VNum);
  }
//生成图像函数
  private void ValidateCode(string VNum)
  {
   int Gheight=(int)(VNum.Length * 11.5);
   //gheight为图片宽度,根据字符长度自动更改图片宽度
   System.Drawing.Bitmap Img = new System.Drawing.Bitmap(Gheight,20);
   Graphics g = Graphics.FromImage(Img);
   g.DrawString(VNum,new System.Drawing.Font("Arial",10),new System.Drawing.SolidBrush(Color.Red),3,3);
   //在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)
   System.IO.MemoryStream ms=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(int VcodeNum)
  {
   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));
    }   
    //int t =  rand.Next(35) ;
    int t=rand.Next(35);
    if (temp != -1 && temp == t)
    {
     return RndNum( VcodeNum );
    }
    temp = t  ;
    VNum += VcArray[t];

   }
   return VNum ;
  }
-----------------------------------end--------------------------------------------

下面是Login.Aspx在在调用提交按钮的响应事件中
public void doit(object sender, System.EventArgs e)
  {
   if(Page.IsValid)
   {
    
    string VNum;
    VNum=Session["VNum"].ToString();       
    ViewState["VNum"]=VNum;
    if(this.Vcode.Text==ViewState["VNum"].ToString())
    {

     Hover.Manage.CheckLogin obj=new Hover.Manage.CheckLogin();
     string name=username.Text;
     string password=FormsAuthentication.HashPasswordForStoringInConfigFile(pass.Text.ToString(),"md5");
     if(!obj.checklogin(name,password))
     {
      Response.Redirect("../Error.aspx?action=Errorlogin");
      Response.End();
      return;
     }
     else
     {
      Session.Add("adminname",name);
      Session.Add("adminpass",password);
      Response.Redirect("Default.aspx");
      Response.End();
      return;
     }
    
    }
    else
    {
     Response.Write("<script>alert(/"请输入正确的附加码!/");</script>");
    }
   }
  }
   如果提交过来的验证字符串正确就验证是否是合法用户!
否则弹出提示返回登陆页!你也可以简化此页!
   if(this.Vcode.Text==ViewState["VNum"].ToString())
    {
        Response.Write("验证码正确");
    }
   else
    {
        Response.Write("验证码错误!");
    }

验证码图片生成源码

package com.liyunpeng.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics...
  • li13523456109
  • li13523456109
  • 2014年03月03日 15:17
  • 484

java生成图片验证码的源码

package com.hzjw.common; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; im...
  • gladmustang
  • gladmustang
  • 2014年10月28日 16:42
  • 1384

关于生成验证码的源码以及问题解决

在网上找了一个验证码的源代码,使用后出现如下问题:不管你输入正确与否,都会提示验证码错误。后来经过在qq群里和csdn发贴咨询,得知是ie浏览器缓存问题。在经过他人的指点后改正了错误。源代码如下:--...
  • zdyguilong
  • zdyguilong
  • 2006年11月23日 17:06
  • 1013

Java简单验证码原理(源代码+步骤操作)

本文章一共分为四步: 一、新建名为:CheckCodeServlet的servlet类 二、复制以下代码到新建的CheckCodeServlet类中,修改自己的包名 package com.see...
  • seesun2012
  • seesun2012
  • 2016年05月10日 13:25
  • 3252

ASP生成图片验证码,不需要组件

建立font.asp 文件Dim FontDim Letter(30)Set Font = Server.CreateObject("Scripting.Dictionary")Letter(0) =...
  • great_domino
  • great_domino
  • 2007年04月03日 22:45
  • 5307

想要自己动手做Image图片验证码吗?对比用户输入和验证码相同与否那么请注意下面的代码!

有时候我们可能需要一些方法来解决是否是真实用户在使用我们的系统,这里就需要使用验证码,验证码是怎样生成的呢?我们来关注下面的coder,Bitmap 对象负责生成我们要的字符图片,那么返回的二进制数据...
  • wrgoodliness
  • wrgoodliness
  • 2016年09月30日 15:55
  • 598

使用ASP生成图片彩色校验码

使用ASP生成图片彩色校验码49行代码,三个文件 Asp文件:Code.Asp 数据文件:body.Fix , Head.Fix --下载:下载打包文件 用法:  代码解释: Response.buf...
  • abandonship
  • abandonship
  • 2005年07月12日 09:11
  • 1235

网站前台验证码(源代码)的实现点击刷新

为了方便想学习网站前台方向读者刚睁开眼睛就决定将自己写的验证码的实现写下来供大家参考 在此基础上其实可以实现运算的验证码、或者是图片展示的验证码、其他样式的验证码。请大家多多评价提供自己的想法这样能够...
  • blueZhangFun
  • blueZhangFun
  • 2015年07月19日 08:44
  • 3267

生成验证码的几种方式

1,在jsp页面中直接生成验证码 //image.jsp
  • yhzhaohy
  • yhzhaohy
  • 2016年09月04日 20:06
  • 8619

asp数字验证码源代码

在这里我们用到3个页面分别是:index.asp   code.asp     display.asp   当然,名字你可以随便取,下面我们开始了:一.   index.asp 中代码:...
  • feiyafei2008
  • feiyafei2008
  • 2011年03月26日 01:25
  • 2106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:生成验证码的源码
举报原因:
原因补充:

(最多只允许输入30个字)