CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于校验码

楼主mtzll()2006-03-31 13:24:39 在 .NET技术 / ASP.NET 提问

我想问一下校验码的问题。就是象CSDN登陆的时候需输入校验码。哪个是随机生成的吗?怎样做的?谢谢 问题点数:20、回复次数:3Top

1 楼lincent(微笑流浪)回复于 2006-03-31 13:29:21 得分 1

生成随机字符串,然后调用.net里的图片处理类生成图片就OK了Top

2 楼ruanruoshi(软若石)回复于 2006-03-31 13:31:32 得分 18

//  
  //  
  //已有一页生成的代码在项目CommonWeb/CreateCheckCode.aspx里,此代码作为备份代码存在。  
  //  
   
  using   System;  
  using   System.Drawing;  
  using   System.Drawing.Imaging;  
  using   System.IO;  
  using   System.Web;  
   
  namespace   XuLongClass  
  {  
  ///   <summary>  
  ///   CheckCode   的摘要说明。  
  ///   </summary>  
  public   class   CheckCode   :   System.Web.UI.Page  
  {  
  public   static   string   GenerateCheckCode()  
  {  
  int   number;  
  char   code;  
  string   checkCode   =   String.Empty;  
   
  System.Random   random   =   new   Random();  
   
  for(int   i=0;   i<5;   i++)  
  {  
  number   =   random.Next();  
   
  if(number   %   2   ==   0)  
  code   =   (char)('0'   +   (char)(number   %   10));  
  else  
  code   =   (char)('A'   +   (char)(number   %   26));  
   
  checkCode   +=   code.ToString();  
  }  
   
  System.Web.HttpContext.Current.Response.Cookies.Add(new   HttpCookie("CheckCode",   checkCode));  
   
  return   checkCode;  
  }  
   
  public   static   void   CreateCheckCodeImage(string   checkCode)  
  {  
  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<25;   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.Silver),   x1,   y1,   x2,   y2);  
  }  
   
  Font   font   =   new   System.Drawing.Font("Arial",   12,   (System.Drawing.FontStyle.Bold   |   System.Drawing.FontStyle.Italic));  
  System.Drawing.Drawing2D.LinearGradientBrush   brush   =   new   System.Drawing.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(random.Next()));  
  }  
   
  //画图片的边框线  
  g.DrawRectangle(new   Pen(Color.Silver),   0,   0,   image.Width   -   1,   image.Height   -   1);  
   
  System.IO.MemoryStream   ms   =   new   System.IO.MemoryStream();  
  image.Save(ms,   System.Drawing.Imaging.ImageFormat.Gif);  
  System.Web.HttpContext.Current.Response.ClearContent();  
  System.Web.HttpContext.Current.Response.ContentType   =   "image/Gif";  
  System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());  
  }  
  finally  
  {  
  g.Dispose();  
  image.Dispose();  
  }  
  }  
  }  
  }  
  Top

3 楼fphuang(人在哈尔滨·四月)回复于 2006-03-31 13:39:46 得分 1

来看看我的控件及例子吧  
   
  http://202.118.164.104/djld/webform1.aspxTop

相关问题

  • 校验码的问题
  • 关于crc校验码
  • 电话号码的校验问题
  • 怎么校验邮政编码?
  • 请问校验码有什么用?
  • 为什么登陆需要校验码
  • 串行通信中,用VC++如何用查表法编写CRC16校验码?(加校验和解校验的程序)急需,谢谢!!
  • 关于CRC校验码,海明码之类的内容
  • 校验码或者验证码有什么作用
  • 串行通信中,用VC++如何编写CRC校验码?

关键词

  • 代码
  • 校验码
  • 生成
  • checkcode
  • random
  • 图片
  • drawing
  • using system

得分解答快速导航

  • 帖主:mtzll
  • lincent
  • ruanruoshi
  • fphuang

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo