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