当前位置: 代码迷 >> ASP.NET >> 产生验证码随机数的一个有关问题
  详细解决方案

产生验证码随机数的一个有关问题

热度:9920   发布时间:2013-02-25 00:00:00.0
产生验证码随机数的一个问题
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之间。
  相关解决方案