生成一个独特的5个字符的随机上/下字母序列?

时间:2013-10-20 03:35:08

标签: c# encryption hash cryptography

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

我的想法是使用我使用的编程框架提供的guid生成器,然后将一个众所周知的哈希算法应用于guid。

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

由于

1 个答案:

答案 0 :(得分:1)

创建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被认为足够unigue,但是从GUID生成的短哈希没有该属性。