私の会社では、データベースに格納する前にそれをパスワードをハッシュするには、次のアルゴリズムを使用しています:MD5ハッシュ混乱
public static string Hash(string value)
{
byte[] valueBytes = new byte[value.Length * 2];
Encoder encoder = Encoding.Unicode.GetEncoder();
encoder.GetBytes(value.ToCharArray(), 0, value.Length, valueBytes, 0, true);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] hashBytes = md5.ComputeHash(valueBytes);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
stringBuilder.Append(hashBytes[i].ToString("x2"));
}
return stringBuilder.ToString();
}
私にそれは些細なMD5ハッシュのように聞こえるが、私は、パスワード(123456)と一致しようとしたときアルゴリズムは私にce0bfd15059b68d67688884d7a3d3e8cを与え、標準のmd5ハッシュを使用すると、それは私にe10adc3949ba59abbe56e057f20f883eを与えます。
サイトのiOSバージョンがビルド中で、ユーザーがログインする必要がある場合、パスワードは送信前にハッシュされます。私は、標準のMD5ハッシュを使用するようにiOSチームに指示しましたが、もちろんそれはうまくいきません。
標準のmd5を使用してパスワードを解読して再度ハッシュすることはできません。同じハッシュを取得するには、iOSチームに正確に何を伝えるのかわかりません。
助けが必要ですか?
これはおそらくエンコードのためです。私はPHPのように機能する関数を提供します。 – Schiavini