在所有这些 NSA 的东西之后,我只是想知道是否有人知道 .NET 的 System.Security.Cryptography.RNGCryptoServiceProvider() 的替代品 - 也许是开源解决方案?
我试图搜索它,但并没有真正成功,所以我希望社区中的任何人都有一个想法?
谢谢
在所有这些 NSA 的东西之后,我只是想知道是否有人知道 .NET 的 System.Security.Cryptography.RNGCryptoServiceProvider() 的替代品 - 也许是开源解决方案?
我试图搜索它,但并没有真正成功,所以我希望社区中的任何人都有一个想法?
谢谢
使用新的 .NET 6 API 从 CSPNG(加密安全伪随机数生成器)生成随机数比以往更容易:
// Give me 200 random bytes
var bytes = RandomNumberGenerator.GetBytes(200);
在 Bouncy Castle - C# 版本中有两个可能有用的随机数生成器:DigestRandomGenerator
和VmpcRandomGenerator
,都在crypto.prng
名称空间中。诀窍是从您可以信任的来源中播种这些随机熵。
请注意,我不熟悉 VMPC 算法。这DigestRandomGenerator
在很大程度上取决于底层哈希函数的安全性(SHA-512 在 64 位硬件上非常安全且快速)。这是一个相当简单的实现,但它应该是安全的。