【发布时间】:2019-05-19 00:38:03
【问题描述】:
我正在使用 C# 进行一些 AES 加密。我有一个类似的解密方法可以完美运行,但是,无论我尝试什么,我都无法读取 MemoryStream 的加密内容
我尝试了几种不同的阅读方式,
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();
}
这是代码中的 sn-p。
using (AesManaged aesMan = new AesManaged()) {
if (keystr.Length == aesSize/8)
{
//Its a valid key
aesMan.KeySize = aesSize;
aesMan.Key = Encoding.UTF8.GetBytes(keystr);
aesMan.IV = Encoding.UTF8.GetBytes(ivstr);
ICryptoTransform encryptor aesMan.CreateEncryptor(aesMan.Key, aesMan.IV);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(inpstr);
using (StreamReader sr = new StreamReader(ms)) {
return sr.ReadToEnd();
}
}
}
我收到各种错误,例如流不可读,或者它无法读取关闭的流,以及返回一个空白字符串。 有没有人有任何想法?我很茫然
【问题讨论】:
标签: c# .net memorystream