源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-05-15 13:02 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# 批量生成随机密码必须包含数字和字母并用加密算法加密
[b]要求:[/b] 密码必须包含数字和字母 [b]思路:[/b] 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();
    }
[b]巧用String.trim 函数,判断是否全是数字,全是字母。[/b] 说明:string.trim   从 String 对象移除前导空白字符和尾随空白字符。 返回:一个字符串副本,其中从该字符串的开头和末尾移除了所有空白字符。 有一个重载:[code]string.Trim(params char[] trimChars)  [/code] //从当前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;
    }
生成批量密码,和加密后的密码如下图: [img]http://files.jb51.net/file_images/article/201701/2017011816550637.png[/img] 以上所述是小编给大家介绍的C# 批量生成随机密码必须包含数字和字母并用加密算法加密,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部