我们当前生成一个从0到9的随机数的代码是:
Int(10 * Rnd())
它工作得很完美!但我们想知道,代码是否会导致一些不安全的随机性安全问题?
那么有必要使用RNGCryptoServiceProvider()
来生成从0到9的随机数吗?
发布于 2018-01-09 18:36:40
这取决于你的需求
如果您要求这个数字在物理上尽可能随机,那么是的,您应该使用RNGCryptoServiceProvider()
类。
如果这只是一些看似微不足道的东西的随机数,那么它就没有必要使用这个类。例如,如果你只是想暂时计算某个东西的随机数,那么它应该是很好的。
例如,如果要生成用户的密码,则应使用RNGCryptoServiceProvider()
生成salt,因为它需要尽可能安全。然而,如果你正在做一个“掷骰子”或者“猜数字”的游戏,那么只使用Random()
要容易得多,因为它没有很高的安全风险。
发布于 2018-01-09 14:59:37
这取决于你的程序的需求,如果你真的需要密码安全的随机性,那么是的,如果你的需求不是那么严格,那么就不是。
https://stackoverflow.com/questions/48162715
复制相似问题