He estado teniendo problemas con computeHash. Estoy usando tanto computeHash (Stream) como computeHash (byte []). Por alguna razón, están devolviendo resultados diferentes. He intentado escribir el byte [] en un MemStream pero resultado fue el mismo cuando se utiliza byte []computeHash byte [] y Stream diferencia
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);
He cerrado el archivo para asegurarse de que la posición es buscar en el punto de partida.
zz = new FileStream(t.Filename, FileMode.Open, FileAccess.Read);
zz.Position = 0;
byte[] test1 = md5hash.ComputeHash(zz);
¿Alguna sugerencia? Mi única conjetura es que es un problema de Codificación o que el Stream tiene un tamaño diferente.
Cualquier ayuda sería muy apreciada.
Best Regards,
Sunsation
¿Hay caracteres no ASCII en el archivo? –
Sí, hay y ese parece ser el problema. Por alguna extraña razón, siempre he pensado que ASCII significa 8 bits (incluido ASCII extendido). Gracias Dean. Arreglaré esto usando BinaryReader – SunSatION