在 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/