Ответ 1
using System.Security.Cryptography;
...
using(RandomNumberGenerator rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);
string token = Convert.ToBase64String(tokenData);
}
Есть ли быстрая реализация криптографически защищенного генератора псевдослучайных чисел (CSPRNG) для С# 3.0 (.NET Framework 3.5) для токенов аутентификации?
using System.Security.Cryptography;
...
using(RandomNumberGenerator rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);
string token = Convert.ToBase64String(tokenData);
}
Это зависит от того, что вы подразумеваете под быстрым...
Существует не очень быстрый безопасный случайный генератор. Если вы хотите быстро, вы должны использовать обычный случайный класс. Если вы хотите защитить, вы должны использовать случайный генератор в пространстве имен Cryptography, но это значительно медленнее. Вы просто не можете иметь оба.
RNGCryptoServiceProvider класс