詳細介紹C#批量產生隨機密碼必須包含數字和字母並用密碼編譯演算法加密的代碼案例

來源:互聯網
上載者:User
這篇文章主要介紹了C# 批量產生隨機密碼必須包含數字和字母並用密碼編譯演算法加密,需要的朋友參考下

要求:

密碼必須包含數字和字母

思路:

1.列出數字和字元。 組成字串 :chars

2.利用randrom.Next(int i)返回一個小於所指定最大值的非負隨機數。

3. 隨機取不小於chars長度的隨機數a,取字串chars的第a位字元。

4.迴圈 8次,得到8位密碼

5.迴圈N次,批量得到密碼。

代碼實現如下 Main函數:

static void Main(string[] args)    {      string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";      Random randrom = new Random((int)DateTime.Now.Ticks);      string path1 = @"C:\Users\lenovo\Desktop\pws.txt";      for (int j = 0; j < 10000;j++ )      {        string str = "";        for (int i = 0; i < 8; i++)        {          str += chars[randrom.Next(chars.Length)];//randrom.Next(int i)返回一個小於所指定最大值的非負隨機數        }        if (IsNumber(str))//判斷是否全是數字          continue;        if (IsLetter(str))//判斷是否全是字母          continue;        File.AppendAllText(path1, str);        string pws = Md5(str,32);//MD5加密        File.AppendAllText(path1, "," + pws + "\r\n");      }      Console.WriteLine("ok");      Console.Read();    }

巧用String.trim 函數,判斷是否全是數字,全是字母。

說明:string.trim 從 String 對象移除前置空白字元和尾隨空白字元。

返回:一個字串副本,其中從該字串的開頭和末尾移除了所有空白字元。

有一個重載:string.Trim(params char[] trimChars)

//從當前System.string對象移除數組中指定的一組字元的所有前置匹配項和尾部匹配項

trimChars:要刪除的字元數組

方法實現如下代碼:

 //判斷是否全是數字    static bool IsNumber(string str)    {      if (str.Trim("0123456789".ToCharArray()) == "")        return true;      return false;    }    //判斷是否全是字母    static bool IsLetter(string str)    {      if (str.Trim("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray()) == "")        return true;      return false;    }

用MD5加密,演算法代碼實現如下:

/// <summary>    /// MD5加密    /// </summary>    /// <param name="str">加密字元</param>    /// <param name="code">加密位元16/32</param>    /// <returns></returns>    public static string Md5(string str, int code)    {      string strEncrypt = string.Empty;      MD5 md5 = new MD5CryptoServiceProvider();      byte[] fromData = Encoding.GetEncoding("GB2312").GetBytes(str);      byte[] targetData = md5.ComputeHash(fromData);      for (int i = 0; i < targetData.Length; i++)      {        strEncrypt += targetData[i].ToString("X2");      }      if (code == 16)      {        strEncrypt = strEncrypt.Substring(8, 16);      }      return strEncrypt;    }

產生批量密碼,和加密後的密碼如:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.