如何以编程方式检查 JVM 上是否启用了 FIPS

use*_*651 5 java jvm fips

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

Ari*_*era 2

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

\n

Javadoc:安全性

\n

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

\n

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

\n

Javadoc 提供者:此处为 javadoc)。

\n

例如:

\n
Provider[] providers=Security.getProviders();\nfor (int i=0; i < providers.length;i++){\n     if (providers[i].getName().contains(\xe2\x80\x9cFips\xe2\x80\x9d)) return true;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

希望能帮助到你。

\n