C# 生成简单验证码

网站登录总是会用到验证码,生成验证码对于C#来说很简单。因为有专门封装好的GDI+类可以直接调用使用具体代码如下

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 using System.Drawing;
 8
 9 namespace Ajax.验证码
10 {
11     public partial class Yanma : System.Web.UI.Page
12     {
13         private int CodeNum = 4;
14         private string codeNum = "";
15         protected void Page_Load(object sender, EventArgs e)
16         {
17             VeriflcationCode();
18             HuaCode(codeNum);
19         }
20
21         private void VeriflcationCode()
22         {
23             //生成验证码
24             string AllChar = "1,2,3,4,5,6,7,8,9,0,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";
25             string[] StrChar = AllChar.Split(‘,‘);
26             Random rd = new Random();
27             string Codes = "";
28             for (int i = 0; i < CodeNum; i++)
29             {
30                 Codes += StrChar[rd.Next(0, 35)];
31             }
32             codeNum = Codes;
33             Session["VerCode"] = Codes;
34         }
35
36         private void HuaCode(string Codes)
37         {
38             int iwidth = (int)(Codes.Length * 17);//定义画布的宽
39             System.Drawing.Bitmap images = new System.Drawing.Bitmap(iwidth, 25);//声明一个画布类,初始化图片的宽和高
40
41             Graphics g = Graphics.FromImage(images);
42             Font f = new Font("Arial", 14);//定义文字类型
43             Brush b = new System.Drawing.SolidBrush(Color.Black);//文字颜色 黑色
44             Brush r = new System.Drawing.SolidBrush(Color.FromArgb(166, 8, 8));//文字颜色
45             g.Clear(System.Drawing.ColorTranslator.FromHtml("#99C1CB"));//背景色
46
47             char[] ch = Codes.ToCharArray();
48             for (int i = 0; i < ch.Length; i++)
49             {
50                 if (ch[i] >= ‘0‘ && ch[i] <= ‘9‘)
51                 {
52                     //数字用红色显示
53                     g.DrawString(ch[i].ToString(), f, r, 3 + (i * 14), 3);//将文字画出 文字、字体类型、字体颜色、字体间距、字体于顶部间距
54                 }
55                 else
56                 {   //字母用黑色显示
57                     g.DrawString(ch[i].ToString(), f, b, 3 + (i * 14), 3);
58                 }
59             }
60
61             //for循环用来生成一些随机的水平线
62             Pen blackPen = new Pen(Color.Black, 0);
63             Random rand = new Random();
64             for (int i = 0; i < 5; i++)
65             {
66                 int y = rand.Next(images.Height);
67                 g.DrawLine(blackPen, 0, y, images.Width, y);
68             }
69
70
71             System.IO.MemoryStream ms = new System.IO.MemoryStream();
72             images.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
73             //history back 不重复
74             Response.Cache.SetNoStore();//这一句
75             Response.ClearContent();
76             Response.ContentType = "image/Jpeg";
77             Response.BinaryWrite(ms.ToArray());
78             g.Dispose();
79             images.Dispose();
80         }

效果为:

C# 生成简单验证码

时间: 2024-10-10 20:04:36

C# 生成简单验证码的相关文章

java生成简单验证码图片

概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在java中生成随机数无非就是调用Random的api,但为了后续更好的实用,应该分成多种组合以适应需求的变化,应将生成随机数的个数和类型组合还有排除字符抽取成参数,这个也比较简单,没有什么难度,就直接贴上代码 1 /** 2 * 生成随机验证码 3 * @param type 类型 4 * @param

一般处理程序结合gdi生成简单验证码

using (Bitmap bitmap=new Bitmap(100,40)) { using (Graphics g=Graphics.FromImage(bitmap)) { //生成验证码string s = code(); g.DrawString(s, new Font("黑体", 20), Brushes.Red, 0, 0); bitmap.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFo

php基础之gd图像生成、缩放、logo水印和简单验证码实现

php基础之gd图像生成.缩放.logo水印和简单验证码实现 阅读目录 图像生成 缩略图 水印生成 验证码 gd 库是php最常用的图片处理库之一(另外一个是imagemagick),可以生成图片.验证码.水印.缩略图等等.要使用gd库首先需要开启gd库扩 展,windows系统下需要在php.ini中将extension=php_gd2.dll 前边的分号去掉然后重启web服务器,linux系统下一般在编译php时已经开启gd库扩展,要是没有开启gd库扩展则需要先编译安装freetype ,j

学习笔记:利用GDI+生成简单的验证码图片

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 学习笔记:利用GDI+生成简单的验证码图片 1 /// <summary> 2 /// 单击图片时切换图片 3 /// </summary> 4 /// <param name="sender">&

java实现生成简单图片验证码

原文:java实现生成简单图片验证码 源代码下载地址:http://www.zuidaima.com/share/1550463428840448.htm 项目载图: 该项目要转换为Dynamic web project http://www.zuidaima.com/blog/1618162161323008.htm 另外缺少jar包: http://www.zuidaima.com/jar/search/jstl-1.0.1.htm http://www.zuidaima.com/jar/s

验证码识别与生成类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数字+小写.数字+大写.数字+大小写等情况. 四位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数字+小写.数字+大写.数字+大小写等情况. 简单验证码识别:验证码类型 : 数字+字母, 纯英文, 纯数字,计算题 英数_验证码识别:纯数字,纯英文,数字+英文 中英数_验证码识别:英文.数

随机生成数字验证码

protected void Page_Load(object sender, EventArgs e) { // 生成验证码 string checkCode = RandLetter(4); // 把新的验证码保存到Session中 Session["CheckCode"] = checkCode; // 输入验证码 CreateImages(checkCode); } /// <summary> /// 生成验证图片 /// </summary> ///

简单 验证码 功能

在贴代码之前首先简述一下验证验证码原理:随机获取验证码的值,把这个值存到session中,其作用可想而知就是要拿来跟前台数据作比较,通过Graphics将值进行模糊处理之后传到前台页面展示. 1 package com.skss.util; 2 3 4 import java.awt.Color; 5 import java.awt.Font; 6 import java.awt.Graphics; 7 import java.awt.image.BufferedImage; 8 import

android 客户端生成随机验证码的实现

由于项目中要用到验证码,自己找了些资料,试着就把这个验证码给做了出来,代码不是很多,比较的简单,下面给大家看看我是怎么实现该功能的: 源码地址下载:http://download.csdn.net/detail/u014608640/7268905 首先当然是写XML咯,贴上代码 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" andr