【发布时间】:2013-05-05 16:29:19
【问题描述】:
我正在处理一项学校作业,其中一项要求是生成一个随机的 128 位数字。 我想知道如何在 C# 中做到这一点,这种方法可以工作吗?
byte[] RND128NUMBYTE = new byte[128];
Random Rand = new Random();
Rand.NextBytes(RND128NUMBYTE);
提前谢谢大家
编辑:首先,感谢大家的回答。 无论如何,如果我明确分配会更好:我正在以安全的方式构建服务器/客户端应用程序。 用户连接到服务器后,要与连接到该服务器的其他用户通信,必须对其进行身份验证。用户向服务器询问身份验证,服务器用 128 位随机数回答客户端。之后将完成一些其他过程。
【问题讨论】:
-
那是 128 字节,而不是 128 位。
-
128 字节超出您的要求 8 倍。
-
是的
byte[] RND128NUMBYTE = new byte[128**/8**];会起作用,但我认为这不是你分配的目的。 -
@HenkHolterman 谢谢你的回答。但我在 msdn 中读到:“这样的标识符被复制的可能性非常低。”。这是否意味着 GUID 是随机生成的?
-
@HenkHolterman:Guid 是独特性的来源,而不是随机性。是的,第 4 版 guid 的某些位是伪随机的,但并非全部都是。 NewGuid 不保证返回版本 4 的 guid,它只保证返回一个 guid。不要像这样使用“标签外”的指导;如果您没有使用它来保证唯一性,那么您可能做错了什么。
标签: c#