任務:新增驗證碼、密碼存儲加密、窗口菜單欄。
目錄
驗證碼
新建數組,存儲數字+大小寫字母。
隨機數,隨機組成四個字符。
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,操作即可。