C # AES CBC неверный результат - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь зашифровать (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 ==

Почему это? Связано ли это с кодировками? Есть что-то, что я забыл добавить в код? Благодаря.

...