`
sunxboy
  • 浏览: 2827938 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

随机生成字母数字验证码,可定义验证码的长度 (转)

阅读更多
 
java 代码
 
  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Collections;  
  5. using System.Web;  
  6. using System.Web.Security;  
  7. using System.Web.UI;  
  8. using System.Web.UI.WebControls;  
  9. using System.Web.UI.WebControls.WebParts;  
  10. using System.Web.UI.HtmlControls;  
  11. using System.Drawing;  
  12. using System.Drawing.Imaging;  
  13.   
  14. public partial class Login : System.Web.UI.Page  
  15. ...{  
  16.     protected void Page_Load(object sender, EventArgs e)  
  17.     ...{  
  18.         if (!IsPostBack)  
  19.         ...{  
  20.         this.CreateCheckCodeImage(GenerateCheckCode());  
  21.         }  
  22.    }  
  23.   private string GenerateCheckCode()  
  24.     ...{  
  25.         int number;  
  26.         char code;  
  27.         string checkCode = String.Empty;  
  28.   
  29.         System.Random random = new Random();  
  30.   
  31.         for (int i = 0; i < 15; i++)  
  32.         ...{  
  33.             number = random.Next();  
  34.             if (number % 2 == 0)  
  35.                 code = (char)('0' + (char)(number % 10));  
  36.             else  
  37.                 code = (char)('A' + (char)(number % 26));  
  38.   
  39.             checkCode += code.ToString();  
  40.         }  
  41.         Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));  
  42.         return checkCode;  
  43.     }  
  44.   
  45.     private void CreateCheckCodeImage(string checkCode)  
  46.     ...{  
  47.         if (checkCode == null || checkCode.Trim() == String.Empty)  
  48.             return;  
  49.   
  50.         System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);  
  51.         Graphics g = Graphics.FromImage(image);  
  52.   
  53.         try  
  54.         ...{  
  55.             //生成随机生成器  
  56.             Random random = new Random();  
  57.   
  58.             //清空图片背景色  
  59.             g.Clear(Color.White);  
  60.   
  61.             //画图片的背景噪音线  
  62.             for (int i = 0; i < 35; i++)  
  63.             ...{  
  64.                 int x1 = random.Next(image.Width);  
  65.                 int x2 = random.Next(image.Width);  
  66.                 int y1 = random.Next(image.Height);  
  67.                 int y2 = random.Next(image.Height);  
  68.   
  69.                 g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);  
  70.             }  
  71.   
  72.             Font font = new System.Drawing.Font("Arial"12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));  
  73.             System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(00, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);  
  74.             g.DrawString(checkCode, font, brush, 22);  
  75.   
  76.             //画图片的前景噪音点  
  77.             for (int i = 0; i < 180; i++)  
  78.             ...{  
  79.                 int x = random.Next(image.Width);  
  80.                 int y = random.Next(image.Height);  
  81.   
  82.                 image.SetPixel(x, y, Color.FromArgb(random.Next()));  
  83.             }  
  84.   
  85.             //画图片的边框线  
  86.             g.DrawRectangle(new Pen(Color.Silver), 00, image.Width - 1, image.Height - 1);  
  87.            image.Save(Server.MapPath("imgs") + "\VaImag.gif", ImageFormat.Gif);  
  88.         }  
  89.         finally  
  90.         ...{  
  91.             g.Dispose();  
  92.             image.Dispose();  
  93.         }  
  94.     }  
  95. }  
分享到:
评论

相关推荐

    php中文字母数字验证码实现代码

    英文同数字 &lt;?... //定义header,声明图片文件,最好是png,无版权之扰; //生成新的四位整数验证码 session_start();... //循环随机抽取四位前面定义的字母和数字; for($i=1;$i&lt;=4;$i++) { $num=rand(0

    4位数验证控件,代码可以修改

    //得到随机字符串,长度自己定义 private string getRandomValidate(int len) { int num; int tem; string rtuStr = ""; for (int i = 0; i ; i++) { num = ran.Next(); /* * 这里可以选择生成字符和数字...

    《程序天下:JavaScript实例自学手册》光盘源码

    16.17 JavaScript生成验证码(二) 第17章 进度条、滚动条特效处理 17.1 使用符号制作的进度条 17.2 用table制作的进度条 17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS制作的进度条(二) 17.5 进度条形式的下载效果 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变页面中单元格的背景颜色 109 实例076 屏蔽偶数次的数据输出 110 实例...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变页面中单元格的背景颜色 109 实例076 屏蔽偶数次的数据输出 110 实例...

    程序天下:JavaScript实例自学手册

    16.17 JavaScript生成验证码(二) 第17章 进度条、滚动条特效处理 17.1 使用符号制作的进度条 17.2 用table制作的进度条 17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS制作的进度条(二) 17.5 进度条形式的下载效果 ...

    PHP开发实战1200例源码

    实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变页面中单元格的背景颜色 109 实例076 屏蔽偶数次的数据输出 110 实例...

    明日科技C#开发入门及项目实战

    实例213 使用linq生成随机序列 实例214 筛选指定类型的元素 实例215 使用linq技术对对象进行筛选操作 实例216 使用linq技术对对象进行排序操作 实例217 使用linq技术对对象进行聚合操作 实例218 使用linq技术对对象...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例213 使用linq生成随机序列 406 实例214 筛选指定类型的元素 408 实例215 使用linq技术对对象进行筛选操作 409 实例216 使用linq技术对对象进行排序操作 410 实例217 使用linq技术对对象进行聚合操作 413 实例218...

    C#编程经验技巧宝典

    73 &lt;br&gt;0106 如何获得一个字符串中数字的长度 74 &lt;br&gt;0107 如何获得字符串中数字或字母的长度 74 &lt;br&gt;0108 如何获得字符串中某个数字的位置 75 &lt;br&gt;0109 获得字符串中汉字的个数 76 &lt;br&gt;0110...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例207 设置可执行文件的生成图标 278 第10章 MDI窗体和继承窗体 279 10.1 MDI窗体的使用 280 实例208 设置窗体为父窗体 280 实例209 使子窗体最大化显示 281 实例210 对子窗体进行水平排列 282 实例211 对子窗体...

    PHP程序开发范例宝典III

    实例033 根据数据表结构自动生成数据录入页面 45 实例034 投票系统中单选按钮与复选框的应用 47 2.3 下拉列表的应用 50 实例035 在下拉菜单中显示数据表某列的字段值 50 实例036 在下拉菜单中显示数组中的...

Global site tag (gtag.js) - Google Analytics