网络上传文件到服务器 做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); ???????????}
获取txt md5值上传文件完整性校验
原文地址:https://www.cnblogs.com/zuochanzi/p/10225275.html