框架使用什么样的算法Asp.Net Identity
来加密密码?我有一个场景,其中 android、iPhone、web 和桌面使用相同的数据库。这个密码应该是加密的,所以ASP.NET MVC
我使用了身份框架来加密密码。现在我需要该算法适用于所有平台。
任何帮助将不胜感激。
提前致谢。
框架使用什么样的算法Asp.Net Identity
来加密密码?我有一个场景,其中 android、iPhone、web 和桌面使用相同的数据库。这个密码应该是加密的,所以ASP.NET MVC
我使用了身份框架来加密密码。现在我需要该算法适用于所有平台。
任何帮助将不胜感激。
提前致谢。
ASP.NET Identity 使用由Rfc2898DeriveBytes
. 它是一种哈希算法。
请注意,加密和散列是不同的。
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);
}
这取决于所选的兼容模式。
实现细节可以在他们的Github repo中找到
目前他们支持:
第 2 版
第 3 版