4

我创建了一个 Java 应用程序,该应用程序需要分发给广泛的用户,这些用户确实安装了 JRE,但大多数人的 JRE 中没有 JCR Unlimited Strength Policy jar 文件(因为这些需要手动放入并且是'不与 JRE 安装捆绑在一起)。

现在,我在几个地方读到,由于许可限制,JCE 文件不能与需要部署的应用程序捆绑在一起,必须手动下载并放入 JRE。这是真的?如果是这样,我有没有办法运送这些文件!这样做的另一个问题是跟踪 JRE 版本 - 因为不同版本的 JRE 有不同的 JCE jar。所以我可能必须为 JRE 1.4 到 1.7 捆绑 JCE jar(这是我的应用程序支持的)。

JCE 无限强度策略文件是否有替代方案?BountyCastle 也需要这些文件。我对这些文件做的唯一事情是 AES256 加密。任何替代方案都会有所帮助。

谢谢

4

2 回答 2

3

Bouncy Castle提供程序需要这些文件,并且仅适用于使用这些策略文件的 JRE(但由于那是 Oracle,我猜你被卡住了)。

在绝望的时候,您可能希望使用 Bouncy Castle 轻量级 API(以 开头的类org.bouncycastle)进行加密。缺点当然是它需要重写,API 不是很好。轻量级 API 也不能用于插入到更高级别协议的实现中,例如 JSSE (SSL) 和 CMS。

或者,最后,您当然可以保持在受限规则的范围内。AES-128 是非常强大的东西(实际上,您可能想知道在实际用途中部署 AES-128 而不是 AES-258 有什么区别)。

于 2012-08-17T15:21:24.400 回答
1

需要这些文件才能在您的程序中进行高于某些国家/地区的进口法律允许的加密。

jre 默认不带无限制政策,但根据国家政策单独下载。

这样做的另一个问题是跟踪 JRE 版本 - 因为不同版本的 JRE 有不同的 JCE jar。所以我可能必须为 JRE 1.4 到 1.7 捆绑 JCE jar(这是我的应用程序支持的)。

你不需要这样做。在他的机器上安装 jre 的用户也将安装相应的文件,并且您使用 JCA/JCE 或 JSSE 的代码不应该受到影响。

现在我不知道您的应用程序携带 jre的许可问题是什么,这些 jre 预先配置了您在目标系统中运行所需的一切,以及它是否是一个有效的替代方案

于 2012-08-17T14:01:46.387 回答