5
我一直在computeHash上遇到一些麻烦。我正在使用computeHash(Stream)和computeHash(byte [])。出于某种原因,他们正在回报不同的结果。我已经试过的byte []写入一个MemStream但使用字节[]computeHash byte []和数据流差异
FileStream zz = new FileStream(t.Filename, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(zz, Encoding.ASCII);
byte[] data = Encoding.ASCII.GetBytes(sr.ReadToEnd());
MemoryStream memStream = new MemoryStream(data);
byte[] test = md5hash.ComputeHash(memStream);
我已经关闭了文件,以确保为寻找位置是在起点时,结果是一样的。
zz = new FileStream(t.Filename, FileMode.Open, FileAccess.Read);
zz.Position = 0;
byte[] test1 = md5hash.ComputeHash(zz);
有什么建议吗?我唯一的猜测是它是一个编码问题或者流具有不同的大小。
任何帮助将非常感激。
最好的问候,
SunSatION
文件中是否有非ASCII字符? – 2010-08-31 23:25:01
是的,这似乎是问题。出于某种奇怪的原因,我一直认为ASCII表示8位(包括扩展ASCII)。 谢谢Dean。我会使用BinaryReader来解决这个问题 – SunSatION 2010-08-31 23:51:12