如何使用Rijndael加密或解密,块大小为256位?

Lau*_*res 6 java encryption cryptography aes rijndael

出于某些原因,我需要使用256位的块大小来实现Rijndael de/compression,而不是使用128位块大小的AES(原因:数据使用Rijndael在PHP中加密......).

如何更改密码的块大小?

如果我只是得到一个密码,"RIJNDAEL/CFB/PKCS5Padding"并尝试初始化一个256位的IV,我得到一个例外,因为块大小只有128位.

Jam*_*olk 15

除了Rijndael之外,任何Sun JCE提供商都不支持128位块大小:这是AES算法.要获得具有256位块大小的rijndael,您将不得不去其他地方.我建议使用Bouncycastle java库.该RijndaelEngine类有接受位的块大小的构造函数.大多数人发现PaddedBufferedBlockCipher类在使用合适的填充时更方便,例如

PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new RijndaelEngine(256), new PKCS7Padding());
Run Code Online (Sandbox Code Playgroud)