首页 > 编程 > C# > 正文

C# 批量生成随机密码必须包含数字和字母并用加密算法加密

2019-10-29 21:15:42
字体:
来源:转载
供稿:网友

要求:

密码必须包含数字和字母

思路:

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;    }

生成批量密码,和加密后的密码如下图:

c#,批量生成,随机密码

以上所述是小编给大家介绍的C# 批量生成随机密码必须包含数字和字母并用加密算法加密,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VEVB武林网网站的支持!


注:相关教程知识阅读请移步到c#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表