У меня есть программа, которая шифрует и дешифрует сообщения, используя 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;
}
Есть идеи, в чем проблема?Спасибо