有c#產生MD5的代碼如下:
class CreateMD5 { static void Main(string[] args) { string source = "提問指南"; using (MD5 md5Hash = MD5.Create()) { string hash = GetMd5Hash(md5Hash, source); Console.WriteLine( hash); } } static string GetMd5Hash(MD5 md5Hash, string input) { //這裡是 Unicode byte[] data = md5Hash.ComputeHash(Encoding.Unicode.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } return sBuilder.ToString(); } }
上述代碼產生的MD5是 f5da53705563c657581a6d0853286fdc
現在問題是,c#產生的MD5 與 PHP 產生的MD5 不一致
由於業務限制,不能更改c#代碼,只能從PHP下手。
回複內容:
有c#產生MD5的代碼如下:
class CreateMD5 { static void Main(string[] args) { string source = "提問指南"; using (MD5 md5Hash = MD5.Create()) { string hash = GetMd5Hash(md5Hash, source); Console.WriteLine( hash); } } static string GetMd5Hash(MD5 md5Hash, string input) { //這裡是 Unicode byte[] data = md5Hash.ComputeHash(Encoding.Unicode.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } return sBuilder.ToString(); } }
上述代碼產生的MD5是 f5da53705563c657581a6d0853286fdc
現在問題是,c#產生的MD5 與 PHP 產生的MD5 不一致
由於業務限制,不能更改c#代碼,只能從PHP下手。
md5前操作一步
$tmp = mb_convert_encoding('提問指南', 'utf-16le', 'utf8');