我需要使用亂數字和字母生成令牌。但是,錯誤訊息告訴我使用 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();
}
如何更改上面的代碼以使用未過期的包?
uj5u.com熱心網友回復:
你可以RandomNumberGenerator這樣使用:
var randomNumber = new byte[32];
string refreshToken = "";
using (var rng = RandomNumberGenerator.Create())
{
rng.GetBytes(randomNumber);
refreshToken = Convert.ToBase64String(randomNumber);
}
結果示例:fHu4SOyv03PhHvqWx5WGmI5xQFnH00CmLCV3IYJd5Dw=
只需根據您的情況進行調整。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/482864.html
