Как я могу зашифровать Rijndael с режимом CFB, размером блока 256 бит и Bouncycastle? - PullRequest
1 голос
/ 11 ноября 2011

Я пытаюсь зашифровать строку с помощью rijndael (размер ключа 256 бит, размер блока 256 бит, режим CFB) В настоящее время я делаю что-то вроде этого:

BufferedBlockCipher c = new BufferedBlockCipher(new CFBBlockCipher(new RijndaelEngine(256), 256));
    c.init(false, new ParametersWithIV(new KeyParameter(keybytes), iv));

Я могу отлично шифровать и дешифровать свои собственные вещи. К сожалению, строка, которую я должен расшифровать, взята из mcrypt в php.

Я не могу расшифровать эту строку и думаю, что сбой на моей стороне. Кто-нибудь может дать мне пример, как настроить шифр с необходимыми параметрами?

EDIT:

следуя некоторым советам здесь и в комментариях к документации php. я изменил свой шифр на:

PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new CFBBlockCipher(new RijndaelEngine(256)), new ZeroBytePadding());

все же шифрование не совместимо.

РЕДАКТИРОВАТЬ 2

работает в режиме CBC. Я думаю, проблема где-то в iv.

1 Ответ

2 голосов
/ 14 ноября 2011
PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new CFBBlockCipher(new RijndaelEngine(256), 8), new ZeroBytePadding());
c.init(false, new ParametersWithIV(new KeyParameter(keybytes), iv));

это добилось цели. Во всех примерах и руководствах говорится, что вторым параметром объекта CFBBlockCipher является размер блока chiffre, который будет работать, но mcrypt использует размер блока 8 бит для CFB.

...