Указанный ключ не является допустимым размером для этого алгоритма

Я имею с этим кодом:

RijndaelManaged rijndaelCipher = new RijndaelManaged();

            // Set key and IV
            rijndaelCipher.Key = Convert.FromBase64String("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678912");
            rijndaelCipher.IV = Convert.FromBase64String("1234567890123456789012345678901234567890123456789012345678901234");

Я получаю броски:

Specified key is not a valid size for this algorithm.

Specified initialization vector (IV) does not match the block size for this algorithm.

Что случилось с этим представляет в виде строки? Я могу рассчитать в некоторых строках в качестве примера от Вас?

47
задан user278618 27 May 2010 в 07:27
поделиться

2 ответа

Строка "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678912" при base64-декодировании дает 48 байт (384 бита). RijndaelManaged поддерживает 128, 192 и 256-битные ключи.

Правильный 128-битный ключ - это new byte[]{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } или если вам нужно получить его из base64 : Convert. FromBase64String("AAECAwQFBgcICQoLDA0ODw==").

Размер блока по умолчанию составляет 128 бит, поэтому тот же массив байтов будет работать как IV.

71
ответ дан 26 November 2019 в 19:47
поделиться

Алгоритм RijndaelManaged поддерживает длину ключа 128, 192 или 256 бит. Является ли ваш ключ одним из этих размеров?

1
ответ дан 26 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: