通过网路上传或下载文件时,需要对文件进行验证是否传输正确,这可以通过MD5码实现。
不同的文件产生的MD5码是不同的,并且MD5码的计算是不可逆的。
假设要通过网络传输一个文件,在传输之前先计算出MD5码,将文件和MD5码一起发送出去。
接收端收到文件和MD5码以后,对文件再次计算MD5码,若两个MD5码相同证明文件传输正确。
具体计算方法:
/// <summary>
/// /// 计算文件的MD5校验/// /// </summary>
/// /// <param name="fileName">文件路径</param>
/// <returns>MD5码</returns>
private string GetMD5HashFromFile(string fileName)
{
try
{
FileStream file = new FileStream(fileName, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(file); //ComputeHash可按固定大小字节进行,这样就可以报告进度