第一種方法:
用.NET中的 Sytem.Guid.NewGuid().ToString() 生成,實際上是對一個128bit數字的十六進制輸出.
生成的字符由0-9和a-z這幾種字符組成,也可能會有“-”字符分割.
string strNewPW = System.Guid.NewGuid().ToString();
結果可能會是:7f44aed7-f8a4-4229-b64a-6a3e50d920e0
處理一下,去掉其中的“-”字符,剩下的是由32個阿拉伯數字和英文字母組成的串,再按自己的要求截取指定長度的字串.
截取8位:
string strNewPW = System.Guid.NewGuid().ToString().Replace("-", "").Substring(0, 8);
結果為:7f44aed7
第二種方法:
實現方法:
protected void Page_Load(object sender, EventArgs e)
{
//設定字符范圍為:大小寫字母及數字的隨機字符串.
string strPwChar = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//截取長度為8.
string strNewPW = MakePassword(strPwChar, 8);
Response.Write(strNewPW);
}
/// <summary>
/// 生成隨機字符串
/// </summary>
/// <param name="strPwChar">傳入生成的隨機字符串可以使用哪些字符</param>
/// <param name="intlen">傳入生成的隨機字符串的長度</param>
public static string MakePassword(string strPwChar, int intlen)
{
string strRe = "";
int iRandNum;
Random rnd = new Random();
for (int i = 0; i < intlen; i++)
{
iRandNum = rnd.Next(strPwChar.Length);
strRe += strPwChar[iRandNum];
}
return strRe;
}
結果為:Qk8JW61c
方法 MakePassword 接受兩個參數,strPwChar參數指定生成的隨機密碼串可以使用哪些字符,intlen指定生成的隨機密碼串的長度。有了這兩個參數,通過調用 Random 類的 Next() 方法,先獲得一個大於或等於 0 而小於 intlen 長度的整數,以該數作為索引值,從可用字符串中隨機取字符,以指定的密碼長度為循環次數,依次連接取得的字符,最后即得到所需的隨機密碼串了。
