Я пытаюсь зашифровать (AES) некоторые данные с помощью C #.
Однако я получаю другой результат по сравнению с веб-сайтом:
http://www.phpaes.com/index.php#encrypt
Testdata:
Key = "abcdef1234567890"
IV = "1234567890abcdef"
Text = "test"
Мой код C # выглядит так:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace Test
{
class Program
{
public static void Main()
{
try
{
using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
{
aes.Mode = CipherMode.CBC;
aes.Key = Encoding.UTF8.GetBytes("abcdef1234567890");
aes.IV = Encoding.UTF8.GetBytes("1234567890abcdef");
ICryptoTransform encryptor = aes.CreateEncryptor();
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(Encoding.UTF8.GetBytes("test"));
}
byte[] encrypted = msEncrypt.ToArray();
Console.WriteLine(Convert.ToBase64String(encrypted));
}
}
Console.ReadKey();
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
}
}
Результаты: (Base64)
C # -Программа: nhb34JyWvhiqiz8Gq9Z / kA ==
Веб-сайт: 8jbduVNSb0Cz4cF + Cm9pCw ==
Почему это? Связано ли это с кодировками? Есть что-то, что я забыл добавить в код? Благодаря.