Java安全提供程序的差异

Java安全提供程序的差异,java,Java,我正在使用JRE 1.7,它具有无限的java策略 在Mac上检查java.security.security.getProviders()将返回以下结果- Provider[0]:: SUN 1.7 Provider[1]:: SunRsaSign 1.7 Provider[2]:: SunEC 1.7 Provider[3]:: SunJSSE 1.7 Provider[4]:: SunJCE 1.7 Provider[5]:: SunJGSS 1.7 Provider[6]:: SunSA

我正在使用JRE 1.7,它具有无限的java策略

在Mac上检查java.security.security.getProviders()将返回以下结果-

Provider[0]:: SUN 1.7
Provider[1]:: SunRsaSign 1.7
Provider[2]:: SunEC 1.7
Provider[3]:: SunJSSE 1.7
Provider[4]:: SunJCE 1.7
Provider[5]:: SunJGSS 1.7
Provider[6]:: SunSASL 1.7
Provider[7]:: XMLDSig 1.0
Provider[8]:: SunPCSC 1.7
Provider[9]:: Apple 1.1
但在Linux上检查并没有返回Apple 1.1版本

Provider[0]:: SUN 1.7
Provider[1]:: SunRsaSign 1.7
Provider[2]:: SunEC 1.7
Provider[3]:: SunJSSE 1.7
Provider[4]:: SunJCE 1.7
Provider[5]:: SunJGSS 1.7
Provider[6]:: SunSASL 1.7
Provider[7]:: XMLDSig 1.0
Provider[8]:: SunPCSC 1.7

这在我们的Linux机器中造成了问题,我们如何确保它也返回Apple?

JVM附带了默认的安全提供商列表。它可以是特定于JVM供应商的,也可以是特定于平台的

默认安全提供程序的静态列表在
$JAVA\u HOME/lib/security/JAVA.security
中定义


您所指的策略文件正在定义安全算法的使用策略。

您是否应该更好地确保您不依赖于特定于操作系统的提供程序?实际上不是,我主要关心的是,尽管我使用的是相同的US_export_policy.jar和local_policy.jar,但苹果为什么会被添加,因为它是一个不同的JVM?这就是我想知道的。它依赖于平台吗?