为什么对整个文件流计算MD5比分块慢 抱歉,意思没讲清楚。我的意思是,对文件分割n块后,计算了n块的MD5,反而比对文件直接计算1个MD5的时间短。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 分成5块,是把文件分成了5份,分别用流读取?还是将五块都放在内存里了?如果放在内存里,必然比直接用流快,原因不说你也明白吧,一个读内存一个读磁盘。如果分成5块,但是没放内存里,而是写成了5个文件,然后分别用stream读取,这时候还比直接用stream快,那我只能猜测是用了多线程了。 实际上分成n份,我是一块一块读入计算的。但是文件流的话,就是直接赋于流,计算的 using (BinaryReader binReader = new BinaryReader(File.Open(this.FileName, FileMode.Open))) { while (current < this.Count) //总共执行Count块 { //计算当前块的BF this.ComputeHash(binReader.ReadBytes(this.BlockSize), current); current++; } }我看了HMACSHA1这个函数实现,它好像每次是读入4kb,用于计算。不知是否这个原因。 如何稳定长期的 [每15分自动取设备信息] 反射!!! 帮忙看看进程问题-----------------------------? dropdownlist绑定时间问题 c#有没有系统函数来判断一个点是否在一个矩形内? 后台CS中JavaScript问题? 手机运行linux datagridview行标题问题 C#新手,菜鸟学习群 QQ: 2796385 两个函数之间如何共享一个数据库连接? 如何用.net和sqlserver2005数据库做的网站 使用.Net2008打开工程文件时出现:未将对象引用设置到对象实例
using (BinaryReader binReader = new BinaryReader(File.Open(this.FileName, FileMode.Open)))
{
while (current < this.Count) //总共执行Count块
{
//计算当前块的BF
this.ComputeHash(binReader.ReadBytes(this.BlockSize), current);
current++;
}
}
我看了HMACSHA1这个函数实现,它好像每次是读入4kb,用于计算。不知是否这个原因。