У меня есть база данных с паролями, созданными в старой системе Identity. Пароли были хэшированы с использованием класса MD5CryptoServiceProvider
. Теперь мне нужно использовать эти пароли в ASP.NET MVC Core, но MD5CryptoServiceProvider
не существует.MD5CryptoServiceProvider в ASP.NET Core
В .NET Framework функция I используется для вычисления хэшей:
public static string CreateHash(string unHashed)
{
var x = new System.Security.Cryptography.MD5CryptoServiceProvider();
var data = Encoding.ASCII.GetBytes(unHashed);
data = x.ComputeHash(data);
return Encoding.ASCII.GetString(data);
}
Я попытался следующие две функции в ASP.NET Core:
public static string CreateHash(string unHashed)
{
var x = new System.Security.Cryptography.HMACMD5();
var data = Encoding.ASCII.GetBytes(unHashed);
data = x.ComputeHash(data);
return Encoding.ASCII.GetString(data);
}
и
public static string MD5Hash(string input)
{
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(Encoding.ASCII.GetBytes(input));
var strResult = BitConverter.ToString(result);
return strResult.Replace("-", "");
}
}
Ни один из методов не возвращает ту же строку, что и класс MD5CryptoServiceProvider
в первом методе. Я не могу изменить всю базу данных, чтобы использовать новые пароли.
Любое исправление этого вопроса?
Вы настолько правы, что ... Спасибо. Сегодня пятница. 5:00 вечера... –