首頁 > Java > java教程 > 為什麼我的 Java 程式碼在 TeamCity 伺服器上拋出'InvalidKeyException:非法金鑰大小”,但在 MacBook Pro 上卻沒有?

為什麼我的 Java 程式碼在 TeamCity 伺服器上拋出'InvalidKeyException:非法金鑰大小”,但在 MacBook Pro 上卻沒有?

Susan Sarandon
發布: 2024-12-03 02:52:09
原創
450 人瀏覽過

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

InvalidKeyException: 非法金鑰大小

問題:

問題:

連續運行時集成測試伺服器時,發生錯誤:「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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板