首页 新闻 会员 周边 捐助

求大神看看啊,这里用ComputeHash()计算Http响应流的md5好慢啊

0
悬赏园豆:5 [已解决问题] 解决于 2016-04-19 19:43
  public static void saveStream(WebResponse respon, string fullPath)
        {
            Stream internetStream = respon.GetResponseStream();

            MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

            try
            {
                byte[] retVal = md5.ComputeHash(internetStream);

                string str_md5 = BitConverter.ToString(retVal);//http响应流的md5//这里很耗费时间

                string str2_md5 = getmd5forfile();//本地文件的md5

                bool isequals = str_md5.Equals(str2_md5);//二者md5比较
            }
            catch (Exception)
            {

                throw;
            }

            internetStream.Close();

        }
sicnu-yudidi的主页 sicnu-yudidi | 初学一级 | 园豆:108
提问于:2016-04-14 21:30
< >
分享
最佳答案
0

byte[] retVal = md5.ComputeHash(internetStream);

在这里你是下载整个文件了!如果文件大,当然慢啦。。。。。

拿最前面的5KB和文件大小做MD5比较吧,不需要整个文件比较。。。。

收获园豆:5
XiaoFaye | 老鸟四级 |园豆:3087 | 2016-04-15 07:32

哦哦,好滴。但是还有个疑问哈。

难道这句话才真正的在下载?md5.ComputeHash(internetStream);

而这句话没有执行真正的下载啊Stream internetStream = respon.GetResponseStream();

sicnu-yudidi | 园豆:108 (初学一级) | 2016-04-15 09:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册