在 Java 12 之后,删除了内部包 com.sun.net.ssl。
有什么方法可以让我以编程方式检查 JVM 上是否启用了 FIPS?

最佳答案

您可以使用集中安全配置和提供程序的 java.security.Security 类,然后检查是否注册了 FIPS 提供程序。

Javadoc:Security

您可以遍历安全提供程序并检查您是否有 FIPS 提供程序,例如 BouncyCaSTLeFipsProvider 或任何其他 FIPS 提供程序。

此外,您可以检查您是否拥有处于兼容模式的 SunJSSE FIPS(SunPKCS11-NSS 提供程序)。请记住,JDK13 中正在删除 SunJSSE Fips 兼容模式,正如评论所说,该提供程序在 Java 13 之前可用,但从 Java 9 开始,它可能无法正常工作。这是一个需要考虑和测试的点。

Javadoc 提供程序: javadoc here )。

例如:

Provider[] providers=Security.getProviders()
for (int i=0; i < providers.length;i++){
     if (providers[i].getName().contains(“Fips”)) return true;
}

希望能帮助到你。

关于java - 如何以编程方式检查 JVM 上是否启用了 FIPS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60219944/

10-13 05:24