C#生成唯一用户ID

思路


使用固定的字符串CLientID_(用于分别出这是用户id)+现在的时间+(设备信息+用户名)Md5转换+随机数(确保唯一)


代码实现

需要输入的参数

length :用于生成多少位随机数。

UserName:用户的用户名。

 public string CreateRandomCode(int length, string UserName)  //随机生成客户端ID
        {
            string LocalTime = DateTime.Now.ToShortTimeString();//获取时间
            LocalTime = LocalTime.Replace(":", "");//将符号去掉

            string list = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";//list中存放着随机的元素
            string UserhostName = Dns.GetHostName() + UserName;//获取主机名和用户名
            MD5 mD5 = new MD5CryptoServiceProvider();//创建Md5实例
            UserhostName = BitConverter.ToString(mD5.ComputeHash(Encoding.Default.GetBytes(UserhostName)), 4, 4);//生成多长的值,可以自行调参
            UserhostName = UserhostName.Replace("-", "");//连接

            Random random = new Random();//创建实例
            string code = "";   //随机数
            for (int i = 0; i < length; i++)   //循环得到一个伪随机的数
            {
                code += list[random.Next(0, list.Length - 1)];
            }

            string ClientID = "Client_"+ LocalTime + UserhostName + code;//生成客户ID

            return ClientID;
        }
复制代码

调用方法

        private void button1_Click(object sender, EventArgs e)//C#的Button按钮
        {
            textBox1.Text= CreateRandomCode(3, textBox2.Text);//最长随机数3位

        }
复制代码

实现效果

 


拓展

因为C#自带MD5类,所以使用起来很方便。下面是这次用到的方法的用法。

MD5类方法 (来自官方文档)

ComputeHash(Byte[], Int32, Int32)

计算指定字节数组的指定区域的哈希值。

public byte[] ComputeHash (byte[] buffer, int offset, int count);

参数

  • buffer

要计算其哈希代码的输入。

  • offset

字节数组中的偏移量,从该位置开始使用数据。

  • count

数组中用作数据的字节数。

猜你喜欢

转载自blog.csdn.net/aa989111337/article/details/126137679
今日推荐