旧アイデンティティシステムで作成されたパスワードを持つデータベースがあります。パスワードはMD5CryptoServiceProvider
クラスを使用してハッシュされました。私は今ASP.NET MVCコアでこれらのパスワードを使用する必要がありますが、MD5CryptoServiceProvider
は存在しません。ASP.NETコアのMD5CryptoServiceProvider
.NET Frameworkでは、私はハッシュを計算するために使用される機能は次のとおりです。
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のコアに、以下の2つの機能を試してみた:
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... –