出于某些原因,我需要使用 256 位 block 大小而不是使用 128 位 block 大小的 AES 实现 Rijndael 解压(原因:数据在 PHP 中使用 Rijndael 加密...)。
如何更改密码的 block 大小?
如果我只是用 "RIJNDAEL/CFB/PKCS5Padding"
获得密码并尝试用 256 位初始化 IV,我会得到一个异常,因为 block 大小只有 128 位。
最佳答案
除了具有 128 位 block 大小的 Rijndael 之外,任何 Sun JCE 供应商都不支持任何算法:这是 AES 算法。要获得具有 256 位 block 大小的 rijndael,您将不得不去其他地方。我建议 Bouncycastle java图书馆。 RijndaelEngine类有一个构造函数,它接受以位为单位的 block 大小。大多数人找到 PaddedBufferedBlockCipher与合适的填充一起使用时类会更方便,例如
PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new RijndaelEngine(256), new PKCS7Padding());
关于java - 如何使用 Rijndael 和 256 位的 block 大小进行加密或解密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8083144/