C#实现验证码功能
作者:Just Do Its 发布时间:2021-11-28 22:20:27
标签:C#,验证码
本文实例为大家分享了C#实现验证码功能的具体代码,供大家参考,具体内容如下
分析
需要四个字符(字母(大小写)+数字)
将四个字符连接成字符串
将连接的字符串写入label中,在label中显示验证码
解决办法
1、创建随机数生成器(Random)
2、使用for循环4次(验证码四个字符)
3、将4个随机字母随机数字连接成一个字符串
4、将链接好的字符串写入label中
所用到的属性,循环以及数据类型的转换
用到Random随机生成器类(先实例化)Random s = new Random();
FromArgb方法label1.ForeColor = Color.FromArgb(s.Next(0, 255), s.Next(0, 255), s.Next(0, 255));字体随机颜色
用到for循环(验证码为四位所以循环四次)
将数字转化为字符(大写字母) (char)s.Next(65,91)显式转换
将字符转化为字符串(ToString方法)字符后面直接点ToString((char)s.Next(65,91)).Tostring
将数字转化为字符串(ToString)
具体代码如下:
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 Test_Security_Code
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//分析:验证码为4个字符,产生数字大小写字母随机,将四个字符连接成一个字符串,将字符串写入Label中
string c = "";//初始化验证码
Random s = new Random();//随机数生成器
for (int i = 0; i < 4; i++)//组成(随机四位0~9数字、大小写字母)
{
int b = s.Next(0,3);//b表示验证码类型,此随机数为0、1、2
//验证码是数字是字母随机(0表示大写字母,1表示数字,2表示小写字母)
if (b==0)//如果类型是大写字母
{
//此处将数字转化为字符型,将字符转化为字符串
c += ((char)s.Next(65,91)).ToString();
}
if (b==1)//如果是数字
{
//将数字转化为字符串
c += s.Next(0, 10).ToString();
}
if (b==2)//如果是小写字母
{
c += ((char)s.Next(97,122)).ToString();
}
label1.Text = c;//将c中的值赋给label文本
//设置label中字体颜色
label1.ForeColor = Color.FromArgb(s.Next(0, 255), s.Next(0, 255), s.Next(0, 255));
//设置label中字体大小
label1.Font = new Font("黑体",s.Next(10,30));
}
}
private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "看不清换一张";
}
}
}
效果图
来源:https://blog.csdn.net/liu991029/article/details/105463438
0
投稿
猜你喜欢
- JPA like 模糊查询 语法格式public List<InstitutionInfo> getAllInstitution
- 一、interrupt的使用特点我们先看2个线程打断的示例首先是可打断的情况:@Testpublic void interruptedTes
- 需要用到的知识:注解、AOP、ExpiringMap(带有有效期的映射)我们可以自定义注解,把注解添加到我们的接口上。定义一个切面,执行方法
- spring-cloud-config 配置中心实现Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集中
- 一、pom.xml引入相关模块web、jpa、thymeleaf、oracle:<dependency> &nbs
- 在页面提交到tomcat乱码 解决方法是在tomcat/conf/server.xml中进行配置以tomcat6.0.32为例,需将以下代码
- 前言当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。从寝室到机房,从机房到图书
- 类和对象的关系类就是一类对象的统称。对象就是这一类具体化的一个实例。 (对象是类的实例化)对象是什么?此对象非彼对象!!!😂说到对象就要提到
- 问题描述Feign 在请求时是不会将 request 的请求头带着请求的,导致假如 Feign 调用的接口需要请求头的信息,比如当前用户的
- 排序二叉树概念二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。是数据
- 这篇文章主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 1.通过无参构造函数创建(默认)2.通过有参构造创建1.constructor 的index赋值<bean id="user
- 1. 开方:Math.sqrt(x);2. x的a方:Math.pow(x,a);3. 绝对值:Math.abs(x);4. BigInte
- 本文实例讲述了C#实现农历日历的方法。分享给大家供大家参考。具体实现方法如下://天干 private static
- 1、什么是值传递,什么是引用传递?值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数
- 何为系统APP何为三方APP?位于system分区内的是系统软件,位于data分区得的是第三方后安装的软件系统软件是指控制和协调计算机及外部
- 一、方法(Method)概念 1、Java 中的方法就是其他编程语言中的函数(Function) 2、方法的定义格式:①
- 包含默认敏感词过滤和自定义敏感词过滤。导入依赖<dependency> <groupId>com.git
- Mybatis动态排序 #{} ${}问题在写Mybatis动态排序是遇到一个问题,开始,我是这样写的<if test="o
- 前言一直对它们之间的关系感到好奇,SpringBoot既然是Spring的封装,那么SpringBoot在初始化时应该也会有Bean的加载,