生成一个唯一的 5 个字符的随机大写/小写字母序列
本文关键字:小写字 随机 一个 唯一 字符 | 更新日期: 2023-09-27 18:36:02
我只是想知道生成任意长度的随机大写/小写字母的唯一字符串的常用方法是什么?
我立即想到的是使用我使用的编程框架提供的 guid 生成器,然后将众所周知的哈希算法应用于 guid。
如果是这种情况,我需要研究哪些类型的哈希函数?
谢谢
创建 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 生成的短哈希不具有该属性。