产生验证码随机数的一个问题
private string GenerateCheckCode()
{
int number;
string strCode = string.Empty;
//随机数种子
Random random = new Random();
for(int i = 0;i < 4;i++) //校验码长度为4
{
//随机的整数
number = random.Next();
//字符从0-9,A-Z中随机产生,对应的ASCII码分别为
//48-57,65-90
number = number % 36;
if (number < 10)
{
number += 48;
}
else
{
number += 55;
}
strCode += ((char)number).ToString();
}
//在Cookie中保存校验码
Response.Cookies.Add(new HttpCookie("CheckCode", strCode));
return strCode;
}
里面number = number % 36;,这一句是什么意思,有什么用呢、改成
//int n = random.Next(26); // 26: a - z 字符
//validateCode += (char)(n + 65); // 将数字转换成大写字母
int n = random.Next(10); //数字
validateCode += n.ToString();
这样可以吗?
------解决方案--------------------英文字母个数 + 数字个数 = 36
对36取余是为了保证值在 0-35之间。