網絡上傳文件到服務器 做md5 校對.判斷文件是否破壞
首先求txt文件的md5值 ,1萬條數據 求出的值
文件MD5:e5467b6a8e3c26af8c5af0bda3739280
服務器處理程序 也對上傳的txt文件求md5值,如果這兩個值相同,則文件完整
c# 求txt文件md5代碼
static void GetMD5(string s) { try { FileStream file = new FileStream(s,FileMode.Open); MD5 md5 = new MD5CryptoServiceProvider(); byte[] retval = md5.ComputeHash(file); file.Close(); StringBuilder sc = new StringBuilder(); for (int i = 0 ; i<retval.Length ; i++ ) { sc.Append(retval[i].ToString("x2")); } Console.WriteLine("文件MD5:{0}",sc); } catch(Exception ex) { Console.WriteLine(ex.Message); } }
附帶
獲得SHA1值,該方法中 s 代表傳入的文件路徑
SHA1名為安全哈希算法,對於長度小於2^64位的消息,SHA1會產生一個160位的消息摘要。
SHA1有如下特性:不可以從消息摘要中復原信息;兩個不同的消息不會產生同樣的消息摘要,(但會有1x10 ^ 48分之一的機率出現相同的消息摘要,一般使用時忽略)。
static void GetSHA1(string s) { try { FileStream file = new FileStream(s, FileMode.Open); SHA1 sha1 = new SHA1CryptoServiceProvider(); byte[] retval = sha1.ComputeHash(file); file.Close(); StringBuilder sc = new StringBuilder(); for (int i = 0; i < retval.Length; i++) { sc.Append(retval[i].ToString("x2")); } Console.WriteLine("文件SHA1:{0}", sc); } catch (Exception ex) { Console.WriteLine(ex.Message); }