方法一: 算法
1
//
生成随机数函数中从strchar 数组中随机抽取
2 // 字母区分大小写
3 // 参数n为生成随机数的位数,一般取四位
4 public string RandomNum( int n) //
5 {
6 string strchar = " 0,1,2,3,4,5,6,7,8,9 " ;
7 string [] VcArray = strchar.Split( ' , ' ) ;
8 string VNum = "" ; // 由于字符串很短,就不用StringBuilder了
9 int temp = - 1 ; // 记录上次随机数值,尽量避免产生几个一样的随
10
11 机数
12 // 采用一个简单的算法以保证生成随机数的不同
13 Random rand = new Random();
14 for ( int i = 1 ; i < n + 1 ; i ++ )
15 {
16 if ( temp != - 1 )
17 {
18 rand = new Random(i * temp * unchecked (( int )
19
20 DateTime.Now.Ticks));
21 }
22 // int t = rand.Next(35) ;
23 int t = rand.Next( 10 );
24 if (temp != - 1 && temp == t)
25 {
26 return RndNum( n);
27 }
28 temp = t ;
29 VNum += VcArray[t];
30 }
31 return VNum ; // 返回生成的随机数
32 }
33 生成随机数后,将值赋值给一个Label控件,然后改一下Label背景的颜色,OK了
34
35
2 // 字母区分大小写
3 // 参数n为生成随机数的位数,一般取四位
4 public string RandomNum( int n) //
5 {
6 string strchar = " 0,1,2,3,4,5,6,7,8,9 " ;
7 string [] VcArray = strchar.Split( ' , ' ) ;
8 string VNum = "" ; // 由于字符串很短,就不用StringBuilder了
9 int temp = - 1 ; // 记录上次随机数值,尽量避免产生几个一样的随
10
11 机数
12 // 采用一个简单的算法以保证生成随机数的不同
13 Random rand = new Random();
14 for ( int i = 1 ; i < n + 1 ; i ++ )
15 {
16 if ( temp != - 1 )
17 {
18 rand = new Random(i * temp * unchecked (( int )
19
20 DateTime.Now.Ticks));
21 }
22 // int t = rand.Next(35) ;
23 int t = rand.Next( 10 );
24 if (temp != - 1 && temp == t)
25 {
26 return RndNum( n);
27 }
28 temp = t ;
29 VNum += VcArray[t];
30 }
31 return VNum ; // 返回生成的随机数
32 }
33 生成随机数后,将值赋值给一个Label控件,然后改一下Label背景的颜色,OK了
34
35
方法二: ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
http://blog.youkuaiyun.com/ChengKing/archive/2007/01/05/1475140.aspx