首页 >Java >java教程 >为什么我的 Java 代码在 TeamCity 服务器上抛出'InvalidKeyException:非法密钥大小”,但在 MacBook Pro 上却没有?

为什么我的 Java 代码在 TeamCity 服务器上抛出'InvalidKeyException:非法密钥大小”,但在 MacBook Pro 上却没有?

Susan Sarandon
Susan Sarandon原创
2024-12-03 02:52:09457浏览

Why Does My Java Code Throw an `InvalidKeyException: Illegal Key Size` on My TeamCity Server but Not My MacBook Pro?

InvalidKeyException: 非法密钥大小

问题:

连续运行测试时集成 TeamCity 服务器时,发生错误:“java.security.InvalidKeyException:密钥大小非法。”在 MacBook Pro 上运行测试时并未出现此错误。两种环境都使用 Java 1.6 和 BouncyCastle 库。

答案:

该错误是由于 Java 虚拟机策略对加密密钥大小施加的限制造成的,该策略符合与美国出口

解决方案:

Java 9 及更高版本:

  • 包含无限强度管辖权策略文件默认使用 Java 9 及更高版本。
  • 如果错误仍然存​​在,请检查java.security 文件并确保“crypto.policy=unlimited”未注释或包含。

Java 8 更新 161 及更高版本:

  • 默认启用无限强度管辖策略。
  • 如果出现错误,检查 java.security 文件中策略配置的任何更改。

Java 8 Update 151 及更高版本:

  • 无限强度管辖权策略包含但默认不使用。
  • 要启用它,请取消注释java.security 文件中的“crypto.policy=unlimited”。
  • 重新启动 JVM 以使更改生效。

Java 8 Update 144 及更早版本:

  • 安装 Java 加密扩展 (JCE) 无限强度来自 Oracle 的管辖权策略文件。
  • 解压下载的文件并将“local_policy.jar”和“US_export_policy.jar”文件复制到相应的安全目录(例如,/lib/security) .
  • 重新启动 JVM 以应用新的policy.

BouncyCastle 解决方案:

  • 切换到直接使用 BouncyCastle 类,而不是 BC 提供程序。此方法规避了密钥​​大小限制。

以上是为什么我的 Java 代码在 TeamCity 服务器上抛出'InvalidKeyException:非法密钥大小”,但在 MacBook Pro 上却没有?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn