生成新的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()));
Run Code Online (Sandbox Code Playgroud)
更新 Guid格式
根据该文档(RFC 4122)并与C#生成的GUID进行比较,它们是随机类型.
此类型具有以下模式:xxxxxxxx-xxxx-4xxx-Vxxx-xxxxxxxxxxxx,其中
x 是随机数和 V 位数为10yy的数字,其中yy是两个随机位.所以,这里我们有128个随机位.因此,就唯一性而言,Guid只是一个大的随机数,你可以自由使用能够产生88位随机数的任何其他随机数生成算法. (例如RNGCryptoServiceProvider).
当然,用于生成Guids的方法可能会在未来版本的框架中发生变化,但目前Guid.NewGuid()在代码方面看起来像廉价的随机数生成器.
| 归档时间: |
|
| 查看次数: |
10532 次 |
| 最近记录: |