在这个答案中,下面的代码是用于创建唯一的随机字母数字字符串的。请问有人能够澄清一下这些字符串在这段代码中如何确保唯一性以及它们的唯一性程度?如果我在不同的场合重新运行此方法,我是否仍然会得到唯一的字符串?
或者我是否误解了回答,这些只是随机生成的字符串,并没有生成唯一的键?
我已经在评论中提出了这个问题,但用户似乎处于不活跃状态。
或者我是否误解了回答,这些只是随机生成的字符串,并没有生成唯一的键?
我已经在评论中提出了这个问题,但用户似乎处于不活跃状态。
public static string GetUniqueKey()
{
int maxSize = 8;
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();
}
0
。生成随机字符串的更好的函数是我在如何在C#中生成随机字母数字字符串?中的答案,但显然仍需要足够长的输出才能实现唯一性。 - CodesInChaos