如何在OS X中安装Java 8的无限强度JCE?

63

我需要在OS X/mac OS中为Java 8安装Java密码扩展。结果发现随软件安装程序提供的README文件中仅包含UnixWindows的说明,没有针对OS X/mac OS的说明。我试图将JAR文件放入$JAVA_HOME/lib/security,但仍然不起作用。您知道如何安装吗?

8个回答

103

Java 8 更新 161

正如在另一个答案和Oracle的Java 8 更新 161版本的发行说明中指出的那样,自从更新 161 版本以后,默认情况下启用了无限制的加密功能。如果您正在使用此版本或更高版本的新安装,则不需要进行任何操作。

Java 8 更新 151

在Java 8更新151版中,Oracle将与Java 9一样的JCE机制纳入了Java 8中。要在Java 8 Update 151或更高版本中启用JCE,只需设置该属性

crypto.policy=unlimited

$JAVA_HOME/jre/lib/security/java.security中。

根据Oracle在发布说明中的描述,如果早期添加了旧的策略JAR文件,则最好将其删除:

由于旧的JCE策略文件仍留在/lib/security目录中,它们可能不符合最新的安全JAR签名标准,这些标准在6u131、7u121、8u111和以后的更新中已经更新。

旧版本

建议通过Homebrew安装JCE文件的解决方案将不再起作用,因为Java 8 Update 151发布后,casks已从Homebrew存储库中删除。 如果使用旧版本的Java 8,则必须手动放置JCE-Policy-JAR,如另一个回答中所述


84

注意:自Java JDK 8u161版本起,默认启用无限制密码

MacOS用户

如果您是MacOS用户,请将从jce_policy-8.zip提取的jar文件放到以下路径下(将jar文件放在该路径下),如果您使用的是Java版本8.*:

/Library/Java/JavaVirtualMachines/**< jdk_version_of_your_pc >**/Contents/Home/jre/lib/security

4
请查看下方来自anothernode的答案,这是针对2017年10月之后的Java 8版本151号及以上版本的正确解决方案。 - Shanmu

13

2
The JDK JCE framework uses the unlimited policy files by default. sourced from jdk8_191 - Jossef Harush Kadouri

12

针对使用Mac用户(OS X)且安装了Java 8:

$ brew reinstall java8

自JDK 1.8u151版本开始,不需要单独下载JCE库文件。只需编辑

$JDK_HOME/jre/lib/security/java.security

并取消注释以下行:

crypto.policy=unlimited

这将启用无限制的强度JCE。

JDK 1.8u151发行说明


8

6
由于您没有说明问题,我只能猜测一些内容。
  1. 您可能会在互联网搜索引擎上找到此页面:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
  2. 您可能已经下载了这个文件:jce_policy-8.zip
  3. 您可能已经解压缩并查看了UnlimitedJCEPolicyJDK8/目录中的内容
  4. 也许README.txt文件会引起您的兴趣

如果以上所有步骤都是正确的,那么您应该已经找到了答案。

3)  Install the unlimited strength policy JAR files.

In case you later decide to revert to the original "strong" but
limited policy versions, first make a copy of the original JCE
policy files (US_export_policy.jar and local_policy.jar). Then
replace the strong policy files with the unlimited strength
versions extracted in the previous step.

The standard place for JCE jurisdiction policy JAR files is:

    <java-home>/lib/security           [Unix]
    <java-home>\lib\security           [Windows]

您可以假设OSX上的位置与列出的系统相同。

1
@JonDoe297 /Library/Java/JavaVirtualMachines/< jdk_version_of_your_pc >/Contents/Home/jre 这就是你的 <java-home>。当你添加 /lib/security 时,你就有了来自 prasshant 的路径。 - SubOptimal

5
对于macOS的较新版本(例如Sierra),Oracle Java根据您安装JRE或JDK而安装在两个位置中的其中一个。
- JRE: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/ - JDK: /Library/Java/JavaVirtualMachines/jdk1.x.x_xxx.jdk/Contents/Home/ (如果您安装了JDK,则它还会在上面列出的JRE位置安装JRE。)
JRE允许您从Finder双击打开.jar文件,并在浏览器中运行Java。JRE不附带java二进制文件,因此如果您想运行任何典型的Java命令,则必须安装JDK。更多信息请参见https://java.com/en/download/faq/yosemite_java.xml
所有这些都是为了说明,在安装无限强度JCE文件时,请将它们安装在上面列出的两个目录中,以获得一致的行为。

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接