由于某些原因,我需要使用256位的块大小而不是使用128位的块大小的AES来实现Rijndael de/compression(原因:数据是使用Rijndael在PHP中加密的...)。
如何更改密码的块大小?
如果我只是使用"RIJNDAEL/CFB/PKCS5Padding"
获得密码,并尝试使用256位初始化IV,那么我会遇到异常,因为块大小仅为128位。
最佳答案
除了具有128位块大小的Rijndael之外,任何Sun JCE提供程序均不支持任何其他功能:这是AES算法。要获得具有256位块大小的rijndael,您将不得不走到其他地方。我建议Bouncycastle java库。 RijndaelEngine类具有一个构造函数,该构造函数接受以位为单位的块大小。大多数人发现PaddedBufferedBlockCipher类在使用合适的填充时使用起来更加方便,例如
PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new RijndaelEngine(256), new PKCS7Padding());