Csharp/C#教程:如何生成唯一的字母数字?分享


如何生成唯一的字母数字?

如何使用c#始终生成17个字符的唯一字母数字数据。

生成新的Guid,并用模62分割17次。你得到的每个数字都是上面描述的char数组中的索引(“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ1234567890”)。 通过使用Guid,您可以保证您的价值与Guid一样独特。

如果您担心丢失唯一位,您可以使用MD5散列GUID,如下所示:

Guid guidValue = Guid.NewGuid(); MD5 md5 = MD5.Create(); Guid hashed = new Guid(md5.ComputeHash(guidValue.ToByteArray())); 

更新 Guid格式

根据该文档( RFC 4122 )并与C#生成的GUID进行比较,它们是随机类型。

此类型具有以下模式: xxxxxxxx-xxxx-4xxx-Vxxx-xxxxxxxxxxxx ,其中

所以,这里我们有128个随机位。因此,就唯一性而言,Guid只是一个大的随机数,您可以自由使用任何其他能够生成88位随机数的随机数生成算法(例如RNGCryptoServiceProvider )。

当然,用于生成Guids的方法可能会在未来版本的框架中发生变化,但目前Guid.NewGuid()在代码方面看起来像廉价的随机数生成器。

你可以尝试… https://msdn.microsoft.com/en-us/library/system.io.path.getrandomfilename.aspx

GetRandomFileName方法返回加密强大的随机字符串,可用作文件夹名称或文件名。

或者无论你想要什么。

你可以有硬编码的字符集 –

 char[] chars = new char[62]; chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ1234567890".ToCharArray(); 

然后使用0到62之间的随机数,每次都可以获得随机字符并附加到字符串中。

但是,您无法保证在某个时间段内,您也不会获得重复的字母数字字符串。

作为替代方案,如果可能,为什么不使用GUID ?

上述就是C#学习教程:如何生成唯一的字母数字?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/990136.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐