にC#ラインを変換しますは、私はC#で、以下の機能を持っているPHP
static MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
public string Guid GetMD5(string str)
{
lock (md5Provider)
{
return (new Guid(md5Provider.ComputeHash(Encoding.Unicode.GetBytes(str)))).ToString();
}
}
私は同じコードを必要とするが、PHPで。 md5()関数の動作は異なります。私はあなたがGUIDをハッシュに変換され、そしてGUID.ToString()
はどのようなM $コール「レジストリに文字列を返すので、あなたが持っている問題は、C#のコードは、ダッシュで区切られたハッシュを返すことである疑いがある
THX
MD5機能はどこでも同じ動作をします。出力が異なる場合は、入力が異なります。例えば1つの場所でutf-8を実行していますが、別の場所ではiso-8859を実行しています。md5は文字ではなく生のバイトで動作します。 –
'Encoding.Unicode.GetBytes(str)'は、UTF-16LEエンコーディングを使って 'str'を表すバイトを返します。 – dtb
ご回答いただきありがとうございます。おそらくエンコードの問題です。私はまだPHPでこの関数を再現できません。 – user1001518