c# 使用自带Random 随机数生成器来模拟随机生成验证码
原理很简单 使用Random 自带生成器 将每次随机生成的数字字母进行拼接之后 用文本框来显示!具体实现原理和讲解见代码!namespace MP3Player
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "看不清,换一张!";
}
private void button1_Click(object sender, EventArgs e)
{
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));
}
}
}
}
是不是数字转ASCII 快乐小风 发表于 2021-10-25 13:38
是不是数字转ASCII
不存在转码 是将随机生成的字母和数字拼接到一起显示到标签 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));
这部分应该写在for外面 陈腔滥调的K 发表于 2021-10-25 13:56
label1.Text = c;//将c中的值赋给label文本
//设置label中字体 ...
for 循环里面 写的是随机数的生成 都可以 只不过这样写业务逻辑清楚一些! xzcnmb 发表于 2021-10-25 14:01
for 循环里面 写的是随机数的生成 都可以 只不过这样写业务逻辑清楚一些!
额,只是简单玩玩的话是可以的,都能达到最终效果;不过会多做几次无意义的工作,耗费性能,想要提高编程水平还是得注意下写法的 验证码这东西 都不需要咱自己造了,,网上现成的多,,,自己造的毫无安全难度可言,,
页:
[1]