ASP.NET中的隨機密碼生成


第一種方法:
用.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 長度的整數,以該數作為索引值,從可用字符串中隨機取字符,以指定的密碼長度為循環次數,依次連接取得的字符,最后即得到所需的隨機密碼串了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM