string cipherData;
byte[] cipherbytes;
byte[] plainbytes;
byte[] plainbytes2;
byte[] plainkey;
SymmetricAlgorithm desObj;
private void button1_Click(object sender, EventArgs e)
{
cipherData = textBox_Plain_text.Text;
plainbytes = Encoding.ASCII.GetBytes(cipherData);
plainkey = Encoding.ASCII.GetBytes("123456789abcdef");
desObj.Key = plainkey;
// choose other appropriate modes (CBC, CFB, CTS, ECB, OFB)
desObj.Mode = CipherMode.CBC;
desObj.Padding = PaddingMode.PKCS7;
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, desObj.CreateEncryptor(), new CryptoStreamMode());
cs.Write(plainbytes, 0, plainbytes.Length);
cs.Close;
cipherbytes = ms.ToArray();
ms.Close;
textBox_Encrypted_text.Text = Encoding.ASCII.GetString(cipherbytes);
}
错误:仅分配,调用,递增,递减和新对象 表达式可以用作语句。
答案 0 :(得分:2)
只能将赋值,调用,递增,递减和新对象表达式用作语句。
文档说明statement:
程序采取的操作以语句表示。常见操作包括声明变量,赋值,调用方法,循环集合以及分支到一个或另一个代码块,具体取决于给定条件
您的基本问题是您错过了( )
括号,这些括号将告诉编译器您要在这些行中调用方法:
cs.Close;
ms.Close;
所以将它们改为:
cs.Close();
ms.Close();
否则编译器会认为您尝试访问字段或属性,并告诉您这不能单独作为语句。正如错误消息所述,您可以执行以下任一操作:
分配,
int c = ms.Capacity;
致电
ms.Close();
递增,递减
ms.Capacity++;
新对象表达式
new MemoryStream();