Hus*_*man 5 security random hash .net-core
我需要生成随机唯一哈希,用于.Net Core中的密码重置链接.在ASP.NET身份中,我发现这有用,我想知道RNGCryptoServiceProvider是否仍然保证生成的哈希的随机性.
using (RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider())
{
var data = new byte[4];
for (int i = 0; i < 10; i++)
{
//filled with an array of random numbers
rngCsp.GetBytes(data);
//this is converted into a character from A to Z
var randomchar = Convert.ToChar(
//produce a random number
//between 0 and 25
BitConverter.ToUInt32(data, 0) % 26
//Convert.ToInt32('A')==65
+ 65
);
token.Append(randomchar);
}
}
Run Code Online (Sandbox Code Playgroud)
使用.net核心并使用哪些类的最佳方法是什么?
RNGCryptoServiceProvider
不在.NET Core中.使用RandomNumberGenerator.Create()
获得CSPRNG将在正确的平台上工作的一个实例.它的API是相同的RNGCryptoServiceProvider
,除了GetNonZeroBytes
缺少(我认为不应该在那里).
在Windows上,这将归结为BCryptGenRandom
CNG,在Linux上它将使用OpenSSL.
归档时间: |
|
查看次数: |
1576 次 |
最近记录: |