第一種方法:用.NET中的 Sytem.Guid.NewGuid().ToString() 生成,實際上是對一個128bit數字的十六進位輸出.生成的字元由0-9和a-z這幾種字元組成,也可能會有“-”字元分割. string strNewPW = System.Guid.NewGuid().ToS ...
第一種方法:
用.NET中的 Sytem.Guid.NewGuid().ToString() 生成,實際上是對一個128bit數字的十六進位輸出.
生成的字元由0-9和a-z這幾種字元組成,也可能會有“-”字元分割.
結果可能會是:7f44aed7-f8a4-4229-b64a-6a3e50d920e0
處理一下,去掉其中的“-”字元,剩下的是由32個阿拉伯數字和英文字母組成的串,再按自己的要求截取指定長度的字串.
截取8位:
結果為:7f44aed7
第二種方法:
實現方法:
{
//設定字元範圍為:大小寫字母及數字的隨機字元串.
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 長度的整數,以該數作為索引值,從可用字元串中隨機取字元,以指定的密碼長度為迴圈次數,依次連接取得的字元,最後即得到所需的隨機密碼串了。