一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#與PHP的md5計算結果不同的解決方法

C#與PHP的md5計算結果不同的解決方法

2021-12-15 13:23ifengge C#

今天在用C#接入我的登錄api發現了一個問題,登陸的時候無論如何都會出現用戶名和密碼錯誤的問題,后來通過查找排除找的了問題的原因是因為C#與PHP的md5計算結果不同導致的,下面就來看看如何解決這個問題吧。

問題重現

這個 API 是當時給 Lyra 應用做激活用的,遂打開 Lyra 試了下,卻發現一切正常,于是可以排除服務端的問題

放出導致錯誤的源碼(來自 MSDN):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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();
}

實質

MD5 有很多版本,其實這段代碼并沒有錯,但是 php 的 md5 函數默認返回的是 32位小寫 ,而以上這一段返回的是 16位小寫

于是想辦法把這個 func 改為 32位小寫輸出即可

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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');
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

原文鏈接:https://ifengge.me/archives/274.html?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
主站蜘蛛池模板: 1717she精品视频在线观看 | 国产一区二 | 国产二区视频 | 69老司机亚洲精品一区 | 波多野结衣家庭教师 | 三级伦理影院 | 国产在线一区二区杨幂 | 草莓社区| 香蕉久久一区二区三区啪啪 | 亚洲精品在线看 | 久久视频在线视频观看精品15 | 超级乱淫伦短篇在车上 | 俄罗斯烧性春三级k8播放 | 亚洲a区视频 | 日本韩国一区二区三区 | 青青青国产成人久久111网站 | a级成人毛片免费图片 | 欧美日韩一级视频 | 91高跟丝袜| zozo日本另类极品 | 动漫美女被羞羞产奶 | 黑人巨鞭大战白妞10级 | 扒开女人屁股眼看个够 | 香蕉在线精品亚洲第一区 | 惩罚狠h调教灌满 | 小草视频免费观看在线 | 日本不卡免免费观看 | 亚州男人的天堂 | 亚洲一级片在线播放 | 久久学生精品国产自在拍 | 精选国产AV精选一区二区三区 | 日韩免费毛片视频杨思敏 | 晓雪老师我要进你里面好爽 | 亚洲国产精品久久无套麻豆 | 深夜草莓视频 | 美女任你摸 | 欧美人曾交 | 手机亚洲第一页 | 全日爱韩国视频在线观看 | 四虎国产精品视频免费看 | 亚洲精品第五页 |