【发布时间】:2011-10-18 15:57:40
【问题描述】:
我在 C# 中有以下函数:
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() 函数具有不同的行为。
谢谢
【问题讨论】:
-
md5 函数在任何地方都有相同的行为。如果你得到不同的输出,那么你就有不同的输入。例如你在一个地方做 utf-8,但在另一个地方做 iso-8859 - md5 处理原始字节,而不是字符。
-
Encoding.Unicode.GetBytes(str)使用 UTF-16LE 编码返回代表str的字节。 -
感谢您的回复,可能是编码问题。我仍然无法使用 PHP 重现此功能。