C#利用时间和随即字符串创建唯一的订单编号
作者:Darren Ji 时间:2022-01-21 15:18:56
使用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();
标签:C#,唯一,编号
0
投稿
猜你喜欢
Java实现删除排序数组中重复元素的方法小结【三种方法比较】
2023-09-28 15:21:48
Spring整合Quartz实现定时任务调度的方法
2023-07-07 00:55:55
Activiti开发环境的搭建过程详解
2021-08-16 07:13:05
详解SpringBoot多跨域请求的支持(JSONP)
2023-09-21 04:12:54
详解 Java Maximum redirects (100) exceeded
2023-08-05 21:03:47
自己实现Android View布局流程
2022-07-10 22:20:26
Java微信公众平台开发(14) 微信web开发者工具使用
2023-01-30 19:21:34
详解Java对象的强、软、弱和虚引用+ReferenceQueue
2021-11-30 16:23:01
C#编程实现向并口设备发送指令、获取并口设备的状态
2023-02-02 02:56:39
JVM致命错误日志详解(最新推荐)
2023-08-22 07:42:30
解析Java中的static关键字
2022-03-02 17:15:35
Java与kotlin详细对比
2022-04-13 23:26:47
java去除字符串中的空格、回车、换行符、制表符的小例子
2022-04-13 12:33:44
老生常谈java中cookie的使用
2023-11-11 04:37:59
c# AES字节数组加密解密流程及代码实现
2021-12-11 21:44:20
在Eclipse中使用版本管理工具SVN的图文教程
2022-07-21 17:39:51
C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)
2022-01-31 08:50:06
C#实现的算24点游戏算法实例分析
2021-12-01 04:13:21
Java微信公众平台开发(15) 微信JSSDK的使用
2023-06-16 19:58:39
java基于包结构的请求路由实现实例分享
2021-10-23 13:10:18