国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

C#與PHP的md5計(jì)算結(jié)果不同的解決方法

2019-10-29 21:16:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

問(wèn)題重現(xiàn)

這個(gè) API 是當(dāng)時(shí)給 Lyra 應(yīng)用做激活用的,遂打開(kāi) Lyra 試了下,卻發(fā)現(xiàn)一切正常,于是可以排除服務(wù)端的問(wèn)題

放出導(dǎo)致錯(cuò)誤的源碼(來(lái)自 MSDN):

public string CalculateMD5Hash(string input){  // step 1, calculate MD5 hash from input  MD5 md5 = System.Security.Cryptography.MD5.Create();  byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);  byte[] hash = md5.ComputeHash(inputBytes);  // step 2, convert byte array to hex string  StringBuilder sb = new StringBuilder();  for (int i = 0; i < hash.Length; i++)  { sb.Append(hash[i].ToString(“X2”));  }  return sb.ToString();}

實(shí)質(zhì)

MD5 有很多版本,其實(shí)這段代碼并沒(méi)有錯(cuò),但是 php 的 md5 函數(shù)默認(rèn)返回的是 32位小寫(xiě) ,而以上這一段返回的是 16位小寫(xiě)

于是想辦法把這個(gè) func 改為 32位小寫(xiě)輸出即可

public static String md5(String s){  MD5 md5 = new MD5CryptoServiceProvider();  byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s);  bytes = md5.ComputeHash(bytes);  md5.Clear();  string ret = "";  for (int i = 0; i < bytes.Length; i++)  {    ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0');  }  return ret.PadLeft(32, '0');}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到c#教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瑞昌市| 桂平市| 武川县| 南阳市| 绿春县| 奉新县| 三亚市| 涟源市| 孝昌县| 旅游| 精河县| 涿鹿县| 永泰县| 宁波市| 金湖县| 柳林县| 阜康市| 铜鼓县| 曲水县| 绥滨县| 镇宁| 花垣县| 泽库县| 阿拉善右旗| 犍为县| 南和县| 南澳县| 云龙县| 青铜峡市| 晋城| 修武县| 社旗县| 苍山县| 原阳县| 蒙城县| 张掖市| 新安县| 于田县| 三穗县| 宁陕县| 牡丹江市|