【发布时间】:2017-11-23 00:21:42
【问题描述】:
我有一个执行 AES-256-OCB 的 Java 应用程序。为此,使用了 BouncyCastle 加密库。照原样,它使用标准 JCA 接口,但这需要安装一个特殊的策略文件以允许大于 128 位的密钥大小。
这在我们的环境中是不合适的,在我看来,我们可以通过使用 BouncyCastle 自己的轻量级 API 来避免这种情况。不过,我对这个 API 有点困惑,我很好奇我实际上是如何将密码实例化为 AES/OCB/NoPadding。
我通常很擅长阅读文档,但 BouncyCastle 相当广泛的选项让我有点困惑。
如何使用 BouncyCastle 轻量级 API 为没有填充的 256 位 OCB 模式实例化 BlockCipher 对象,并使用它来加密和解密数据?我已经得到了byte[]s 的密钥、IV 和数据。
【问题讨论】:
-
在 stackoverflow 上,您真的应该自己尝试一下,如果某些事情让您无法继续,那么您可以询问有关该事情的具体问题。显然,您可以从 OCBBlockCipher 和 AESEngine 类开始,然后从那里继续。
-
(1) 自 9(8 月发布)和 8u151/152(10 月)以来的 Oracle Java 自动拥有无限制策略(>128 但没有 AES >256)。 (2) LWAPI 测试类
org.bouncycastle.crypto.test.OCBTest有一些相当简单(并且已知良好)的示例。 -
已编辑以更正错字——意思是 128 位。
标签: java encryption bouncycastle