C# “;填充无效,无法删除”;使用AES加密时

C# “;填充无效,无法删除”;使用AES加密时,c#,encryption,error-handling,aes,C#,Encryption,Error Handling,Aes,加密程序工作,而解密程序不工作。 我尝试了多种类型的流,但没有成功。 出现错误“填充无效且无法删除”cryptoStream.CopyTo(fileDataSend) 我试着在网上查找,但是当我把我的项目与其他项目进行比较,或者甚至与这个主题的教程进行比较时,我发现我有一个几乎相同的代码。 我已经在这个问题上纠缠了好几天了,特别是对这个问题做出了解释。 请帮忙 if (encryptFunction.Checked) {

加密程序工作,而解密程序不工作。 我尝试了多种类型的流,但没有成功。 出现错误“填充无效且无法删除”
cryptoStream.CopyTo(fileDataSend)
我试着在网上查找,但是当我把我的项目与其他项目进行比较,或者甚至与这个主题的教程进行比较时,我发现我有一个几乎相同的代码。
我已经在这个问题上纠缠了好几天了,特别是对这个问题做出了解释。
请帮忙

            if (encryptFunction.Checked)
            {
                //try
                //{
                    //Collect the content of file and password and then encrypt
                    using (var fileDataOpen = File.OpenRead(filepathTextbox.Text))
                    using (var aesCrypto = new AesCryptoServiceProvider())
                    {
                        HashAlgorithm hash = MD5.Create();
                        aesCrypto.Key = hash.ComputeHash(Encoding.Unicode.GetBytes(passwordTextbox.Text));
                        aesCrypto.Padding = PaddingMode.PKCS7;

                        using (var createCrypto = aesCrypto.CreateEncryptor(aesCrypto.Key,aesCrypto.IV))
                        using (var fileDataSend = File.Create(filepathTextbox.Text + " Encrypted"))
                        using (var cryptoStream = new CryptoStream(fileDataSend, createCrypto, CryptoStreamMode.Write))
                        {
                            fileDataOpen.CopyTo(cryptoStream);
                        }
                    }
                /*}
                catch
                {
                    MessageBox.Show("Couldn't read the file. Please close other programs");
                    return;
                }*/
            }
            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            //Decrypter, not yet done
            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            if (decryptFunction.Checked)
            {
                //try
                //{
                //Collect the data from file and password to decrypt
                using (var fileDataOpen = File.OpenRead(filepathTextbox.Text))
                using (var aesCrypto = new AesCryptoServiceProvider())
                {
                    HashAlgorithm hash = MD5.Create();
                    aesCrypto.Key = hash.ComputeHash(Encoding.Unicode.GetBytes(passwordTextbox.Text));
                    aesCrypto.Padding = PaddingMode.PKCS7;

                    using (var createDecrypto = aesCrypto.CreateDecryptor(aesCrypto.Key, aesCrypto.IV))
                    using (var fileDataSend = File.Create(filepathTextbox.Text.Replace(" Encrypted", " Decrypted")))
                    using (MemoryStream ms = new MemoryStream())
                    {
                        using (var cryptoStream = new CryptoStream(fileDataOpen, createDecrypto, CryptoStreamMode.Read))
                        {
                            cryptoStream.CopyTo(fileDataSend);
                        }
                    } 
                }
            }
                /*}
                catch
                {
                    MessageBox.Show("Make sure you selected the right file");
                    return;
                }*/

保存加密数据的文件是您应该打开以解密的文件。他们是不同的。