任务:新增验证码、密码存储加密、窗口菜单栏。
目录
验证码
新建数组,存储数字+大小写字母。
随机数,随机组成四个字符。
private string Rcode; //数组存放验证码
private static char[] constant =
{ '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','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
public void Randomcode() //随机生成验证码函数
{
int i;
Rcode = "";
Random rand = new Random();
for (i = 0; i < 4; i++)
{
Rcode += constant[rand.Next(0, 57)];
}
textBox3.Text = Rcode;
}
刷新验证码
this.Randomcode();
因为验证码不区分大小写。将验证码与输入的验证码,字母均改为大写字母。验证码不区分大小写。
code = code.ToUpper();
Rcode = Rcode.ToUpper();
为了方便查看,将验证码的TextBox设置成只读,并设置前色和后色。
触发
点击这个小闪电。
判断输入内容是否正确。
private void textBox2_Leave(object sender, EventArgs e)
{
if (textBox2.Text.Trim() != "")
{
//使用regex(正则表达式)进行格式设置 至少有数字、大写字母、小写字母各一个。最少3个字符、最长20个字符。
Regex regex = new Regex(@"(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{3,20}");
if (regex.IsMatch(textBox2.Text))//判断格式是否符合要求
{
label8.Text = "";
}
else
{
label8.Text = "*至少包含数字、大小写字母各一个。且不超过20个字符";
}
}
else
{
label8.Text = "*密码不能为空";
}
}
加密
对密码进行加密:
public static string EncryptWithMD5(string source)
{
byte[] sor = Encoding.UTF8.GetBytes(source);
MD5 md5 = MD5.Create();
byte[] result = md5.ComputeHash(sor);
StringBuilder strbul = new StringBuilder(40);
for (int i = 0; i < result.Length; i++)
{
strbul.Append(result[i].ToString("x2")); //加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位
}
return strbul.ToString();
}
存入数据库的密码为加密后的密码,若登录时输入的密码与存储的密码相比较,将输入的密码同样加密即可。
string password = EncryptWithMD5(textBox2.Text.Trim()); //取出密码、加密
首页
默认打开的第一个窗口是Form1,这里修改一下。
点开Program。
这里指的就是程序运行打开的第一个就是Form1,修个这里即可。
Application.Run(new Form1());
菜单
选择MenuStrip,操作即可。