for (int i = 0; i < 10; i++)
{
Response.Write(Make(3,8)+"</br>");
} public static string Make(int kind, int pwdlen)
{
string tmpstr = "", pwdchars = "";
int iRandNum;
switch ( kind )
{
case 1: pwdchars = "1234567890";
break;
case 2: pwdchars = "abcdefghijklmnopqrstuvwxyz";
break;
case 3: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
case 4: pwdchars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 5: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 6: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!#$%^&*";
break;
default: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
}
Random rnd = new Random();
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
怎么打印出来的都是一样的呢?只有刷新页面才会改变。
解决方案 »
- C#调用C++ dll 结构体 时,返回的结构体 ABS_BIR 内容属性 为0
- WCF小应用(首章,服务器端)
- 如何重工作站上运行程序(C# WINFORM)获取服务器上的共享文件的信息
- 求 C#简体中文帮助手册.chm
- c# 页面之间方法的调用
- 跨线程调用“多个”控件
- 如何将一个textbox里的内容导出到.txt文本文件或者是.sql文件呢?
- 多线程使用HttpWebRequest出现OutOfMemoryException错误
- 谁能给一个向xml文档中插入数据的例子?
- 如何获取可用的sqlserver服务器吗?
- 如何给C#任何数据类型赋一个默认值?
- 请教关于监听FTP(21端口)问题?
{
Console.WriteLine(Make(3, 8,i));
}
Console.ReadKey(); public static string Make(int kind, int pwdlen,int seed)
{
string tmpstr = "", pwdchars = "";
int iRandNum;
switch (kind)
{
case 1: pwdchars = "1234567890";
break;
case 2: pwdchars = "abcdefghijklmnopqrstuvwxyz";
break;
case 3: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
case 4: pwdchars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 5: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 6: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!#$%^&*";
break;
default: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
}
Random rnd = new Random(seed);
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
{
Response.Write(Make(i,8)+"</br>");
} public static string Make(int kind, int pwdlen)
{
string tmpstr = "", pwdchars = "";
int iRandNum;
switch ( kind )
{
case 1: pwdchars = "1234567890";
break;
case 2: pwdchars = "abcdefghijklmnopqrstuvwxyz";
break;
case 3: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
case 4: pwdchars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 5: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 6: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!#$%^&*";
break;
default: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
}
Random rnd = new Random(pwdchars.Length);
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
{
Response.Write(Make(3,8)+"</br>");
}Random rnd = new Random(); 是在循环中创建的,不会真正的随机。
应该把rnd放在循环外创建。或者Random rnd = new Random((int)DateTime.Now.Ticks);
{
string tmpstr = "", pwdchars = "";
int iRandNum;
switch (kind)
{
case 1: pwdchars = "1234567890";
break;
case 2: pwdchars = "abcdefghijklmnopqrstuvwxyz";
break;
case 3: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
case 4: pwdchars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 5: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case 6: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!#$%^&*";
break;
default: pwdchars = "1234567890abcdefghijklmnopqrstuvwxyz";
break;
} for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
在外部声明rnd即可 Random的无参构造函数取系统当前时间做为seed, 如果程序足够快, 每次的seed是相同的, 生成的随机也就相同
像8楼那样
那个成员的名称可以起得好认一些。