随机产生验证码
2009-09-10 09:47
375 查看
protected void Page_Load(object sender, EventArgs e) { this.CreateCheckCodeImage(GenerateCheckCode()); } private string GenerateCheckCode() { int number; char code; string checkCode = string.Empty; Random radom = new Random(); for (int i = 0; i < 6; i++) { number = radom.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 checkCode; } private 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); System.Drawing.Graphics g = System.Drawing.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.GreenYellow), x1, y1, x2, y2); } Font font = new System.Drawing.Font("Verdana", 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 < 80; 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.Red), 0, 0, image.Width - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); } }
<form id="form1" runat="server">
<div>
<asp:TextBox runat="server" ID="txt"></asp:TextBox>
<img src="pic.aspx" alt="点击更换图片!" onclick="this.src=this.src+'?'"/>
<br />
<asp:Button runat="server" ID="bt" onclick="bt_Click" Text="提交"/><asp:Label runat="server" ID="msg"></asp:Label>
</div>
</form>
//C#
相关文章推荐
- PIL 产生随机验证码代码实现
- 随机产生验证码图片---参考代码
- WEB Service产生随机验证码图片
- 一个产生随机数字 字符串验证码 日期的类扩展实现
- 一个产生随机图片验证码的示例
- 【wed】wed网页随机产生验证码图片(版本tomcat-8.0.14)
- python--random模块(产生随机值)、洗牌、验证码应用
- 产生随机的验证码
- python在图片写文字,产生随机验证码序列号
- 【Java代码篇】——随机产生验证码以及错误OgnlValueStack:64
- 使用servlet产生随机验证码
- C#产生随机验证码的代码
- 【javaSE】随机产生验证码
- JS 生成随机色,产生验证码,获取URL中的"?"
- 随机产生验证码
- Java随机产生四位验证码
- wed网页随机产生验证码图片(版本tomcat-8.0.14)
- Java随机产生4位验证码(数字、大小写字母组成)
- ASP.NET产生随机验证码
- 随机产生指定位数的验证码