C# 加密流:读取数据错误
我得到了这个(我还尝试了crStream.CopyTo(ms)): Data=Stream,包含一个二进制序列化类 运行时出现以下异常: “流不支持读取。”C# 加密流:读取数据错误,c#,.net,encryption,exception-handling,cryptostream,C#,.net,Encryption,Exception Handling,Cryptostream,我得到了这个(我还尝试了crStream.CopyTo(ms)): Data=Stream,包含一个二进制序列化类 运行时出现以下异常: “流不支持读取。” 我试图实现的只是对来自流的数据进行加密。因此,我有一个传入流,我想加密该数据并将其放入内存流。然后将其压缩并保存到文件中。错误说明了一切:创建加密流(=将纯文本放入并获得加密输出,写入): 请看一下MSDN文档,其中包括如何正确操作的示例,基本上就是这一部分(直接来自MSDN): 这意味着我必须将数据从我的流中取出,称为数据,放入一个字节数
我试图实现的只是对来自流的数据进行加密。因此,我有一个传入流,我想加密该数据并将其放入内存流。然后将其压缩并保存到文件中。错误说明了一切:创建加密流(=将纯文本放入并获得加密输出,写入): 请看一下MSDN文档,其中包括如何正确操作的示例,基本上就是这一部分(直接来自MSDN):
这意味着我必须将数据从我的流中取出,称为数据,放入一个字节数组,然后将其写入加密流才能访问它?(Data=Stream并包含二进制序列化类)否-您应该能够在源流上使用CopyTo()将数据复制到加密流中
var cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes(passKey);
cryptic.IV = ASCIIEncoding.ASCII.GetBytes(passKey);
Stream crStream = new CryptoStream(data, cryptic.CreateEncryptor(), CryptoStreamMode.Write);
Stream ms = new MemoryStream();
var buffer = new byte[0x10000];
int n;
while ((n = crStream.Read(buffer, 0, buffer.Length)) != 0) // Exception occurs here
ms.Write(buffer, 0, n);
crStream.Close();
Stream crStream = new CryptoStream(data, cryptic.CreateEncryptor(), CryptoStreamMode.Write);
using (MemoryStream msEncrypt = new MemoryStream())
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(plainText);
}
encrypted = msEncrypt.ToArray();
}