0
Я пытаюсь использовать метод шифрования AES в C# с помощью этого кода:Пустой или пустой массив, используя System.Security.Cryptography
public static byte[] encryptData(string plaintext)
{
Aes myAes = Aes.Create();
byte[] encrypted = EncryptStringToBytes_Aes(plaintext,myAes.Key, myAes.IV);
return encrypted;
}
static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
{
if (plainText == null || plainText.Length <= 0)
throw new ArgumentNullException("plainText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("IV");
byte[] encrypted;
Aes aesAlg = Aes.Create();
aesAlg.Key = Key;
aesAlg.Key = IV;
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
MemoryStream msEncrypt = new MemoryStream();
CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);
StreamWriter swEncrypt = new StreamWriter(csEncrypt);
swEncrypt.Write(plainText);
encrypted = msEncrypt.ToArray();
return encrypted;
}
и вызова функции, как это:
byte[] encrypt = Security.encryptData("Hi, how are you?");
Но возвращаемый массив байтов всегда пуст.
Я пытаюсь использовать это для шифрования таких значений, как пароли в моем файле app.config.
Благодарим вас, добавьте «использование» в потоки, решите свои проблемы –