C#生成随机验证码
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
using System.Web;
namespace Demo
{
/// <summary>
/// Captcha
/// </summary>
public class Captcha
{
#region Private Field
/// <summary>
/// 随机种子
/// </summary>
private Random objRandom = new Random();
#endregion
#region Public Property
#region 验证码长度
/// <summary>
/// 验证码长度
/// </summary>
private int length = 4;
/// <summary>
/// 验证码长度(默认为4)
/// </summary>
public int Length
{
get { return this.length; }
set { this.length = value; }
}
#endregion
#region 验证码字符串
/// <summary>
/// 验证码字符串
/// </summary>
private string verifyCodeText = null;
/// <summary>
/// 验证码字符串
/// </summary>
public string VerifyCodeText
{
get { return this.verifyCodeText; }
set { this.verifyCodeText = value; }
}
#endregion
#region 是否加入小写字母
/// <summary>
/// 是否加入小写字母
/// </summary>
private bool addLowerLetter = false;
/// <summary>
/// 是否加入小写字母(不包括o)
/// </summary>
public bool AddLowerLetter
{
get { return this.addLowerLetter; }
set { this.addLowerLetter = value; }
}
#endregion
#region 是否加入大写字母
/// <summary>
/// 是否加入大写字母
/// </summary>
private bool addUpperLetter = false;
/// <summary>
/// 是否加入大写字母(不包括O)
/// </summary>
public bool AddUpperLetter
{
get { return this.addUpperLetter; }
set { this.addUpperLetter = value; }
}
#endregion
#region 字体大小
/// <summary>
/// 字体大小
/// </summary>
private int fontSize = 18;
/// <summary>
/// 字体大小(默认为18)
/// </summary>
public int FontSize
{
get { return this.fontSize; }
set { this.fontSize = value; }
}
#endregion
#region 字体颜色
/// <summary>
/// 字体颜色
/// </summary>
private Color fontColor = Color.Blue;
/// <summary>
/// 字体颜色(默认为Blue)
/// </summary>
public Color FontColor
{
get { return this.fontColor; }
set { this.fontColor = value; }
}
#endregion
#region 字体类型
/// <summary>
/// 字体类型
/// </summary>
private string fontFamily = "Verdana";
/// <summary>
/// 字体类型(默认为Verdana)
/// </summary>
public string FontFamily
{
get { return this.fontFamily; }
set { this.fontFamily = value; }
}
#endregion
#region 背景色
/// <summary>
/// 背景色
/// </summary>
private Color backgroundColor = Color.AliceBlue;
/// <summary>
/// 背景色(默认为AliceBlue)
/// </summary>
public Color BackgroundColor
{
get { return this.backgroundColor; }
set { this.backgroundColor = value; }
}
#endregion
#region 前景噪点数量
/// <summary>
/// 前景噪点数量
/// </summary>
private int foreNoisePointCount = 2;
/// <summary>
/// 前景噪点数量(默认为2)
/// </summary>
public int ForeNoisePointCount
{
get { return this.foreNoisePointCount; }
set { this.foreNoisePointCount = value; }
}
#endregion
#region 随机码的旋转角度
/// <summary>
/// 随机码的旋转角度
/// </summary>
private int randomAngle = 45;
/// <summary>
/// 随机码的旋转角度(默认为40度)
/// </summary>
public int RandomAngle
{
get { return this.randomAngle; }
set { this.randomAngle = value; }
}
#endregion
#endregion
#region Constructor Method
/// <summary>
/// 构造方法
/// </summary>
public Captcha()
{
this.GetText();
}
#endregion
#region Private Method
/// <summary>
/// 得到验证码字符串
/// </summary>
private void GetText()
{
//没有外部输入验证码时随机生成
if (String.IsNullOrEmpty(this.verifyCodeText))
{
StringBuilder objStringBuilder = new StringBuilder();
//加入数字1-9
for (int i = 1; i <= 9; i++)
{
objStringBuilder.Append(i.ToString());
}
//加入大写字母A-Z,,不包括O
if (this.addUpperLetter)
{
char temp = ‘ ‘;
for (int i = 0; i < 26; i++)
{
temp = Convert.ToChar(i + 65);
//如果生成的字母不是‘O‘
if (!temp.Equals(‘O‘))
{
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68401.html