1

我想知道以下之间的安全性是否存在差异:

案例一:

byte[] data = new byte[47];
using(RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider())
{
    crypto.GetBytes(data);
}

案例 B:

byte[] data = new byte[47];
using(RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider())
{
    for(int i = 0; i < 47; i++)
    {
        byte[] byte = new byte[1];
        crypto.GetBytes(byte);
        data[i] = byte;       
    }
}

我想知道是因为我受到了MSDN示例的启发。由于在有限值上使用模数的不公平分配,它基本上检查接收到的字节是否公平。(我正在构建一个随机字符串生成器,我不想让字母表中的字符具有不公平分布的优势)

所以基本上我的问题是,我是否循环“GetBytes”来获取N个字节(案例b)或直接使用“GetBytes”来获取N个字节(案例a)在安全性方面是否存在差异。

感谢您的时间

4

1 回答 1

1

不,没有。无论您以哪种方式获取字节,都以相同的方式生成字节。

于 2015-05-13T15:50:32.150 回答