在我的可执行文件中添加Java加密扩展无限强度或自动安装它

在我的可执行文件中添加Java加密扩展无限强度或自动安装它,java,cryptography,Java,Cryptography,我的程序是一个simetric密码器,使用256的密钥长度。当我在没有安装JCE(无密钥长度)的计算机上使用它时,它会崩溃,并出现以下错误: java.security.InvalidKeyException:密钥大小或默认参数非法 这是因为计算机没有允许使用此密钥大小的扩展 有没有办法在我的程序中加入java无限强度扩展,以便在不安装的情况下使用它?或者我可以打开一个对话框自动安装它吗 另一方面,有一个更好的解决方案可以使用256密钥进行AES加密?也许另一个API允许我在不添加任何扩展的情况

我的程序是一个simetric密码器,使用256的密钥长度。当我在没有安装JCE(无密钥长度)的计算机上使用它时,它会崩溃,并出现以下错误:

java.security.InvalidKeyException:密钥大小或默认参数非法

这是因为计算机没有允许使用此密钥大小的扩展

有没有办法在我的程序中加入java无限强度扩展,以便在不安装的情况下使用它?或者我可以打开一个对话框自动安装它吗


另一方面,有一个更好的解决方案可以使用256密钥进行AES加密?也许另一个API允许我在不添加任何扩展的情况下实现它?(像蹦蹦跳跳的城堡)

JCE Unlimited Strength可从Oracle网站下载。(或者至少,我可以在澳大利亚下载。)

但是,您首先需要同意Oracle,第7条规定:

“7.出口法规。您同意美国出口管制法和其他适用的进出口法律管理您对软件的使用,包括技术数据;其他信息可在Oracle全球贸易合规性网站()上找到。您同意,本软件及其任何直接产品均不得直接或间接违反这些法律出口,或用于这些法律禁止的任何目的,包括但不限于核武器、化学武器或生物武器扩散。”


因此,请回答您关于JCE的问题

有没有办法在我的程序中加入java无限强度扩展,以便在不安装的情况下使用它

我不是律师,但我认为Oracle许可证规定,如果您的使用符合美国出口法,您只能使用JCE代码(包括在产品中分发代码)。请注意,加密软件受到特别限制

或者我可以打开一个对话框自动安装它吗

这在法律上和技术上都不清楚


也许另一个API允许我在不添加任何扩展的情况下实现它?(像蹦蹦跳跳的城堡)

Bouncy Castle也受到美国出口法的保护。此外,在常见问题解答1中,Bouncy Castle的Java SE兼容加密提供的密钥长度由JCE使用的相同机制(和策略文件)控制。然而,常见问题10说:

“在撰写本报告时(2007年5月16日),Bouncy Castle已根据ECCN代码5D002批准分类,并根据许可证例外TSU批准出口。”


我还查找了“许可证例外TSU”,发现其定义如下:

“§740.13技术和软件不受限制(TSU)

此许可证例外授权出口和出口 操作技术和软件的再出口; 销售技术和软件;软件更新 (漏洞修复);“大众市场”软件受 通用软件说明;以及加密 源代码(以及相应的目标代码) 将被视为根据 第734.3(b)(3)条的规定。”

等等

这看起来很有希望,特别是对于开源产品,但我仍然建议向真正的专家咨询;i、 e.受过适当法律培训的专业人士。

各位,好消息

从Java6U181、7u171和8u151开始,您将能够通过调用以编程方式更改策略

 Security.setProperty("crypto.policy", "unlimited");
如果安装了安全管理器,则需要将其配置为允许设置安全属性。更多信息请访问


更好的是,在Java 9中,并且从未来的Java 6u181、7u171、8u162版本开始,默认情况下将启用无限加密!Bouncycastle中的更多信息提供了两个API。第一个API是通过标准JCE提供的,Bouncycastle为其提供了“隐藏”的加密提供程序。该API受与标准Oracle提供程序相同的密钥大小限制的约束。第二个API是Bouncycastle所称的“轻量级API”。这与提供程序不同,并且没有密钥大小限制。您可以使用第二个API中的AES-256,而不需要无限的加密策略文件。因此,使用Bouncycastle轻量级API,我可以开发一个使用256密钥加密(无任何扩展)的软件?我有TrueCrypt(或其他加密程序)的例子,他们可以用这个密钥长度加密,但不需要再安装任何东西。@selan-我不是律师。与专业人士交谈。@GregS说:[第二个API是Bouncycastle称之为“轻量级API”。这与提供程序不同,没有密钥大小限制]。我的程序不是用于商业用途,只是用于教育用途,所以我只想找到一个表格,使用AES-256密钥,而不安装任何无限制的加密策略文件……@selan-我认为GregS没有资格就法律问题提供建议,这绝对是一个法律问题。