gpt4 book ai didi

c# - C# 线程中的 Bouncy CaSTLe SecureRandom 安全吗?

转载 作者:行者123 更新时间:2023-11-30 15:56:27 29 4
gpt4 key购买 nike

答案显然是yes对于 Java 中的实现,但是 C# 中的 Org.BouncyCaSTLe.Security.SecureRandom 呢?

最佳答案

因为据我所知,没有关于 C# Bouncy CaSTLe 端口的官方(甚至任何)文档 - 我们所能做的就是查看源代码并尝试得出一些结论。这是 SecureRandom 的源代码.我们可以看到,主要方法有NextCounterValue(用于生成种子)和NextBytes,用于生成实际的随机数据。 NextCounterValue 是线程安全的(使用 Interlocked.Increment)。 NextBytes 将实现转发给 IRandomGenerator 的实例。由于您可以将 IRandomGenerator 的任何实例传递给 SecureRandom 的构造函数 - 我们可以得出结论,它的线程安全性取决于所使用的 IRandomGenerator

此外,在完整的 .NET Framework 上,SecureRandom 使用 CryptoApiRandomGenerator作为主生成器(生成种子),它只是 .NET RNGCryptoServiceProvider 的包装器,我们知道它是线程安全的。

如果您只是创建 SecureRandom 而没有传递任何 IRandomGenerator 会怎么样?然后它将创建 DigestRandomGenerator ( code ) 的实例,它似乎是线程安全的(在 NextBytes 中使用简单的 lock)。

总而言之,如果您没有传递对它不是线程安全的 IRandomGenerator 实例,我们可以说 SecureRandom 是线程安全的。

关于c# - C# 线程中的 Bouncy CaSTLe SecureRandom 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46792243/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com