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

标签 java jvm fips

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

相关文章:

java - RMI 环回 : Same thread?

java - 处理程序真正将其消息发布到哪里?

java - 线程中的异常 "main"java.lang.StackOverflowError 递归

javascript - 使用 Gradle 在 IntelliJ 中使用多个源集的 2 个项目 Unresolved 依赖关系

r - 在 R map 中使用 FIPS 代码对县进行着色

java - Eclipse Luna – AutoIndent 不一致

java - 如何在将转换为字符串的长变量中添加数字?

java.lang.OutOfMemory错误: how to set correct Java parameters

asp.net-mvc-4 - 子操作输出缓存与 FIPS 不兼容吗?

nginx - Nginx 是否符合开源 FIPS 标准?