示例#1
0
        private static string numandletChar = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,i,s,t,u,v,w,x,y,z"; //数字加字母

        /// <summary>
        /// 随机产生验证码的数据
        /// 创建人:孙佳杰  时间:2015.1.19
        /// </summary>
        /// <param name="codeNum">长度</param>
        /// <param name="mode">模式选择(0,1,2)</param>
        /// <returns>验证码的数据</returns>
        public static string RandomCode(int codeNum, StringRadomType mode)
        {
            string[] VcArray = null;
            //模式选择
            switch (mode)
            {
            case StringRadomType.SingleNumber: VcArray = numChar.Split(','); break;

            case StringRadomType.SingleLetter: VcArray = letChar.Split(','); break;

            case StringRadomType.NumberAndLetter: VcArray = numandletChar.Split(','); break;

            default: return("模式选择错误");
            }
            //定义随机器
            Random rand      = new Random();
            int    temp      = -1;
            string returnStr = "";//由于字符很短所以不适用stringbuilder

            for (int i = 0; i < codeNum; i++)
            {
                if (temp != -1)
                {
                    int ranSeed = i * temp *unchecked ((int)DateTime.Now.Ticks);  //进行随机的种子公式
                    rand = new Random(ranSeed);
                }
                int t = rand.Next(VcArray.Length);   //产生随机字符
                temp = t;
                //定义公式是否将字符大写
                if (t % 2 != 0 && t > 9)
                {
                    returnStr += VcArray[t];
                }
                else
                {
                    returnStr += VcArray[t].ToUpper();
                }
            }
            return(returnStr);
        }
        private static string numandletChar = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,i,s,t,u,v,w,x,y,z";  //数字加字母

        /// <summary>
        /// 随机产生验证码的数据
        /// 创建人:孙佳杰  时间:2015.1.19
        /// </summary>
        /// <param name="codeNum">长度</param>
        /// <param name="mode">模式选择(0,1,2)</param>
        /// <returns>验证码的数据</returns>
        public static string RandomCode(int codeNum, StringRadomType mode)
        {
            string[] VcArray = null;
            //模式选择
            switch (mode)
            {
                case StringRadomType.SingleNumber: VcArray = numChar.Split(','); break;
                case StringRadomType.SingleLetter: VcArray = letChar.Split(','); break;
                case StringRadomType.NumberAndLetter: VcArray = numandletChar.Split(','); break;
                default: return "模式选择错误";
            }
            //定义随机器
            Random rand = new Random();
            int temp = -1;
            string returnStr = "";//由于字符很短所以不适用stringbuilder
            for (int i = 0; i < codeNum; i++)
            {
                if (temp != -1)
                {
                    int ranSeed = i * temp * unchecked((int)DateTime.Now.Ticks);  //进行随机的种子公式
                    rand = new Random(ranSeed);
                }
                int t = rand.Next(VcArray.Length);   //产生随机字符
                temp = t;
                //定义公式是否将字符大写
                if (t % 2 != 0 && t > 9)
                {
                    returnStr += VcArray[t];
                }
                else
                {
                    returnStr += VcArray[t].ToUpper();
                }
            }
            return returnStr;
        }