【C#】最简单的本地验证码(带项目代码)

标签: C# winform

C#写的本地生成验证码小软件,附带了验证方法,成品小软件在bin目录下



附上主要代码:

        private string Checkcode()
        {
            int nubre;
            char code;
            string checkCode = string.Empty;    //声明变量存储随机生成的4位英文或数字
            Random random = new Random();       //生成随机数
            for(int i=0;i<4;i++)
            {
                nubre = random.Next();        //返回非负随机数
                if (nubre % 2 == 0)            //判断是否为偶数
                    code = (char)('0' + (char)(nubre % 10));
                else                           //如果不是偶数
                    code = (char)('a' + (char)(nubre % 26));
                checkCode += " " + code.ToString();       //累加字符串
                check = checkCode;
            }
            return checkCode;           //返回字符串
        }


       private void CodeImage(string checkCode)
        {
            if (checkCode == null || checkCode.Trim() == string.Empty)
                return;
            Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 9.5)), 30);
            Graphics g = Graphics.FromImage(image);    //创建graphics对象
            try
            {
                Random random = new Random();    //生成随机生成器
                g.Clear(Color.White);            //清空图片背景色
                for(int i=0;i<3;i++)            //画图片的背景噪音线
                {
                    int x1 = random.Next(image.Width);
                    int x2 = random.Next(image.Width);
                    int y1 = random.Next(image.Height);
                    int y2 = random.Next(image.Height);
                    g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
                }
                Font font = new Font("Arial", 15, (FontStyle.Bold));
                g.DrawString(checkCode, font, new SolidBrush(Color.Red), 2, 2);
                for(int i=0;i<150;i++)         //画图片的前景噪音线
                {
                    int x = random.Next(image.Width);
                    int y = random.Next(image.Height);
                    image.SetPixel(x, y, Color.FromArgb(random.Next()));
                }
                //画图片边框线
                g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
                this.pictureBox1.Width = image.Width;     //设置pictureBox的宽度
                this.pictureBox1.Height = image.Height;     //设置pictureBox的高度
                this.pictureBox1.BackgroundImage = image;      //设置pictureBox的背景图片
            }
            catch
            { }
        }



成品:本地验证码

微信截图_20210110140708.png






本文出自《粉墨记忆》 => 《【C#】最简单的本地验证码(带项目代码)
转载时请注明出处及相应链接, 本文地址:https://www.fmxk.ac.cn/?post=4

WRITTEN BY

avatar


发表评论: