сообщение, зашифрованное с помощью aesmanaged, не расшифровано должным образом - PullRequest
0 голосов
/ 25 октября 2018

У меня есть программа, которая шифрует и дешифрует сообщения, используя system.security.cryptography.Он прекрасно работает при шифровании сообщений, но когда он расшифровывает их, он не может это сделать, поэтому декодированные сообщения являются просто странными символами и бредом.Это не дает никаких исключений, поэтому я не могу понять, в чем проблема.

public static byte[] EncryptStringToBytes_Aes(string plainText)
        {
            try
            {
                byte[] encrypted;

                using (AesManaged aesAlg = new AesManaged())
                {

                    ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

                    using (var msEncrypt = new MemoryStream())
                    using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
                    using (var swEncrypt = new StreamWriter(csEncrypt))
                    {
                        swEncrypt.Write(plainText);
                        csEncrypt.FlushFinalBlock();
                        encrypted = msEncrypt.ToArray();
                    }

                }

                // Return the encrypted bytes from the memory stream.
                return encrypted;
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return null;
        }


public static string DecryptStringFromBytes_Aes(byte[] cipherText)
        {
            try
            {
                // Declare the string used to hold
                // the decrypted text.
                string plaintext = null;

                // Create an AesManaged object
                // with the specified key and IV.
                using (AesManaged aesAlg = new AesManaged())
                {
                    //aesAlg.Key = Key;
                    //aesAlg.IV = IV;
                    aesAlg.Padding = PaddingMode.None;
                    // Create a decryptor to perform the stream transform.
                    ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);

                    // Create the streams used for decryption.
                    using (var msDecrypt = new MemoryStream(cipherText))
                    using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                    using (var srDecrypt = new StreamReader(csDecrypt))
                    {
                        plaintext = srDecrypt.ReadToEnd();
                    }

                }

                return plaintext;
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return null;
        }

Есть идеи, в чем проблема?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...