详细介绍C#批量生成随机密码必须包含数字和字母并用加密算法加密的代码案例


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要介绍了C# 批量生成随机密码必须包含数字和字母并用加密算法加密,需要的朋友参考下

要求:

密码必须包含数字和字母

思路:

1.列出数字和字符。 组成字符串 :chars

2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数。

3. 随机取不小于chars长度的随机数a,取字符串chars的第a位字符。

4.循环 8次,得到8位密码

5.循环N次,批量得到密码。

代码实现如下 Main函数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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:要删除的字符数组

方法实现如下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//判断是否全是数字

   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加密,算法代码实现如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

/// <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#给pdf文件添加水印的代码方法分享

简述C#中builder和buffer类的用法详解

详解C#winform打开excel文档的方法总结

C#中常用的运算符有哪些

C#教程】C# 多态性

C#初步体验fastreport 报表(图)

C#相关面试题

C#单位转换器的图文代码详细介绍

C#开发实例-订制屏幕截图工具(一)功能概览(图)

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...