是否有必要使用RNGCryptoServiceProvider()生成0到9的随机数?

时间:2018-01-09 06:47:07

标签: vb.net security random

我们当前生成0到9的随机数的代码是:

Int(10 * Rnd())

它完美无缺!但我们想知道,代码是否会导致一些不安全的随机安全问题?

因此有必要使用RNGCryptoServiceProvider()生成0到9之间的随机数吗?

2 个答案:

答案 0 :(得分:1)

这取决于您的需求

如果您要求此号码尽可能随意,那么您应该使用RNGCryptoServiceProvider()类。

如果这只是一个看似微不足道的随机数,那么它就没有必要使用这个类。例如,如果您只是想暂时计算某个随机数,那么应该没问题。

例如,如果您要生成用户密码,则应使用RNGCryptoServiceProvider()生成salt,因为它需要尽可能安全。但是,如果您正在制作“掷骰子”游戏或“猜数字”游戏,那么使用Random()会更容易,因为它不会带来很高的安全风险。

答案 1 :(得分:0)

这取决于您的计划的需求,如果您确实需要加密安全随机性,那么是,如果您的需求不是那么严格,那么没有。