Asp.Net Identity
框架使用哪种算法来加密密码?我有一个Android,iPhone,Web和桌面使用相同数据库的场景。
此密码应加密,因此在ASP.NET MVC
我使用了Identity框架来加密密码。现在我需要算法适用于所有平台。
任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:16)
ASP.NET身份使用由Password-Based Key Derivation Function 2实现的Rfc2898DeriveBytes
(PBKDF2)。它是一种散列算法。
请注意encryption and hashing are different。
public static string HashPassword(string password)
{
byte[] salt;
byte[] bytes;
if (password == null)
{
throw new ArgumentNullException("password");
}
using (Rfc2898DeriveBytes rfc2898DeriveByte = new Rfc2898DeriveBytes(password, 16, 1000))
{
salt = rfc2898DeriveByte.Salt;
bytes = rfc2898DeriveByte.GetBytes(32);
}
byte[] numArray = new byte[49];
Buffer.BlockCopy(salt, 0, numArray, 1, 16);
Buffer.BlockCopy(bytes, 0, numArray, 17, 32);
return Convert.ToBase64String(numArray);
}
答案 1 :(得分:0)
这取决于所选的兼容模式。
可以在他们的 Github repo
中找到实施细节此时他们支持:
版本 2
版本 3