C# 对接Java开发系统,对方数据验证使用url编码后再对其进行MD5加密,{"traceNo":"1126531180784"} url编码之后的字符串为大写(%7B%22traceNo%22%3A%221126531180784%22%7D),这样加密出来的字符串就.net平台加密出来的(%7b%22traceNo%22%3a%221126531180784%22%7d)不匹配,
public string CustomizeUrlEncode(string str)
{
StringBuilder builder = new StringBuilder();
foreach (char c in str)
{
if (HttpUtility.UrlEncode(c.ToString()).Length > 1)
{
builder.Append(HttpUtility.UrlEncode(c.ToString()).ToUpper());
}
else
{
builder.Append(c);
}
}
return builder.ToString();
}
本文探讨了C#在对接Java系统时遇到的数据验证问题,主要集中在URL编码和MD5加密的差异上。C#使用HttpUtility.UrlEncode方法编码字符串,结果为大写,而Java的编码可能产生小写,导致加密后的字符串不匹配。解决方案在于统一编码规范,确保双方编码一致。
592

被折叠的 条评论
为什么被折叠?



