c# md5 和 php md5 不匹配
c# md5 and php md5 not mach
我正在尝试使用 c# md5 和 php md5 来计算相同的结果,但它们给出不同的结果。 c#代码必须与php代码相同。
public string ToMD5(string orderId, string statusCode, string secretKey)
{
string key = orderId + "+" + statusCode;
key = Base64Encode(key);
MD5 m = System.Security.Cryptography.MD5.Create();
byte[] h = m.ComputeHash(Encoding.Default.GetBytes(key + secretKey));
string r = "";
foreach (byte b in h)
{
r += b.ToString("X2");
}
return r;
}
这里是 php 代码:
$key = $orderid."+".$status;
$prec = base64_encode($key);
$prec = $prec.$SecretKey;
$prec = md5($prec);
echo $prec;
c# returns : CEC71705E5A25CCD21609B72053539FC
php returns : f1542715b25b302553119fda1e8567bb
感谢您的帮助。
这两行产生相同的 MD5 散列值:
echo md5("12345+200OKSecret");
和
new List<byte>(MD5.Create().ComputeHash(Encoding.Default.GetBytes("12345+200OKSecret"))).ForEach(x => Console.Write("{0:X2}",x));
结果:
8df9a16122b34e41d49ad11d9f1e0c73
和
8DF9A16122B34E41D49AD11D9F1E0C73
检查您正在散列的字符串的值 - 它们必须不同。
我正在尝试使用 c# md5 和 php md5 来计算相同的结果,但它们给出不同的结果。 c#代码必须与php代码相同。
public string ToMD5(string orderId, string statusCode, string secretKey)
{
string key = orderId + "+" + statusCode;
key = Base64Encode(key);
MD5 m = System.Security.Cryptography.MD5.Create();
byte[] h = m.ComputeHash(Encoding.Default.GetBytes(key + secretKey));
string r = "";
foreach (byte b in h)
{
r += b.ToString("X2");
}
return r;
}
这里是 php 代码:
$key = $orderid."+".$status;
$prec = base64_encode($key);
$prec = $prec.$SecretKey;
$prec = md5($prec);
echo $prec;
c# returns : CEC71705E5A25CCD21609B72053539FC
php returns : f1542715b25b302553119fda1e8567bb
感谢您的帮助。
这两行产生相同的 MD5 散列值:
echo md5("12345+200OKSecret");
和
new List<byte>(MD5.Create().ComputeHash(Encoding.Default.GetBytes("12345+200OKSecret"))).ForEach(x => Console.Write("{0:X2}",x));
结果:
8df9a16122b34e41d49ad11d9f1e0c73
和
8DF9A16122B34E41D49AD11D9F1E0C73
检查您正在散列的字符串的值 - 它们必须不同。