4

在所有这些 NSA 的东西之后,我只是想知道是否有人知道 .NET 的 System.Security.Cryptography.RNGCryptoServiceProvider() 的替代品 - 也许是开源解决方案?

我试图搜索它,但并没有真正成功,所以我希望社区中的任何人都有一个想法?

谢谢

4

2 回答 2

4

使用新的 .NET 6 API 从 CSPNG(加密安全伪随机数生成器)生成随机数比以往更容易:

// Give me 200 random bytes
var bytes = RandomNumberGenerator.GetBytes(200);
于 2021-08-24T04:16:50.410 回答
3

在 Bouncy Castle - C# 版本中有两个可能有用的随机数生成器:DigestRandomGeneratorVmpcRandomGenerator,都在crypto.prng名称空间中。诀窍是从您可以信任的来源中播种这些随机熵。

请注意,我不熟悉 VMPC 算法。这DigestRandomGenerator在很大程度上取决于底层哈希函数的安全性(SHA-512 在 64 位硬件上非常安全且快速)。这是一个相当简单的实现,但它应该是安全的。

于 2013-09-12T21:16:50.913 回答