对于身份验证令牌,C#3.0(.NET Framework 3.5)是否有cryptographically secure pseudorandom number generator(CSPRNG)的快速实现?
答案 0 :(得分:101)
using System.Security.Cryptography;
...
using(RandomNumberGenerator rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);
string token = Convert.ToBase64String(tokenData);
}
答案 1 :(得分:3)
答案 2 :(得分:3)
这取决于你的意思快......
没有真正快速安全的随机生成器。如果你想要快,你应该使用常规的Random类。如果你想要安全,你应该在Cryptography命名空间中使用随机生成器,但这要慢得多。你根本不能兼得。