与人做对接的时候,只要有中文加密结果与对方就不同。我在百度找到的MD5在线加密结果也与我代码加密结果相同
md5的参数 不是一个byte[] 么? 如果说 结果不一样 那就只能说明把 字符串转换成byte[] 的时候 用的编码不一样 一般情况下用的都是utf8编码的 但是这不是绝对的 有些人可能使用其他方式来编码 所以导致了结果不一样 多试几个就知道了 反正编码也就那么几个
var s = "中文";
Console.WriteLine("ASCII\t {0}", string.Join(", ", Encoding.ASCII.GetBytes(s)));
Console.WriteLine("Default\t {0}", string.Join(", ", Encoding.Default.GetBytes(s)));
Console.WriteLine("UTF8\t {0}", string.Join(", ", Encoding.UTF8.GetBytes(s)));
Console.WriteLine("Unicode\t {0}", string.Join(", ", Encoding.Unicode.GetBytes(s)));是的。“对方”可能跟你一样只知道“从网上抄一个字符串进行md5计算的代码”这种想法,你们两个谁也没有意识到 md5跟字符串没有直接关系。
我问过对方字符串转byte的时候用的什么编码方式 对方明确告诉我不用编码 所以我才纳闷呢