C#,自己寫的32位MD5加密函式
阿新 • • 發佈:2018-12-31
大體思路都是,MD5加密後得到byte型別的陣列,然後將每個陣列成員轉換成16進位制的string字串,這裡就容易產生BUG,因為轉換成16進位制時,遇到10以內的數字時,轉後都是一個單字元的,但我們每次轉換都要得到兩個字元的字串,網上大多數都沒有考慮到這個,導致加密結果出現問題。
下面是我自己寫的32位MD5加密函式,如果大家發現有BUG,請一定要給我留言,我好改正,謝謝
//32位MD5加密 public string TO32MD5(string srcstr) { MD5 md5 = MD5.Create(); string md5str = "";//加密後的string byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(srcstr)); for (int i = 0; i < s.Length; i++) { string btos = s[i].ToString("X"); if(btos.Length == 1) { //每次轉換得到的都是2位 btos = "0" + btos; } md5str = md5str + btos;//轉換成十六進位制 } return md5str; }