我有类似用PHP编写的东西:
$signature = md5($tosigndata);
现在,我试图在C#中复制它:
MD5.Create().ComputeHash(Tools.GetBytes(tosigndata))
但这给了我完全不同的结果。我如何更改我的C#代码以匹配PHP哈希?
PS。是的,我知道.ComputeHash()
返回byte[]
,但这并没有改变任何东西,我尝试解码它,它仍然是一个不同的字符串。
修改:Tools.GetBytes()
返回Encoding.UTF8.GetBytes(tosigndata);
答案 0 :(得分:1)
在C#中尝试这个:
byte[] asciiBytes = ASCIIEncoding.ASCII.GetBytes(tosigndata); // tosigndata is your string variable
byte[] hashedBytes = MD5CryptoServiceProvider.Create().ComputeHash(asciiBytes);
string hashedString = BitConverter.ToString(hashedBytes).Replace("-", "").ToLower();
// hashString contains your hash data similar to php md5