我怎样才能在C#中生成一个密码安全的伪随机数字?
C#3.0(.NET Framework 3.5)的密码安全伪随机数生成器 (CSPRNG)是否有快速实现,用于身份validation令牌?
using System.Security.Cryptography; ... using(RandomNumberGenerator rng = new RNGCryptoServiceProvider()) { byte[] tokenData = new byte[32]; rng.GetBytes(tokenData); string token = Convert.ToBase64String(tokenData); }
这取决于你的意思是…
没有真正快速的安全随机生成器。 如果你想要快,你应该使用常规的随机类。 如果你想要安全的话,你应该使用Cryptography命名空间中的随机生成器,但是这要慢得多。 你根本无法兼得。
RNGCryptoServiceProvider类