InvalidKeyException: Ungültige Schlüsselgröße
Problem:
Beim Ausführen kontinuierlicher Integrationstests auf einem Beim TeamCity-Server tritt der Fehler „java.security.InvalidKeyException: Ungültige Schlüsselgröße“ auf. Der Code verwendet BouncyCastle für die AES-Verschlüsselung und funktioniert ordnungsgemäß auf einem Entwicklungs-MacBook Pro mit Java 1.6.
Ursache:
Die Java Virtual Machine schränkt die Schlüsselgrößen aufgrund des US-Exports ein Gesetze.
Lösung:
Java 9 und höher
- Die Unlimited Strength Jurisdiction Policy Files sind enthalten von Standardmäßig und aktiviert. Wenn der Fehler weiterhin besteht, deutet dies auf eine restriktivere Richtlinienkonfiguration hin.
Java 8 und früher
Java 8 Update 161 und höher
- Java 8 verwendet standardmäßig die Unlimited Strength Jurisdiction Policy. Wenn der Fehler auftritt, überprüfen Sie die Konfiguration, da sie möglicherweise auf „begrenzt“ geändert wurde.
Java 8 Update 151 und höher
- Bearbeiten Sie die Java Entfernen Sie in der .security-Datei das Kommentarzeichen oder fügen Sie die Zeile „crypto.policy=unlimited“ hinzu, um die Unlimited Strength Jurisdiction zu aktivieren Richtlinie.
- Starten Sie die JVM neu, nachdem Sie Änderungen vorgenommen haben.
Vor Java 8 Update 151
- Installieren Sie die Java Cryptography Extension ( JCE) Unlimited Strength Jurisdiction Policy Files, bereitgestellt von Oracle.
- Ersetzen Sie das Original „starke“ Richtliniendateien mit den Versionen mit unbegrenzter Stärke.
- Starten Sie die JVM nach der Installation neu.
Zusätzliche Überlegungen:
- BouncyCastle kann verwendet werden, um diese Einschränkung zu umgehen, jedoch nur, wenn die benutzerdefinierten BC-Klassen direkt und nicht über den BC verwendet werden Anbieter.
- Die Verwendung der Unlimited Strength Jurisdiction Policy verstößt möglicherweise gegen US-Exportgesetze. Ziehen Sie in Betracht, einen örtlichen Rechtsberater oder Oracle um Rat zu fragen.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „java.security.InvalidKeyException: Ungültige Schlüsselgröße' in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!