C# AES加密程序不工作

C# AES加密程序不工作,c#,encryption,aes,aescryptoserviceprovider,C#,Encryption,Aes,Aescryptoserviceprovider,我正在尝试让这个AES示例代码正常工作。然而,我没有得到任何返回到我的密文变量。我没有收到错误,只是没有返回任何内容。我做错了什么 public byte[] key { get; set; } public byte[] IV { get; set; } public byte[] ciphertext { get; set; } public string plainText { get; set; } public byte[] Encrypt(string InputPlaintex

我正在尝试让这个AES示例代码正常工作。然而,我没有得到任何返回到我的密文变量。我没有收到错误,只是没有返回任何内容。我做错了什么

public byte[] key { get; set; }
public byte[] IV { get; set; }
public byte[] ciphertext { get; set; }
public string plainText { get; set; }


public byte[] Encrypt(string InputPlaintext)
{
    InputPlaintext = "attack at dawn";
    using (AesCryptoServiceProvider AESEncryptor = new AesCryptoServiceProvider())
    {

        ////using the AesCryptoServiceProvider to generate the IV and Key

        key = AESEncryptor.Key;

        IV = AESEncryptor.IV;

        ICryptoTransform encryptor = AESEncryptor.CreateEncryptor(key, IV);

        using (MemoryStream msEncrypt = new MemoryStream())
        {
            using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
            {

                using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                {
                    swEncrypt.Write(InputPlaintext);
                    ciphertext = msEncrypt.ToArray();
                    return ciphertext;
                }
            }
        }
    };


}

三个选项,所有选项都做相同的事情

调用
csEncrypt.Close()
或使用
csEncrypt.FlushFinalBlock()
将加密数据刷新到内存流-在
cipertext=msEncrypt.ToArray()之前调用它

或者,移动
cipher=msEncrypt.ToArray();返回密文在正在写入加密流的using块之外

注意
csEncrypt.Flush()


三个选项,所有选项都做相同的事情

调用
csEncrypt.Close()
或使用
csEncrypt.FlushFinalBlock()
将加密数据刷新到内存流-在
cipertext=msEncrypt.ToArray()之前调用它

或者,移动
cipher=msEncrypt.ToArray();返回密文在正在写入加密流的using块之外

注意
csEncrypt.Flush()


三个选项,所有选项都做相同的事情

调用
csEncrypt.Close()
或使用
csEncrypt.FlushFinalBlock()
将加密数据刷新到内存流-在
cipertext=msEncrypt.ToArray()之前调用它

或者,移动
cipher=msEncrypt.ToArray();返回密文在正在写入加密流的using块之外

注意
csEncrypt.Flush()


三个选项,所有选项都做相同的事情

调用
csEncrypt.Close()
或使用
csEncrypt.FlushFinalBlock()
将加密数据刷新到内存流-在
cipertext=msEncrypt.ToArray()之前调用它

或者,移动
cipher=msEncrypt.ToArray();返回密文在正在写入加密流的using块之外

注意
csEncrypt.Flush()

public override void Flush() 
{
     return;
}