对于我一生,我无法在没有任何更改的ASP.NET MVC模板应用程序中识别Cryptography.KeyDerivation。我环顾四周,有些表演

使用Microsoft.AspNetCore.Cryptography.KeyDerivation;

-要么-

使用Microsoft.AspNet.Cryptography.KeyDerivation;

-但是-

使用System.Security.Cryptography.KeyDerivation;未列出@

https://msdn.microsoft.com/en-us/library/system.security.cryptography%28v=vs.110%29.aspx

我想获取在网上找到的代码以覆盖使用HMACSHA1并使用HMACSHA526代替的PasswordHasher的默认版本:

string hashed = Convert.ToBase64String(KeyDerivation.Pbkdf2(
        password: password,
        salt: salt,
        prf: KeyDerivationPrf.HMACSHA1,
        iterationCount: 10000,
        numBytesRequested: 256 / 8));


并使用HMACSHA512的prf覆盖PasswordHasher的基类,该基类仅具有一个带有要传递的密码的构造函数。

完成此操作后的最后一个问题,而不是制作一个单独的重写类,是否可以将代码粘贴在ApplicationUserManager中?

public ApplicationUserManager(IUserStore<ApplicationUser> store) : base(store)
{
    //code here
}

最佳答案

System.Security.Cryptography.Rfc2898DeriveBytes rfc2898DeriveBytes = new Rfc2898DeriveBytes(input, salt, 10000);
string hashed = Convert.ToBase64String(rfc2898DeriveBytes.GetBytes(256 / 8));


为我工作的酒。如果仅使用KeyDerivationPrf.HMACSHA1。

08-03 19:40