0

我只是想知道生成任意长度的随机大写/小写字母的唯一字符串的常用方法是什么?

我的直接想法是使用我使用的编程框架提供的 guid 生成器,然后将众所周知的散列算法应用于 guid。

如果是这种情况,我需要研究哪些类型的散列函数?

谢谢

4

1 回答 1

2

创建 GUID 并不是获取随机数的好方法,因为并非 GUID 中的所有数据都是随机的。

只需使用Random类。例子:

string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
int len = 5;

Random rnd = new Random();
StringBuilder b = new StringBuilder(len);
for (int i = 0; i < len; i++) {
  b.Append(chars[rnd.Next(chars.Length)]);
}
string result = b.ToString();

但是请注意,这并不能保证代码是唯一的。为此,您必须保存所有以前的代码并检查是否有任何新代码。尽管 GUID 被认为足够独特,但从 GUID 生成的短哈希不具有该属性。

于 2013-10-20T03:52:39.097 回答