我正在尝试编写一个'enrypt-decrypt'程序,我在解密函数方面遇到了一些问题。
不知何故,我无法将流阅读器“ReadToEnd()”保存到名为“text”的空字符串中。
我在互联网上发现了这个功能,我尝试通过更改变量名称并使用“IDisposed”而不是“using”来解决它。我无法解决它。
static string Decrypt(byte[] cipherText, byte[] Key, byte[] IV)
{
string text = String.Empty;
// Create an Aes object
// with the specified key and IV.
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(cipherText))
{
using (CryptoStream cs = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write))
{
using (StreamReader srDecrypt = new StreamReader(cs) )
{
// Read the decrypted bytes from the decrypting
stream
// and place them in a string.
text = srDecrypt.ReadToEnd();
}
}
}
}
return text;
}
文本字符串仅在此函数中定义,错误出现在以下行中:
text = srDecrypt.ReadToEnd();
它说:
Crypt.cs(145,29):错误CS0136:名为“text”的局部变量不能 在此范围内声明,因为它会给出不同的含义 'text',已在'父或当前'范围内用于表示 别的东西编译失败:1个错误,0个警告
答案 0 :(得分:-1)
我想你在这里错过了一些代码,因为这是无效的:
// Read the decrypted bytes from the decrypting
stream