【发布时间】:2011-09-23 19:53:40
【问题描述】:
在 c# 中生成 10 个字符的随机字母数字字符串的最有效方法是什么?
【问题讨论】:
-
为什么/如何必须是最有效的?它必须是加密安全的吗?碰撞可以吗?
-
那个,你想要多随机?用代码生成的随机数并不是真正随机的。
-
您可以购买一张包含满是随机数文件的 CD,然后在需要时从文件中读取另一张。我开玩笑地说,但它确实存在。 westphal-electronic.com/z_cd_eng.htm
-
Henk 是对的——说“最有效率”是完全不可能的。如果您有性能要求,请说明您的要求。假设您需要能够在不到 5 微秒的时间内生成一个这样的字符串,或者每小时生成一万个这样的字符串,或者无论您的实际限制是什么。
-
您接受了一个危险的错误答案。对于“随机”的任何定义,指南都保证是随机。 Guid 保证是唯一的。 GUID 代表“全局唯一标识符”,而不是“随机标识符”。 不要将 guid 用作随机性来源,也不要将 guid 的片段用作唯一性来源。 Guid 不是随机的,除非您获取整个 guid,否则它们也不是唯一的。 (你不能坐半架飞机,并期望它是飞行的一半。)