一尘不染

如何使用Rijndael和256位的块大小进行加密或解密?

java

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

如何更改密码的块大小?

如果我只是使用cipher "RIJNDAEL/CFB/PKCS5Padding"并尝试使用256位初始化IV,则会出现异常,因为块大小仅为128位。


阅读 373

收藏
2020-09-08

共1个答案

一尘不染

除了具有128位块大小的Rijndael之外,任何Sun
JCE提供程序都不支持任何其他功能:这是AES算法。要获得具有256位块大小的rijndael,您将不得不走到其他地方。我建议Bouncycastle
Java
库。该RijndaelEngine类有接受位的块大小的构造函数。大多数人都发现,与适当的填充一起使用时,PaddedBufferedBlockCipher类更方便,例如

PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new RijndaelEngine(256), new PKCS7Padding());
2020-09-08