使用PBKDF2算法来创建哈希的方法。PBKDF2全称Password-Based Key Derivation Function,它的基本原理是通过一个伪随机函数(例如HMAC函数),把明文和一个盐值作为输入参数,然后重复进行运算,最终产生秘钥。如果重复的次数足够大,破解的成本将非常大。
Install-Package Microsoft.AspNetCore.Cryptography.KeyDerivation -Version 3.1.6
创建一个加密密码的方法,传入需要加密密码,和盐
private static string HashPassword(string value, string salt)
{
var valueBytes = KeyDerivation.Pbkdf2(
password: value,//密码
salt: Encoding.UTF8.GetBytes(salt),//盐
prf: KeyDerivationPrf.HMACSHA512,//伪随机函数,这里是SHA-512
iterationCount: 10000,//迭代次数
numBytesRequested: 256 / 8);//最后输出的秘钥长度
return Convert.ToBase64String(valueBytes);
}
DK = PBKDF2(PRF, Password, Salt, c, dkLen)
PRF 是一个伪随机函数,可以简单的理解为 Hash 函数。
Password 表示口令 。
Salt 表示盐值,一个随机数。
c 表示迭代次数。
dkLen 表示最后输出的密钥长度。我们先引入NuGet包
https://blog.csdn.net/hezudao25/article/details/119209664