MD5介紹及相關應用

1.MD5的介紹

MD5算法是一種散列算法(hash)算法(摘要算法,指紋算法),不是一種加密算法(易錯)。

主要作用是驗明真身,確保信息傳輸過程中的完整性和一致性


第三方支付用MD5對金額,訂單號等進行散列計算,來保證數據是對方發出的。


同樣的內容,每次生成的MD5值是一樣的

2.使用C#模擬MD5

public static string GetMD5FromString(string msg)
{
    using(MD5 md5=MD5.Create())
    {
         byte[] msgBuffer=Encoding.UTF8.GetBytes(msg);
         //計算hash需要傳遞byte流
         byte[] md5Buffer=md5.ComputHash(msgBuffer);
         //需要將計算後的byte流轉換成string類型
         StringBuilder sb=new StringBUilder();
         for(int i=0;i<md5Buffer.Length;i++)
         { 
             sb.Append(md5Buffer[i].ToString("x2"));
         }
         return sb.ToString();

    }

}
這是將字符串轉換成MD5的方法

當然如果計算完加一個MD5.clear()(釋放資源)會更好

 public static string GetMD5FromFile(string filePath)
        {
            using (MD5 md5 = MD5.Create())
            {
                //讀取文件
                using (FileStream fs = File.OpenRead(filePath))
                {                   
                    byte[] md5Buffer = md5.ComputeHash(fs);
                    md5.Clear();
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < md5Buffer.Length; i++)
                    {
                        sb.Append(md5Buffer[i].ToString("x2"));
                    }
                    return sb.ToString();
                }
            }
        }

這是將文件轉換成MD5的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章