软件编程
位置:首页>> 软件编程>> C#编程>> C#利用时间和随即字符串创建唯一的订单编号

C#利用时间和随即字符串创建唯一的订单编号

作者:Darren Ji  发布时间:2022-01-21 15:18:56 

标签:C#,唯一,编号

使用RNGCryptoServiceProvider类创建唯一的最多8位数字符串,再在前面拼接上年月日时分秒产生的字符串,最大限度的保证生成的字符串是唯一的。

大家也可以根据自己的需求修改,日期可以取值到毫秒,这样更能保证生成的字符串是唯一的。


private static string GetUniqueKey()
{
 int maxSize = 8;
 int minSize = 5;
 char[] chars = new char[62];
 string a;
 a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
 chars = a.ToCharArray();
 int size = maxSize;
 byte[] data = new byte[1];
 RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
 crypto.GetNonZeroBytes(data);
 size = maxSize;
 data = new byte[size];
 crypto.GetNonZeroBytes(data);
 StringBuilder result = new StringBuilder(size);
 foreach (byte b in data)
 {
   result.Append(chars[b % (chars.Length - 1)]);
 }
 return result.ToString();
}


然后调用方法,如下做了演示,每次产生的结果都不一样




for (int i = 0; i < 10; i++)
{
 string str = string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), GetUniqueKey());
 Console.WriteLine(str);
}
Console.ReadKey();

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com