1. 程式人生 > >C#,自己寫的32位MD5加密函式

C#,自己寫的32位MD5加密函式

大體思路都是,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;
}