Rijndael шифровщик действительные размеры байтов - PullRequest
0 голосов
/ 22 июля 2011

У меня есть следующий код:

var symmetricKey = Rijndael.Create().CreateEncryptor(key, iv);

key и iv имеют одинаковую длину, и они являются байтовыми массивами длиной 32. Во время выполнения этот фрагмент не работает, говоря, что длина не поддерживается. Я тоже пробовал с 16. тоже не работает.

Я использую это неправильно? что дает?

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Это должно работать правильно, если вы установите IV в 16 байтов, что соответствует размеру блока Rijndael по умолчанию.

(Либо так, либо измените сам BlockSize, чтобы он соответствовал размеру вашего IV.)

0 голосов
/ 22 июля 2011

Этот код должен работать в качестве примера:

        byte[] key = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
        byte[] iv = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };

        byte[] data = { 1, 2, 3, 4, 5 };   

        using (var symmetrickey = Rijndael.Create().CreateEncryptor(key, iv))
        {
            using (Stream f = File.Create("anencryptedfile.bin"))
            {
                using (Stream c = new CryptoStream(f, symmetrickey, CryptoStreamMode.Write))
                {
                    c.Write(data, 0, data.Length);
                }
            }
        }
...