如何使用Rijndael进行encryption或解密以及256位的块大小?
由于某些原因,我需要实现Rijndael de / compression(块大小为256位),而不是使用128位块大小的AES(原因是:数据在PHP中使用Rijndaelencryption)。
我怎样才能改变一个密码的块大小?
如果我刚刚得到一个带有"RIJNDAEL/CFB/PKCS5Padding"
的密码并试图用256位初始化一个IV,我得到一个exception,因为块大小只有128位。
在任何Sun JCE提供程序中,除了128位块大小的Rijndael外,没有任何支持:这是AESalgorithm。 要获得256位块大小的rijndael,你将不得不去其他地方。 我build议Bouncycastle java库。 RijndaelEngine类有一个构造函数,它接受一个块的大小。 大多数人发现PaddedBufferedBlockCipher类在使用合适的填充(padding)时会更方便
PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new RijndaelEngine(256), new PKCS7Padding());