我需要使用随机数字和字母生成一个令牌。然而,错误信息告诉我要使用RandomNumberGenerator,但它只会给我产生随机数字,这对我没有帮助。
错误信息
'RNGCryptoServiceProvider'已过时:'RNGCryptoServiceProvider已过时。要生成随机数,请改用RandomNumberGenerator静态方法之一。'
当前使用的代码
private static string RandomString()
{
int length = 256;
const string valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
StringBuilder res = new StringBuilder();
using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
{
byte[] uintBuffer = new byte[sizeof(uint)];
while (length-- > 0)
{
rng.GetBytes(uintBuffer);
uint num = BitConverter.ToUInt32(uintBuffer, 0);
res.Append(valid[(int)(num % (uint)valid.Length)]);
}
}
return res.ToString();
}
我该如何修改上面的代码,以使用一个不过时的包?