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!