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的方法