首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何避免在部署应用程序时安装“无限强度”的JCE策略文件?

如何避免在部署应用程序时安装“无限强度”的JCE策略文件?
EN

Stack Overflow用户
提问于 2009-07-24 19:27:10
回答 8查看 134.9K关注 0票数 172

我有一个使用256位AES加密的应用程序,Java不支持它的开箱即用。我知道为了让它正常工作,我在安全文件夹中安装了JCE无限强度jars。这对我作为开发者来说很好,我可以安装它们。

我的问题是,由于此应用程序将被分发,最终用户很可能不会安装这些策略文件。让最终用户下载这些内容只是为了让应用程序具有功能,这不是一个有吸引力的解决方案。

有没有办法让我的应用程序在不覆盖最终用户机器上的文件的情况下运行?是否有第三方软件可以在不安装策略文件的情况下进行处理?或者只从JAR中引用这些策略文件的方法?

EN

回答 8

Stack Overflow用户

发布于 2015-01-25 19:57:41

以下是解决方案:http://middlesphere-1.blogspot.ru/2014/06/this-code-allows-to-break-limit-if.html

代码语言:javascript
复制
//this code allows to break limit if client jdk/jre has no unlimited policy files for JCE.
//it should be run once. So this static section is always execute during the class loading process.
//this code is useful when working with Bouncycastle library.
static {
    try {
        Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted");
        field.setAccessible(true);
        field.set(null, java.lang.Boolean.FALSE);
    } catch (Exception ex) {
    }
}
票数 22
EN

Stack Overflow用户

发布于 2016-07-28 09:41:33

从JDK8u102开始,发布的依赖于反射的解决方案将不再有效:这些解决方案设置的字段现在是final (https://bugs.openjdk.java.net/browse/JDK-8149417)。

看起来又回到了(a)使用Bouncy Castle,或者(b)安装JCE策略文件。

票数 14
EN

Stack Overflow用户

发布于 2011-05-09 01:56:28

据我所知,Bouncy Castle仍然需要安装罐子。

我做了一个小测试,似乎证实了这一点:

http://www.bouncycastle.org/wiki/display/JA1/Frequently+Asked+Questions

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1179672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档