我只是想知道生成任意长度的随机大写/小写字母的唯一字符串的常用方法是什么?
我的想法是使用我使用的编程框架提供的guid生成器,然后将一个众所周知的哈希算法应用于guid。
如果是这种情况,我需要研究哪些类型的散列函数?
由于
答案 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生成的短哈希没有该属性。