如何读取由加密流提供的MemoryStream的内容

时间:2019-05-19 00:38:04

标签: c# .net memorystream

我正在使用C#进行某种AES加密。我有一个类似的解密方法,该方法可以正常运行,但是,无论如何,我都无法读取MemoryStream的加密内容

我尝试了几种不同的阅读方式,

other

这是代码段。

ms.Position = 0;
return new StreamReader(ms, Encoding.ASCII).ReadToEnd()
OR
using (StreamReader sr = new StreamReader(cs)) {
return sr.ReadToEnd();
}
OR
byte[] enc = ms.ToArray();
string ret=null;
foreach (byte b in enc) {
ret += b.ToString();
}

我遇到各种错误,例如流不可读或无法读取关闭的流以及返回空白字符串。 有人知道吗?我很茫然

1 个答案:

答案 0 :(得分:0)

StreamReaderStreamWriter等大多数流功能会在您Dispose()时关闭基础流。在完成操作之前,请不要尝试处置它们,或者使用允许您选择不关闭基础流的构造函数。在极少数情况下,我必须在流周围实现虚拟包装器,以防止关闭基础流