Heim >Java >javaLernprogramm >Warum löst mein Java-Code auf meinem TeamCity-Server, aber nicht auf meinem MacBook Pro eine „InvalidKeyException: Ungültige Schlüsselgröße' aus?

Warum löst mein Java-Code auf meinem TeamCity-Server, aber nicht auf meinem MacBook Pro eine „InvalidKeyException: Ungültige Schlüsselgröße' aus?

Susan Sarandon
Susan SarandonOriginal
2024-12-03 02:52:09458Durchsuche

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

InvalidKeyException: Unzulässige Schlüsselgröße

Frage:

Beim kontinuierlichen Ausführen eines Tests Bei der Integration des TeamCity-Servers ist ein Fehler aufgetreten: „java.security.InvalidKeyException: Unzulässige Schlüsselgröße.“ Dieser Fehler trat nicht auf, als der Test auf einem MacBook Pro ausgeführt wurde. Beide Umgebungen verwenden Java 1.6 und die BouncyCastle-Bibliothek.

Antwort:

Der Fehler ist auf Einschränkungen der Kryptografieschlüsselgrößen zurückzuführen, die durch die Richtlinie der Java Virtual Machine auferlegt werden, die den Anforderungen entspricht mit US-Export Gesetze.

Lösung:

Java 9 und höher:

  • Die Unlimited Strength Jurisdiction Policy Files sind enthalten standardmäßig mit Java 9 und höher.
  • Wenn der Fehler weiterhin besteht, überprüfen Sie die Datei java.security und Stellen Sie sicher, dass „crypto.policy=unlimited“ unkommentiert oder enthalten ist.

Java 8 Update 161 und höher:

  • Die Unlimited Strength Jurisdiction Policy ist standardmäßig aktiviert.
  • Wenn der Fehler auftritt, überprüfen Sie die Datei java.security auf etwaige Änderungen die Richtlinienkonfiguration.

Java 8 Update 151 und höher:

  • Die Unlimited Strength Jurisdiction Policy ist enthalten, wird aber standardmäßig nicht verwendet.
  • Um es zu aktivieren, entkommentieren Sie „crypto.policy=unlimited“ in java.security Datei.
  • Starten Sie die JVM neu, damit die Änderungen wirksam werden.

Java 8 Update 144 und früher:

  • Installieren die Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files von Oracle.
  • Entpacken Sie die heruntergeladene Datei und kopieren Sie die Dateien „local_policy.jar“ und „US_export_policy.jar“ in das entsprechende Sicherheitsverzeichnis (z. B. /lib/security).
  • Starten Sie die JVM neu, um das Neue anzuwenden Richtlinie.

BouncyCastle-Lösung:

  • Wechseln Sie zur direkten Verwendung der BouncyCastle-Klassen anstelle des BC-Anbieters. Diese Methode umgeht die Beschränkungen der Schlüsselgröße.

Das obige ist der detaillierte Inhalt vonWarum löst mein Java-Code auf meinem TeamCity-Server, aber nicht auf meinem MacBook Pro eine „InvalidKeyException: Ungültige Schlüsselgröße' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn