首页 > 代码库 > 生成验证码
生成验证码
Login.html
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 </head> 7 <body> 8 <table> 9 <tr>10 <td>用户名:</td>11 <td><input type="text" /></td>12 </tr>13 <tr>14 <td>密码:</td>15 <td><input type="password" /></td>16 </tr>17 <tr>18 <td>验证码</td>19 <td><img src=http://www.mamicode.com/"ValidCode.ashx" /></td>20 </tr>21 <tr></tr>22 </table>23 </body>24 </html>
ValidCode.ashx
1 <%@ WebHandler Language="C#" Class="ValidCode" %> 2 3 using System; 4 using System.Web; 5 using System.Drawing; 6 7 public class ValidCode : IHttpHandler 8 { 9 10 public void ProcessRequest(HttpContext context)11 {12 context.Response.ContentType = "image/jpeg";13 //生成随机验证码的字符串14 string code = MakeRanStr();15 using (Image img = new Bitmap(100, 26))16 {17 using (Graphics g = Graphics.FromImage(img))18 {19 //背景为白色20 g.Clear(Color.White);21 //验证码边框22 g.DrawRectangle(Pens.Black, new Rectangle(0, 0, img.Width - 1, img.Height - 1));23 //干扰线24 DrwaGanRaoXian(50, g, img);25 g.DrawString(code, new Font("微软雅黑", 12), Brushes.Red, 1, 2); 26 }27 img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);28 }29 }30 31 /// <summary>32 /// 画干扰线33 /// </summary>34 void DrwaGanRaoXian(int count, Graphics g, Image img)35 {36 Random ran = new Random();37 for (int i = 0; i < count; i++)38 {39 Point p1 = new Point(ran.Next(img.Width), ran.Next(img.Height));40 Point p2 = new Point(p1.X - ran.Next(-50, 50), p1.Y - ran.Next(-50, 50));41 g.DrawLine(Pens.Black, p1, p2);42 }43 }44 45 /// <summary>46 /// 生成随机码47 /// </summary>48 /// <returns></returns>49 string MakeRanStr()50 {51 char[] charArr = new char[10] { ‘a‘, ‘b‘, ‘c‘, ‘1‘, ‘2‘, ‘3‘, ‘你‘, ‘好‘, ‘啊‘, ‘呀‘ };52 string strValidCode = "";53 Random ran = new Random();54 int index = 0;55 for (int i = 0; i < 5; i++)56 {57 index = ran.Next(9);58 strValidCode += charArr[index];59 }60 return strValidCode;61 }62 63 public bool IsReusable64 {65 get66 {67 return false;68 }69 }70 71 }
生成验证码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。