0

Here is my code, first with string:

byte[] concatBytes = Encoding.ASCII.GetBytes(key);
byte[] keyBytes = Encoding.ASCII.GetBytes(key);
for (int i = 0; i < 3; i++)
{
         concatBytes = Encrypt(Encoding.ASCII.GetString(concatBytes), keyBytes);
         //Console.WriteLine(Transform.Hexa(concatBytes));
} 

public byte[] Encrypt(string plainText, byte[] key)
    {
        byte[] encrypted;
        using (var rijndael = new RijndaelManaged())
        {
            rijndael.Mode = CipherMode.ECB;
            rijndael.KeySize = 128;
            rijndael.BlockSize = 128;
            rijndael.Padding = PaddingMode.Zeros;
            rijndael.Key = key;
            //rijndael.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

            ICryptoTransform transform = rijndael.CreateEncryptor(rijndael.Key, rijndael.IV);

            using (var memoryStream = new MemoryStream())
            {
                using (var cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write))
                {
                    using (var streamWriter = new StreamWriter(cryptoStream))
                    {
                        streamWriter.Write(plainText);
                    }
                    encrypted = memoryStream.ToArray();
                }
            }
        }
        return encrypted;
    }

If i change my method parameter plainText to byte[] than my results are completely different. What am i missing here? Also, we have different results using OpenSSL and Rijndael AES encryption. Any suggestions how i could fix this?

Emond
  • 50,210
  • 11
  • 84
  • 115
Adam Ivancza
  • 2,459
  • 1
  • 25
  • 36

1 Answers1

1

StreamWriter(Stream):

Initializes a new instance of the StreamWriter class for the specified stream by using UTF-8 encoding and the default buffer size.

Since you're using a different encoding (UTF-8 rather than ASCII), it's not surprising that you get different results.

Damien_The_Unbeliever
  • 234,701
  • 27
  • 340
  • 448
  • I rewrited my code according to your comment, but nothing has changed. – Adam Ivancza Jan 22 '13 at 11:38
  • Here is what i get: UTF-8 1. e63568071c476aac79ff3fb8c1b5bce3 2. 6ee2abc6ac0c25f234a02e137210c0c4e64068a86f58c881897eba2647933205 3. 7a2728cb0a70ec713b0d458a07acc2c6d5bfb626a56ad9bc946ab3332e9de5c6594eb3379375c2cf Byte: 1. 595f71c741fe1a0f46cd06fdae38d2ca 2. 595f71c741fe1a0f46cd06fdae38d2ca 3. 595f71c741fe1a0f46cd06fdae38d2ca – Adam Ivancza Jan 22 '13 at 11:43