Java 使用BouncyCastle轻量级API的AES-256加密

Java 使用BouncyCastle轻量级API的AES-256加密,java,encryption,aes,bouncycastle,Java,Encryption,Aes,Bouncycastle,我已经使用Java的内置加密库编写了一些(功能性)AES加密代码,如下所示,但我想使用256位密钥。但是,我希望这样做,而用户不必安装到无限强度的加密策略文件 现在,我听说使用BouncyCastle轻量级API可以让我做到这一点,但不幸的是,我在理解它时遇到了很多困难,我正在努力适应任何有助于我的文档 这是我当前的代码,其中“content”是要加密的字节数组: KeyGenerator kgen = KeyGenerator.getInstance("AES"); int keySize =

我已经使用Java的内置加密库编写了一些(功能性)AES加密代码,如下所示,但我想使用256位密钥。但是,我希望这样做,而用户不必安装到无限强度的加密策略文件

现在,我听说使用BouncyCastle轻量级API可以让我做到这一点,但不幸的是,我在理解它时遇到了很多困难,我正在努力适应任何有助于我的文档

这是我当前的代码,其中“content”是要加密的字节数组:

KeyGenerator kgen = KeyGenerator.getInstance("AES");
int keySize = 128;
kgen.init(keySize);
SecretKey key = kgen.generateKey();
byte[] aesKey = key.getEncoded();
SecretKeySpec aesKeySpec = new SecretKeySpec(aesKey, "AES");
Cipher aesCipher = Cipher.getInstance("AES");
aesCipher.init(Cipher.ENCRYPT_MODE, aesKeySpec);
byte[] encryptedContent = aesCipher.doFinal(content);
我将如何使用BouncyCastle轻量级API重新实现这一点?有人能帮我解决问题和/或为我指出一些简单示例代码的方向吗

我还对任何其他允许256位密钥AES加密而无需用户安装无限强度策略文件的解决方案感兴趣


非常感谢

这个问题和答案是一个有用的起点

下一个最好的地方是LWAPI的测试代码,然后是JCE提供程序代码。JCE提供程序代码是LW库的包装器——因此,如果您想知道如何实现这一点,最好在这里查看


所谓JCE提供程序代码,我指的是BC实现。

在这里寻找示例。您使用的是不安全的ECB编码
“AES”
,而不是
“AES/CBC/PKCS5Padding”
),您似乎对IV不做任何操作(如果您只加密一个纯文本,那么就可以了,但由于某种原因,您是这样的,将SecretKey转换为SecretKeySpec,这似乎是一种错误的方法……链接的SO答案是JCE混合了轻量级