c#生成随机验证码

来源:互联网 发布:软件工程设计招聘 编辑:程序博客网 时间:2024/05/21 11:07
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 = true;        /// <summary>        /// 是否加入小写字母(不包括o)        /// </summary>        public bool AddLowerLetter        {            get { return this.addLowerLetter; }            set { this.addLowerLetter = value; }        }        #endregion        #region 是否加入大写字母        /// <summary>        /// 是否加入大写字母        /// </summary>        private bool addUpperLetter = true;        /// <summary>        /// 是否加入大写字母(不包括O)        /// </summary>        public bool AddUpperLetter        {            get { return this.addUpperLetter; }            set { this.addUpperLetter = value; }        }        #endregion        #endregion        #region Constructor Method        /// <summary>        /// 构造方法        /// </summary>        public Captcha()        {        }        #endregion        #region Public Method        /// <summary>        /// 得到验证码字符串        /// </summary>        public string GetText()        {            string text = string.Empty;            //没有外部输入验证码时随机生成            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'))                    {                        objStringBuilder.Append(temp);                    }                }            }            //加入小写字母a-z,不包括o            if (this.addLowerLetter)            {                char temp = ' ';                for (int i = 0; i < 26; i++)                {                    temp = Convert.ToChar(i + 97);                    //如果生成的字母不是'o'                    if (!temp.Equals('o'))                    {                        objStringBuilder.Append(temp);                    }                }            }            //生成验证码字符串            int index = 0;            for (int i = 0; i < length; i++)            {                index = objRandom.Next(0, objStringBuilder.Length);                text += objStringBuilder[index];                objStringBuilder.Remove(index, 1);            }            return text;        }        #endregion    }

0 0
原创粉丝点击