C#验证码的实现_验证码怎么实现

C#验证码的实现_验证码怎么实现一.编程思想(1).验证码由四位随机数字或者字母组成,此时就要考虑怎么获取随机数(2).各个字符之间怎么进行连接(3).当点击更换时会重新生成四位随机数(4).四位字符的显示二.代码的实现(1).引入伪随机数生成器Random,生成随机数实例化Random:Randomp=newRandom();//表示伪随机数生成器Randomp=newRandom();……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一.编程思想

(1).验证码由四位随机数字或者字母组成,此时就要考虑怎么获取随机数
(2).各个字符之间怎么进行连接
(3).当点击更换时会重新生成四位随机数
(4).四位字符的显示

二.代码的实现

(1).引入伪随机数生成器 Random,生成随机数

实例化Random: Random p = new Random();//表示伪随机数生成器

 Random p = new Random();//表示伪随机数生成器
(2).储存字符串

当生成字符串时,我们需要对它进行存储,我们声明一个string变量对它进行存储

//验证码是随机的字符串
            string zf = "";
(3).四位验证码字符的生成:
int type = p.Next(1,3);Next返回指定范围内的整数,包小不包大;
zf+=:对四个字符进行连接;
label1.Text = zf; :label中进行显示字符串;
label1.ForeColor = Color.FromArgb(p.Next(0,255), p.Next(0, 255), p.Next(0, 255)); :实现整体颜色随机;
字符数据类型的转换:(char)p.Next(65,91)将int类型转化为char类型; p.Next(0,10).ToString();:将int类型转化为string类型;
 for (int i= 0;i<4;i++)
            { 
   
                //类型首先随机四种 0.大写 1.小写 2.数字
                int type = p.Next(1,3);//返回指定范围内的整数,包小不包大
                if (type==0)
                { 
   
                    zf+=((char)p.Next(97, 123)).ToString();
                    this.BackColor = Color.Green;
                }
                if (type==1)
                { 
   
                    zf+=((char)p.Next(65,91)).ToString();
                }
                if (type==2)
                { 
   
                    zf+=p.Next(0,10).ToString();
                }
                label1.Text = zf;
            }
            label1.ForeColor = Color.FromArgb(p.Next(0,255), p.Next(0, 255), p.Next(0, 255));
        }
(4).整体代码的实现
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 验证码
{ 
   
    public partial class Form1 : Form
    { 
   
        public Form1()
        { 
   
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        { 
   
            Text = "验证码";
            this.BackColor = Color.Green;
            label1.BackColor = Color.White;
        }
        private void button1_Click(object sender, EventArgs e)
        { 
   
            //验证码是随机的字符串
            string zf = "";
            //也就是随机函数对象
            Random p = new Random();//表示伪随机数生成器
            for (int i= 0;i<4;i++)
            { 
   
                //类型首先随机四种 0.大写 1.小写 2.数字
                int type = p.Next(1,3);//返回指定范围内的整数,包小不包大
                if (type==0)
                { 
   
                    zf+=((char)p.Next(97, 123)).ToString();
                    this.BackColor = Color.Green;
                }
                if (type==1)
                { 
   
                    zf+=((char)p.Next(65,91)).ToString();
                }
                if (type==2)
                { 
   
                    zf+=p.Next(0,10).ToString();
                }
                label1.Text = zf;
            }
            label1.ForeColor = Color.FromArgb(p.Next(0,255), p.Next(0, 255), p.Next(0, 255));
        }
    }
}
(5).效果展示图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195482.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python3 软连接_python3哪个版本好用

    python3 软连接_python3哪个版本好用在ubuntu下面发现pip的默认版本指向的是python3.6,而因项目需要利用Python2.7.查看pip版本pip–version指向的的Python3.6,而此时已经为Python建立2.7的软连接查看默认调用pip的位置.whichpip输出/usr/local/bin/pip先删除sudorm-rf/usr/local/bin/pip安装python2.7版本的pipsu…

    2022年9月1日
    4
  • COleVariant功能[通俗易懂]

    COleVariant功能[通俗易懂]COLeVariant是数据库常用到的数据类型。它可以是字符串,整型值,日期等。知道怎样将它转换为CString。COLeVariant类是对VARIANT结构的封装。它的构造函数具有极为强大的功能

    2022年7月1日
    27
  • C++——STL中三种顺序容器的简要差别「建议收藏」

    C++——STL中三种顺序容器的简要差别

    2022年1月19日
    54
  • android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序

    在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity,结果总是存在好几个同样的activity,就算要返回的activity正在前台,点击消息后也会重新打开一个一样的activity,返回好几次才能退出,而不能像qq之类的点击通知栏消息回到之前存在的activity,如果存在就不再新建一个activity说的有点绕,如果是遇到此类问题的肯定能懂,没遇到过

    2022年3月10日
    42
  • javaquartz定时任务设置时间,太牛了![通俗易懂]

    javaquartz定时任务设置时间,太牛了![通俗易懂]前言其实前几篇文章已经写了好多有关于Spring源码的文章,事实上,很多同学虽然一直在跟着阅读、学习这些Spring的源码教程,但是一直都很迷茫,这些Spring的源码学习,似乎只是为了面试吹逼用,我大概问过一些同学,很多同学看了很长时间的Spring但是依旧不知道如何将这些学到的知识运用到实际的案例上!其实这个问题很好解决,如果你在开发中很少能够遇见需要Spring扩展时,不妨把目光放到一些依托于Spring的项目,看看它们是如何运用Spring的扩展点的。对于Spring的学习,我认为最终真正学会的

    2022年7月13日
    36
  • C#自定义控件之-winform美化「建议收藏」

    C#自定义控件之-winform美化「建议收藏」对于系统自带的窗体,博主实在不敢恭维,测试时使用方便快捷,但真正项目中无法使用,只因不美观的外表,每次都很头疼窗体的美化,这里列出一些需要解决的问题和自己收集到的解决方法,如有错误请指出。废话不多说先上一张最近写的一个小工具的效果图。以上是工具的基本截图,在工具的制作中对窗体的自定义包括以下几点:一、无边框拖动窗体当设置窗体的fromboderstyle为null时,系统自带的窗体

    2022年5月13日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号